שרת MCP מאומת: Asana

שרת ה-MCP של Asana, נספר בריצה חיה על Mac אמיתי.

  • הכלים נספרו2026-08-03macOS 15.7.7
  • חבילה@roychri/mcp-server-asana 1.8.0
  • מדווח על עצמוAsana MCP Server 1.8.0
  • פרוטוקול MCP2024-11-05
  • סביבת ריצהv24.18.0

רשימת הכלים למטה היא לכידה חיה מהשרת הרץ; קריאת כלי מאומתת עדיין ממתינה להרשאות.

התשובה הקצרה

אומת לאחרונה 2026-08-03

שרת ה-MCP של Asana שבעמוד הזה הוא @roychri/mcp-server-asana, חבילה קהילתית שכתב מפתח עצמאי ולא Asana עצמה. מחובר לעוזר AI, הוא יכול לחפש פרויקטים ומשימות, ליצור ולעדכן אותם, להוסיף תת-משימות, תגובות, תוויות, מקטעים, תלויות ועדכוני סטטוס לפרויקט בתוך סביבת העבודה שלכם ב-Asana. הוא דורש אישור גישה אחד, אסימון גישה אישי של Asana במשתנה סביבה בשם ASANA_ACCESS_TOKEN. הנה בדיוק מה אימתנו ומה לא. הרצנו את החבילה על Mac עם ערך ממלא מקום במשתנה הזה: השרת עלה, השלים את לחיצת היד של MCP והחזיר ב-tools/list 41 כלים, שהם הטבלה למטה, מילה במילה. קריאת הכלי האמיתית האחת שביצענו הגיעה ל-API של Asana עצמה וחזרה עם שגיאת אימות 401, המודפסת בהמשך, כי ממלא מקום איננו אסימון. קריאה מאומתת עדיין ממתינה לאסימון שלכם. במקביל Asana מפעילה נקודת קצה מתארחת משלה ל-MCP בכתובת mcp.asana.com, שחסומה מאחורי התחברות OAuth: אישרנו שהיא עונה ומסרבת לבקשות לא מאומתות, אבל לא יכולנו לספור את הכלים שלה בלי התחברות בדפדפן, ולכן שום דבר בעמוד הזה אינו מתאר אותה. [1][3][4][5]

  • כלים

    41, נספרו בריצה חיה

  • אישורי גישה

    נדרש ASANA_ACCESS_TOKEN [4]

  • ערוץ תקשורת

    stdio, רץ על ה-Mac שלכם [4][1]

  • מתחזק

    Christian Roy, קהילתי [1][3]

  • הורדות

    3,466 בשבוע האחרון [2]

  • רישיון

    MIT [1][3]

אימות

איך שרת ה-MCP הזה אומת.

השיטה

הפעלנו את השרת עם npx על גבי stdio כאשר ASANA_ACCESS_TOKEN מכיל ערך ממלא מקום, השלמנו את לחיצת היד של MCP וקראנו ל-tools/list: השרת ענה עם 41 כלים, והטבלה למטה היא התשובה הזו, מילה במילה. ביקשנו את גרסת הפרוטוקול 2025-06-18 והשרת החזיר במשא ומתן את 2024-11-05, וזו הגרסה הרשומה כאן. באותה ריצה עצמה ביצענו לאחר מכן קריאת כלי אמיתית אחת, asana_list_workspaces בלי ארגומנטים. היא הגיעה אל https://app.asana.com/api/1.0/workspaces על גבי HTTPS ו-Asana ענתה HTTP 401, שאותה השרת החזיר כקטע שמופיע למטה. כלומר טבלת הכלים נספרה בריצה חיה והכישלון הוא שגיאת אימות אמיתית מ-Asana עצמה, בעוד שקריאה מאומתת עדיין ממתינה לאסימון גישה אישי אמיתי של Asana באותו משתנה.

הודעת הפתיחה של השרת

Starting Asana MCP Server...
Connecting server to transport...
Asana MCP Server running on stdio

קריאת כלי אמיתית אחת

tools/call asana_list_workspaces {}
{"error":"Unauthorized"}

שורות אמיתיות מהתוצאה שנלכדה: מספיק כדי להוכיח שהקריאה נענתה.

כלים

הכלים, כפי שנספרו מהשרת הרץ.

השרת ענה ל-tools/list עם 41 כלים בתאריך 2026-08-03. השמות, התיאורים והפרמטרים למטה הם המילים שלו עצמו, מועתקים מהתשובה הזו וללא עריכה.

כלימה הוא עושה
asana_list_workspacesopt_fields

List all available workspaces in Asana

asana_search_projectsworkspace*name_pattern*archivedopt_fields

Search for projects in Asana using name pattern matching

asana_get_my_tasksworkspace*opt_fieldscompleted_since

Get tasks from the authenticated user's 'My Tasks' list in a workspace. Returns the user's personal task list including sections like Inbox, Today, This Week, etc.

asana_search_tasksworkspace*textresource_subtypeportfolios_anyassignee_anyassignee_notprojects_anyprojects_notprojects_allsections_anysections_notsections_alltags_anytags_nottags_allteams_anyfollowers_notcreated_by_anycreated_by_notassigned_by_anyassigned_by_notliked_by_notcommented_on_by_notdue_ondue_on_beforedue_on_afterdue_at_beforedue_at_afterstart_onstart_on_beforestart_on_aftercreated_oncreated_on_beforecreated_on_aftercreated_at_beforecreated_at_aftercompleted_oncompleted_on_beforecompleted_on_aftercompleted_at_beforecompleted_at_aftermodified_onmodified_on_beforemodified_on_aftermodified_at_beforemodified_at_aftercompletedis_subtaskhas_attachmentis_blockedis_blockingsort_bysort_ascendingopt_fieldscustom_fields

Search tasks in a workspace with advanced filtering options

asana_get_tasktask_id*opt_fields

Get detailed information about a specific task

asana_create_taskproject_id*name*noteshtml_notesdue_onassigneefollowersparentprojectsresource_subtypecustom_fields

Create a new task in a project

asana_get_task_storiestask_id*opt_fields

Get comments and stories for a specific task

asana_update_tasktask_id*namenoteshtml_notesdue_onassigneefollowersparentcompletedresource_subtypecustom_fields

Update an existing task's details

asana_get_projectproject_id*opt_fields

Get detailed information about a specific project

asana_get_project_task_countsproject_id*opt_fields

Get the number of tasks in a project

asana_get_project_sectionsproject_id*opt_fields

Get sections in a project

asana_get_tasks_for_projectproject_id*opt_fieldslimitoffset

Get all tasks in a project. Use this instead of search_tasks when you need to list tasks in a specific project. Supports pagination and optional field selection.

asana_create_projectworkspace*name*teamnotescolorprivacy_settingdefault_viewopt_fields

Create a new project in a workspace or team

asana_create_task_storytask_id*texthtml_textopt_fields

Create a comment or story on a task. Either text or html_text is required.

asana_add_task_dependenciestask_id*dependencies*

Set dependencies for a task

asana_add_task_dependentstask_id*dependents*

Set dependents for a task (tasks that depend on this task)

asana_create_subtaskparent_task_id*name*noteshtml_notesdue_onassigneeopt_fields

Create a new subtask for an existing task

asana_get_subtaskstask_gid*opt_fields

Get all subtasks of a given task. Returns a compact representation of each subtask.

asana_get_multiple_tasks_by_gidtask_ids*opt_fields

Get detailed information about multiple tasks by their GIDs (maximum 25 tasks)

asana_get_project_statusproject_status_gid*opt_fields

Get a project status update

asana_get_project_statusesproject_gid*limitoffsetopt_fields

Get all status updates for a project

asana_create_project_statusproject_gid*text*colortitlehtml_textopt_fields

Create a new status update for a project

asana_delete_project_statusproject_status_gid*

Delete a project status update

asana_set_parent_for_taskdata*task_id*opts

Set the parent of a task and position the subtask within the other subtasks of that parent

asana_get_tagtag_gid*opt_fields

Get detailed information about a specific tag

asana_get_tags_for_tasktask_gid*limitoffsetopt_fields

Get a task's tags

asana_get_tags_for_workspaceworkspace_gid*limitoffsetopt_fields

Get tags in a workspace

asana_update_tagtag_gid*namecolornotesopt_fields

Update an existing tag

asana_delete_tagtag_gid*

Delete a tag

asana_get_tasks_for_tagtag_gid*opt_fieldsopt_prettylimitoffset

Get tasks for a specific tag

asana_create_tag_for_workspaceworkspace_gid*name*followerscolornotesopt_fields

Create a new tag in a workspace

asana_add_tag_to_tasktask_gid*tag_gid*

Add a tag to a task

asana_remove_tag_from_tasktask_gid*tag_gid*

Remove a tag from a task

asana_add_project_to_tasktask_id*project_id*sectioninsert_afterinsert_before

Add an existing task to a project. If no positioning arguments are given, the task will be added to the end of the project.

asana_remove_project_from_tasktask_id*project_id*

Remove a task from a project. The task will still exist in the system, but it will not be in the project anymore.

asana_delete_tasktask_id*

Delete a task. This permanently removes the task and cannot be undone.

asana_create_sectionproject_id*name*opt_fields

Create a new section in a project

asana_update_sectionsection_id*name*opt_fields

Update a section (rename it)

asana_delete_sectionsection_id*

Delete a section from a project

asana_add_task_to_sectionsection_id*task_id*insert_beforeinsert_after

Move a task to a section within its project

asana_update_projectproject_id*namenoteshtml_notescolorprivacy_settingopt_fields

Update a project's details (name, description, etc.)

פרמטרים המסומנים ב-* הם חובה.

התקנה

הגדרות שעובדות, אחת לכל אפליקציה.

העתיקו את הבלוק של האפליקציה שלכם. כל אחד מהם הוא ההגדרה המדויקת שאיתה אימתנו את השרת.

Claude Desktop

פתחו את הקובץ ‎~/Library/Application Support/Claude/claude_desktop_config.json (בתוך Claude Desktop: Settings, אחר כך Developer, אחר כך Edit Config) והוסיפו:

{
  "mcpServers": {
    "asana": {
      "command": "npx",
      "args": [
        "-y",
        "@roychri/mcp-server-asana"
      ],
      "env": {
        "ASANA_ACCESS_TOKEN": "your-asana-token-here"
      }
    }
  }
}

החליפו את ‎your-asana-token-here באסימון הגישה האישי שלכם מ-Asana, ואז סגרו ופתחו מחדש את Claude Desktop. ל-Asana יש גם נקודת קצה מתארחת משלה ל-MCP בכתובת ‎https://mcp.asana.com/v2/mcp, שמוסיפים כמחבר מרוחק ומאשרים בדפדפן במקום להדביק אסימון; זהו שרת אחר מהחבילה שמוגדרת כאן, ואת הכלים שלו לא ספרנו. [4][6][5]

Claude Code

פקודה אחת בטרמינל:

claude mcp add asana -e ASANA_ACCESS_TOKEN=your-asana-token-here -- npx -y @roychri/mcp-server-asana

כל מה שאחרי המקף הכפול הוא הפקודה המדויקת ש-Claude Code יריץ, ו-‎-e קובע את משתנה הסביבה שאיתו היא רצה. אישרנו את הדגל על ה-Mac הזה עם ‎claude mcp add --help: הדגל ‎-e מקבל זוג KEY=value אחד וניתן לחזור עליו, ו-stdio הוא תעבורת ברירת המחדל. [7]

Cursor

הוסיפו ל-‎~/.cursor/mcp.json עבור כל הפרויקטים, או ל-‎.cursor/mcp.json בתוך פרויקט אחד:

{
  "mcpServers": {
    "asana": {
      "command": "npx",
      "args": [
        "-y",
        "@roychri/mcp-server-asana"
      ],
      "env": {
        "ASANA_ACCESS_TOKEN": "your-asana-token-here"
      }
    }
  }
}

Cursor קורא את הקובץ מחדש אחרי הפעלה מחדש. שמרו את האסימון מחוץ לקובץ פרויקט שנכנס ל-git: הקובץ הגלובלי ‎~/.cursor/mcp.json הוא הבית הבטוח יותר עבורו. [8]

Routines

בלי קובץ JSON ובלי טרמינל. ב-Routines: Settings, אחר כך Assistant, אחר כך Connections, אחר כך Add MCP Server. העבירו את הטופס ל-Command (stdio) והזינו:

Name                    Asana
Command                 npx
Arguments               -y @roychri/mcp-server-asana
Environment Variables   ASANA_ACCESS_TOKEN=your-asana-token-here

האסימון נכנס לשדה Environment Variables כשורת KEY=value אחת, כך שהוא לעולם לא יושב בשורת ה-Arguments. לחצו קודם על Test Connection: שרת תקין עונה עם מספר הכלים שלו. [9][4]

בלי טרמינל

איך מגדירים את שרת ה-MCP‏ Asana בלי טרמינל.

אם מעולם לא פתחתם את הטרמינל ואין לכם כוונה להתחיל, זה המסלול שלכם. Routines היא אפליקציית Mac שמריצה שרתי MCP בשבילכם: ממלאים ארבעה שדות פעם אחת, והכלים של השרת זמינים ל-AI שלכם בצ׳אט ובשגרות מתוזמנות.

  1. 01

    התקינו את Routines

    הורידו את האפליקציה מ-getroutines.ai/download, גררו אותה ל-Applications והתחברו.

  2. 02

    פתחו את הגדרות ה-MCP

    לחצו על החשבון שלכם בתחתית סרגל הצד ובחרו Settings. פתחו את הקטע Assistant, אחר כך את הלשונית Connections, גללו אל MCP Servers ולחצו על Add MCP Server.

  3. 03

    בחרו Command (stdio)‎

    העבירו את הטופס ל-Command (stdio): השרת הזה הוא פקודה, לא כתובת אינטרנט. קראו לו Asana. Command: npx. Arguments: ‎-y @roychri/mcp-server-asana, בדיוק כפי שכתוב, עם רווח אחד בין החלקים.

  4. 04

    הפיקו אסימון גישה אישי ב-Asana

    ב-Asana לחצו על תמונת הפרופיל שלכם, אחר כך My Settings, אחר כך הלשונית Apps, אחר כך Manage Developer Apps, או גשו ישירות ל-app.asana.com/0/my-apps. צרו אסימון גישה אישי והעתיקו אותו: Asana מציגה את הערך המלא פעם אחת בלבד. התייחסו אליו כמו לסיסמה, כי מי שמחזיק בו יכול לקרוא, לשנות ולמחוק כל דבר שאתם מגיעים אליו ב-Asana.

  5. 05

    הדביקו את האסימון, בדקו, ואז הוסיפו

    בשדה Environment Variables הוסיפו שורה אחת: ‎ASANA_ACCESS_TOKEN=your-asana-token-here, עם האסימון שלכם אחרי סימן השווה ובלי רווחים סביבו. לחצו Test Connection: Routines מפעילה את השרת ומדווחת כמה כלים היא מצאה, ארבעים ואחד עבור השרת הזה. אחר כך לחצו Add Server.

  6. 06

    השתמשו בו

    הכלים עובדים בצ׳אט מיד. כדי לתת לשגרה מתוזמנת להשתמש בהם, פתחו את השגרה, מצאו את הכרטיס Tools & connections וסמנו את השרת תחת Apps.

רעיונות לשגרות

שגרות ששווה לתזמן.

אחרי שהשרת מחובר, שגרה מתוזמנת יכולה להשתמש בכלים שלו גם כשאתם לא מול המסך. העתיקו פרומפט, הדביקו אותו ב-Routines ובחרו שעה. הפרומפטים כתובים באנגלית בכוונה, מדביקים אותם בדיוק כפי שהם.

מבט ליום שני על השבוע

פרומפט

Every Monday at 8:00, list my open Asana tasks due this week grouped by project, call out anything already overdue, and write the whole plan to week-ahead.md.

עדכון סטטוס לפרויקט ביום שישי

פרומפט

Every Friday at 16:00, gather the Asana tasks completed this week in my main project plus anything still blocked, then post a short status update on that project summarizing both.

סריקת משימות באיחור

פרומפט

Every weekday at 17:30, find the Asana tasks assigned to me that were due before today and are still open, and write them to overdue.md with a one-line note on what each one is waiting for.

פתרון תקלות

השגיאות שנתקלנו בהן, ומה פתר אותן.

שגיאות אמיתיות שנלכדו בריצת האימות, מודפסות בדיוק כפי שהשרת החזיר אותן.

השרת נסגר מיד עם ההפעלה

מה רואים

Please set ASANA_ACCESS_TOKEN environment variable

הפתרון

המשתנה חסר לגמרי, ולכן השרת מסרב לעלות: הוא מדפיס את השורה הזו ל-stderr, יוצא בלי לכתוב דבר ל-stdout, והלקוח שלכם מדווח שהחיבור נכשל. הוסיפו את ASANA_ACCESS_TOKEN בבלוק ה-env בקובץ ה-JSON, אחרי ‎-e בפקודת Claude Code, או בשדה Environment Variables ב-Routines, ואז הפעילו את הלקוח מחדש.

כל קריאת כלי חוזרת עם Unauthorized

מה רואים

{"error":"Unauthorized"}

הפתרון

Asana דחתה את האסימון. זו התשובה המדויקת שהריצה שלנו הפיקה, כי הפעלנו את השרת בכוונה עם ערך ממלא מקום: הבקשה הגיעה אל ‎https://app.asana.com/api/1.0/workspaces ו-Asana ענתה HTTP 401. בדקו ש-ASANA_ACCESS_TOKEN מכיל את אסימון הגישה האישי האמיתי שלכם, שהעתקתם אותו במלואו בלי רווח בסוף, ושהפעלתם מחדש את הלקוח אחרי השינוי, כי הערך נקרא כשהשרת עולה ולא בזמן קריאת הכלי.

גם מזהה שגוי או ערך מטיפוס שגוי מחזירים Unauthorized

מה רואים

{"error":"Unauthorized"}

הפתרון

שתי בדיקות שלנו חשפו את המלכודת הזו. קריאה תקינה במבנה שלה עם מזהה פרויקט שאינו קיים, וקריאת חיפוש שבה completed קיבל את הטקסט not-a-boolean במקום true או false, שתיהן חזרו עם אותה שגיאת אימות: השרת מעביר את הארגומנטים ל-Asana, ו-Asana בודקת את אישור הגישה לפני שהיא שופטת את הבקשה. לכן כל עוד האסימון שגוי, Unauthorized היא השגיאה היחידה שתראו, והיא מסתירה כל דבר אחר. תקנו קודם את האסימון ואז קראו את השגיאה שוב: עם אסימון אמיתי מזהה שגוי מחזיר את הודעת ״לא נמצא״ של Asana במקום זאת.

שגיאה מזכירה פרמטר שמעולם לא הקלדתם

מה רואים

{"error":"Missing the required parameter 'task_gid' when calling getTask"}

הפתרון

גרמנו לזה בקריאה ל-asana_get_task בלי ארגומנטים. הכלי מצהיר על הארגומנט הנדרש שלו בשם task_id, אבל מתחת לפני השטח הוא משתמש בספרייה הרשמית של Asana ל-Node, שקוראת לאותו ערך task_gid, וההודעה של הספרייה היא זו שמגיעה אליכם. מדובר באותו דבר בדיוק: המזהה המספרי שמופיע בסוף כתובת המשימה ב-Asana. שלחו אותו בתור task_id והקריאה תעבור.

העוזר קורא לכלי שלא קיים

מה רואים

{"error":"Unknown tool: asana_get_taks"}

הפתרון

שגיאת הקלדה בשם הכלי, שלנו ובכוונה. השרת לא מנחש ולא מתקן: הוא עונה עם השם שקיבל. כל שם שהוא מקבל נמצא בטבלה למעלה, כל 41 הכלים, וכולם מתחילים ב-asana_. אם העוזר שלכם ממשיך לנסות כלי שאינו קיים, הדביקו לו את הרשימה בשיחה כדי שיעבוד עם השמות האמיתיים.

נקודת הקצה המתארחת של Asana מחזירה 401 לפני התחברות

מה רואים

{"error":"invalid_request","error_description":"Authorization header is required for MCP V2 access"}

הפתרון

זו אינה החבילה שבעמוד הזה. Asana מפעילה שרת MCP משלה בכתובת ‎https://mcp.asana.com/v2/mcp, ואנחנו שלחנו בדיוק לכתובת הזו בקשה חשופה בלי אישור גישה: היא ענתה 401 עם כותרת אתגר OAuth שמציינת את התחום Asana MCP ומפנה למטא-נתונים של oauth-protected-resource. זו נקודת קצה שעובדת כמתוכנן. מדובר בהתחברות בדפדפן ולא באסימון שמדביקים, ולכן לקוח שלא פותח את חלון האישור יישאר תקוע על השגיאה הזו. אם אתם רוצים את מסלול האסימון בלי OAuth, השתמשו בפקודת npx שבעמוד הזה.

לקוח ה-MCP לא מצליח להפעיל את השרת בכלל

הפתרון

הפקודה npx שייכת ל-Node.js. אם Node לא מותקן על ה-Mac, כל לקוח בעמוד הזה ייכשל בשלב ההפעלה עוד לפני שהשרת מספיק לומר משהו. התקינו Node מ-nodejs.org, הפעילו מחדש את לקוח ה-MCP ונסו שוב.

שאלות נפוצות

שאלות שאנשים שואלים.

מה זה שרת ה-MCP של Asana?

זו תוכנה קטנה שנותנת לעוזר AI גישה לחשבון ה-Asana שלכם דרך ה-Model Context Protocol. זה שבעמוד הזה, @roychri/mcp-server-asana, הוא חבילה קהילתית של מפתח עצמאי בשם Christian Roy, והוא רץ כפקודה מקומית על ה-Mac שלכם שמדברת עם אפליקציית ה-AI על גבי stdio. אחרי החיבור, עוזר כמו Claude יכול לחפש את הפרויקטים והמשימות שלכם, ליצור ולעדכן אותם, להגיב, לתייג, להעביר משימות בין מקטעים ולפרסם עדכוני סטטוס לפרויקט. [1][3][4]

האם קיים שרת MCP רשמי של Asana?

כן, והוא דבר אחר מהחבילה שבעמוד הזה. Asana מתעדת שרת MCP מתארח בכתובת ‎https://mcp.asana.com/v2/mcp, שמוסיפים ללקוח כמחבר מרוחק ומאשרים עם חשבון ה-Asana שלכם בדפדפן, בלי חבילת npm ובלי אסימון להעתיק. אישרנו שנקודת הקצה הזו פעילה בתאריך 2026-08-03: בקשה בלי אישור גישה חוזרת עם 401 ואתגר OAuth תקני. לא יכולנו לספור את הכלים שלה, כי לשם כך צריך התחברות בדפדפן שלא ביצענו, ולכן כל מספר בעמוד הזה שייך לחבילה הקהילתית שכן הרצנו. [5]

אילו כלים כלולים בשרת ה-MCP של Asana?

השרת הרץ חושף 41 כלים. סביבות עבודה ופרויקטים: asana_list_workspaces, asana_search_projects, asana_get_project, asana_create_project, asana_update_project, asana_get_project_task_counts, asana_get_project_sections, asana_get_tasks_for_project. משימות: asana_get_my_tasks, asana_search_tasks, asana_get_task, asana_get_multiple_tasks_by_gid, asana_create_task, asana_update_task, asana_delete_task, asana_add_project_to_task, asana_remove_project_from_task. תת-משימות ותלויות: asana_create_subtask, asana_get_subtasks, asana_set_parent_for_task, asana_add_task_dependencies, asana_add_task_dependents. תגובות: asana_get_task_stories, asana_create_task_story. מקטעים: asana_create_section, asana_update_section, asana_delete_section, asana_add_task_to_section. תוויות: asana_get_tag, asana_get_tags_for_task, asana_get_tags_for_workspace, asana_create_tag_for_workspace, asana_update_tag, asana_delete_tag, asana_get_tasks_for_tag, asana_add_tag_to_task, asana_remove_tag_from_task. עדכוני סטטוס: asana_get_project_status, asana_get_project_statuses, asana_create_project_status, asana_delete_project_status. הטבלה למעלה היא פלט ה-tools/list החי, מילה במילה.

למה ה-README מציג בערך 20 כלים בזמן שהשרת עונה עם 41?

כי רשימת הכלים שבטקסט ה-README נשארה מאחור ביחס לקוד. לא ספרנו את ה-README: שאלנו את השרת הרץ, והוא ענה ב-tools/list עם 41 כלים, שכמה מהם אינם מוזכרים ב-README כלל, ובהם asana_get_tags_for_workspace, asana_create_project_status, asana_set_parent_for_task ו-asana_get_multiple_tasks_by_gid. התשובה החיה היא הקובעת, כי היא מה שלקוח ה-AI שלכם באמת רואה כשהוא מתחבר. [4]

האם זה בטוח לתת לו את האסימון שלי מ-Asana?

כדאי להסתכל על היקף הגישה בעיניים פקוחות. אסימון גישה אישי פועל בשמכם, ולכן השרת הזה מגיע לכל סביבת עבודה, פרויקט ומשימה שחשבון ה-Asana שלכם מגיע אליהם, ורשימת הכלים כוללת את asana_delete_task, שלפי התיאור שלו עצמו מוחק את המשימה לצמיתות בלי אפשרות לשחזר, ולצדו asana_delete_section, asana_delete_tag ו-asana_delete_project_status. שום דבר לא מצמצם את זה לפרויקט אחד. ה-README מתעד משתנה סביבה אופציונלי, ‎READ_ONLY_MODE=true, שמכבה את כלי הכתיבה; לא הפעלנו אותו בריצה הזו, ולכן התייחסו אליו כאל מתועד ולא כאל מאומת. ההרגלים הנכונים: שמרו את האסימון בשדה משתני הסביבה שהלקוח שלכם מחזיק באופן פרטי, בקשו מהעוזר להראות לכם מה הוא עומד לשנות לפני שהוא משנה, ומחקו את האסימון ב-Asana ברגע שהפסקתם להשתמש בחיבור. [4]

צריך טרמינל כדי להגדיר אותו?

לא. ב-Routines ממלאים ארבעה שדות בהגדרות ולוחצים Test Connection; המדריך למעלה מראה כל לחיצה, כולל לאן נכנס האסימון. Claude Desktop דורש עריכה חד-פעמית של קובץ JSON קטן. רק Claude Code הוא כלי טרמינל מטבעו. [9][6]

אילו אפליקציות יכולות להשתמש בשרת ה-MCP של Asana?

כל לקוח MCP שמסוגל להפעיל שרת stdio מקומי: Claude Desktop, Claude Code, Cursor ו-Routines כולם יכולים, וההגדרה המדויקת לכל אחד נמצאת למעלה. השרת עצמו זהה בכל לקוח; רק המקום שבו מדביקים את ההגדרה משתנה. [6][7][8][9]

מקורות

כל טענה חיצונית, עם קבלה.

כל מה שבעמוד הזה שלא ראינו בעצמנו בריצה מקושר כאן, עם התאריך שבו קראנו אותו. לגבי השאר, הריצה עצמה היא הקבלה.

  1. [1]

    npm registry: @roychri/mcp-server-asanaנקרא בתאריך 2026-08-03

    Latest version 1.8.0, published 2026-03-29; license MIT; author Christian Roy; npm maintainer roychri; package first published 2024-12-04; ships the mcp-server-asana binary that runs over stdio.

  2. [2]

    npm downloads API: last weekנקרא בתאריך 2026-08-03

    3,466 downloads for the week 2026-07-27 to 2026-08-02.

  3. [3]

    GitHub: roychri/mcp-server-asanaנקרא בתאריך 2026-08-03

    145 stars, licensed MIT, not archived, and a push dated 2026-05-10 at access time, per the GitHub API.

  4. [4]

    mcp-server-asana README (main branch)נקרא בתאריך 2026-08-03

    Names the ASANA_ACCESS_TOKEN variable and where in Asana to create the token, documents the optional READ_ONLY_MODE=true variable, and lists about 20 tools in prose against the 41 the running server reports.

  5. [5]

    Asana developer docs: Using Asana's MCP Serverנקרא בתאריך 2026-08-03

    Tells clients to connect to https://mcp.asana.com/v2/mcp over Streamable HTTP and to authenticate with an Asana account when prompted. That hosted endpoint is not the package on this page and its tool list is not enumerated here.

  6. [6]

    modelcontextprotocol.io: Connect to local MCP serversנקרא בתאריך 2026-08-03

    The Claude Desktop config file location and the editing flow.

  7. [7]

    Claude Code docs: MCPנקרא בתאריך 2026-08-03

    The claude mcp add syntax for local stdio servers, including the -e flag for environment variables.

  8. [8]

    Cursor docs: Model Context Protocolנקרא בתאריך 2026-08-03

    The mcp.json shape and file locations.

  9. [9]

    Routines: Connectorsנקרא בתאריך 2026-08-03

    How Routines runs one-click OAuth connectors and any MCP server.

העמוד הזה מתאר את Asana כפי שהתנהג בריצה מתוארכת אחת על Mac אחד. גרסאות משתנות: אם משהו כאן כבר לא תואם למה שאתם רואים, תאריך הלכידה בראש העמוד אומר בן כמה הצילום.

מאחורי המדריך הזה

Routines, האפליקציה שמאחורי המדריך הזה, מריצה שרתי MCP כמו זה בלי טרמינל: כך עובדים המחברים. הפתקים שלכם נשארים קובצי markdown על ה-Mac שלכם, אין חשבון ענן לשלם, והיא עובדת גם בלי אינטרנט. להורדת Routines