← 返回公开榜单
mc

roychri/mcp-server-asana

(No description)

本周新增
1 星
近 3 周倍数
0.3x
距上次推送
303 天
距上次发布
—
许可证
MIT

星标增长

每根柱子是这个周期记录下来的 star 增长:优先取逐个 stargazer 到达时间分桶的到达数,还没被 stargazer 扫描覆盖的仓库改用该周期的 star 净增;两个写者都没记录的周期画成虚线空档,而不是当成 0。柱高按各自窗口的峰值归一,两张图不共用坐标轴。指向任意一根柱子, tooltip 里是该周期的九项指标:当前值与周期内的净增。

指向或点击一根柱子,看当天的九项指标。

12/1712/301/111/242/62/193/33/16

2025 年 12 月 17 日 新增 0 个星标; 2025 年 12 月 18 日 新增 0 个星标; 2025 年 12 月 19 日 新增 0 个星标; 2025 年 12 月 21 日 新增 0 个星标; 2025 年 12 月 22 日 新增 1 个星标; 2025 年 12 月 23 日 新增 0 个星标; 2025 年 12 月 24 日 新增 0 个星标; 2025 年 12 月 25 日 新增 0 个星标; 2025 年 12 月 26 日 新增 1 个星标; 2025 年 12 月 27 日 新增 1 个星标; 2026 年 1 月 2 日 新增 0 个星标; 2026 年 1 月 3 日 新增 0 个星标; 2026 年 1 月 4 日 新增 0 个星标; 2026 年 1 月 5 日 新增 0 个星标; 2026 年 1 月 6 日 新增 0 个星标; 2026 年 1 月 8 日 新增 1 个星标; 2026 年 1 月 9 日 新增 0 个星标; 2026 年 1 月 10 日 新增 0 个星标; 2026 年 1 月 11 日 新增 0 个星标; 2026 年 1 月 12 日 新增 0 个星标; 2026 年 1 月 13 日 新增 0 个星标; 2026 年 1 月 14 日 新增 1 个星标; 2026 年 1 月 15 日 新增 0 个星标; 2026 年 1 月 16 日 新增 0 个星标; 2026 年 1 月 18 日 新增 0 个星标; 2026 年 1 月 21 日 新增 0 个星标; 2026 年 1 月 23 日 新增 0 个星标; 2026 年 1 月 25 日 新增 0 个星标; 2026 年 1 月 26 日 新增 0 个星标; 2026 年 1 月 27 日 新增 0 个星标; 2026 年 1 月 28 日 新增 0 个星标; 2026 年 1 月 29 日 新增 0 个星标; 2026 年 2 月 1 日 新增 0 个星标; 2026 年 2 月 2 日 新增 1 个星标; 2026 年 2 月 8 日 新增 2 个星标; 2026 年 2 月 9 日 新增 0 个星标; 2026 年 2 月 10 日 新增 1 个星标; 2026 年 2 月 11 日 新增 2 个星标; 2026 年 2 月 13 日 新增 0 个星标; 2026 年 2 月 14 日 新增 0 个星标; 2026 年 2 月 16 日 新增 0 个星标; 2026 年 2 月 17 日 新增 0 个星标; 2026 年 2 月 21 日 新增 1 个星标; 2026 年 2 月 23 日 新增 0 个星标; 2026 年 2 月 25 日 新增 1 个星标; 2026 年 2 月 27 日 新增 -1 个星标; 2026 年 2 月 28 日 新增 1 个星标; 2026 年 3 月 1 日 新增 2 个星标; 2026 年 3 月 2 日 新增 2 个星标; 2026 年 3 月 3 日 新增 0 个星标; 2026 年 3 月 4 日 新增 0 个星标; 2026 年 3 月 5 日 新增 0 个星标; 2026 年 3 月 8 日 新增 1 个星标; 2026 年 3 月 10 日 新增 1 个星标; 2026 年 3 月 11 日 新增 0 个星标; 2026 年 3 月 16 日 新增 1 个星标

窗口内最高的一天是 2026 年 2 月 8 日,新增 2 个星标。

证据时间轴

这个项目还没有记录到异动、发布或许可证变化。

README
该仓库存储的文档,若已生成中文翻译则一并显示

MCP Server for Asana

npm version

Asana的Model Context Protocol服务器实现,允许您从MCP客户端(如Anthropic的Claude桌面应用程序)等与Asana API进行交互。

关于MCP的更多详情:

mcp-server-asana MCP server

环境变量

  • ASANA_ACCESS_TOKEN: (必需) 您的Asana访问令牌
  • READ_ONLY_MODE: (可选) 设置为'true'以禁用所有写入操作。在此模式下:
    • 修改Asana数据(创建、更新、删除)的工具将被禁用
    • create-task提示将被禁用
    • 仅可使用读取操作 这对于测试或在您希望确保无法更改您的Asana工作区时非常有用。

使用方法

在您选择的AI工具中(例如Claude桌面应用程序)询问有关Asana任务、项目、工作区或评论的问题。提及"asana"一词将增加LLM选择正确工具的可能性。

示例:

我们在Sprint 30项目中有多少未完成的Asana任务?

另一个示例:

Claude桌面应用程序示例

工具

  1. asana_list_workspaces
    • 列出Asana中所有可用的工作区
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:工作区列表
  2. asana_search_projects
    • 使用名称模式匹配在Asana中搜索项目
    • 必需输入:
      • workspace (string): 要在其中搜索的工作区
      • name_pattern (string): 匹配项目名称的正则表达式模式
    • 可选输入:
      • archived (boolean): 仅返回已归档的项目(默认为false)
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:匹配的项目列表
  3. asana_search_tasks
    • 在工作区中搜索任务,具有高级过滤选项
    • 必需输入:
      • workspace (string): 要在其中搜索的工作区
    • 可选输入:
      • text (string): 在任务名称和描述中搜索的文本
      • resource_subtype (string): 按任务子类型过滤(例如milestone)
      • completed (boolean): 过滤已完成任务
      • is_subtask (boolean): 过滤子任务
      • has_attachment (boolean): 过滤具有附件的任务
      • is_blocked (boolean): 过滤具有不完整依赖关系的任务
      • is_blocking (boolean): 过滤具有依赖项的不完整任务
      • assignee, projects, sections, tags, teams,以及其他高级过滤器
      • sort_by (string): 按due_date, created_at, completed_at, likes, modified_at排序(默认为modified_at)
      • sort_ascending (boolean): 以升序排序(默认为false)
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
      • custom_fields (object): 包含自定义字段过滤器的对象
    • 返回:匹配的任务列表
  4. asana_get_task
    • 获取特定任务的详细信息
    • 必需输入:
      • task_id (string): 要检索的任务ID
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:任务详细信息
  5. asana_create_task
    • 在项目中创建新任务
    • 必需输入:
      • project_id (string): 要在其中创建任务的项目的ID
      • name (string): 任务名称
    • 可选输入:
      • notes (string): 任务描述
      • html_notes (string): 类似HTML格式的任务描述
      • due_on (string): YYYY-MM-DD格式的截止日期
      • assignee (string): 指派对象(可以是'me'或用户ID)
      • followers (array of strings): 要添加为关注者的用户ID数组
      • parent (string): 要将此任务设置为子任务的父任务ID
      • projects (array of strings): 要添加到此任务的数组项目ID
      • resource_subtype (string): 任务类型(default_task或milestone)
      • custom_fields (object): 将自定义字段GID字符串映射到其值的对象
    • 返回:创建的任务信息
  6. asana_get_task_stories
    • 获取特定任务的评论和故事
    • 必需输入:
      • task_id (string): 要获取故事的任务ID
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:任务故事/评论列表
  7. asana_update_task
    • 更新现有任务的详细信息
    • 必需输入:
      • task_id (string): 要更新的任务ID
    • 可选输入:
      • name (string): 新的任务名称
      • notes (string): 新的任务描述
      • html_notes (string): 类似HTML格式的任务描述(支持HTML标签子集)
      • due_on (string): YYYY-MM-DD格式的新截止日期
      • assignee (string): 新的指派对象(可以是'me'或用户ID)
      • followers (array): 要添加为关注者的用户ID数组
      • parent (string): 要将此任务移动到其下的父任务ID
      • completed (boolean): 将任务标记为已完成或未完成
      • resource_subtype (string): 任务类型(default_task或milestone)
      • custom_fields (object): 将自定义字段GID字符串映射到其值的对象
    • 返回:更新的任务信息
  8. asana_get_project
    • 获取特定项目的详细信息
    • 必需输入:
      • project_id (string): 要检索的项目ID
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:项目详细信息
  9. asana_get_project_task_counts
    • 获取项目中的任务数量
    • 必需输入:
      • project_id (string): 要获取任务计数的项目ID
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:任务计数信息
  10. asana_get_project_sections
    • 获取项目中的部分
    • 必需输入:
      • project_id (string): 要获取部分的项目ID
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:项目部分列表
  11. asana_create_task_story
    • 在任务上创建评论或故事
    • 必需输入:
      • task_id (string): 要添加故事的任务ID
      • text (string): 故事/评论的文本内容
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:创建的故事信息
  12. asana_add_task_dependencies
    • 为任务设置依赖关系
    • 必需输入:
      • task_id (string): 要添加依赖关系的任务ID
      • dependencies (array of strings): 此任务依赖的任务ID数组
    • 返回:更新的任务依赖关系
  13. asana_add_task_dependents
    • 为任务设置依赖项(依赖于此任务的任务)
    • 必需输入:
      • task_id (string): 要添加依赖项的任务ID
      • dependents (array of strings): 依赖于此任务的任务ID数组
    • 返回:更新的任务依赖项
  14. asana_create_subtask
    • 为现有任务创建新子任务
    • 必需输入:
      • parent_task_id (string): 要在其下创建子任务的父任务ID
      • name (string): 子任务名称
    • 可选输入:
      • notes (string): 子任务描述
      • due_on (string): YYYY-MM-DD格式的截止日期
      • assignee (string): 指派对象(可以是'me'或用户ID)
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:创建的子任务信息
  15. asana_get_multiple_tasks_by_gid
    • 通过其GIDs获取多个任务的详细信息(最多25个任务)
    • 必需输入:
      • task_ids (array of strings or comma-separated string): 要检索的任务GIDs(最多25个)
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:详细的任务信息列表
  16. asana_get_project_status
    • 获取项目状态更新
    • 必需输入:
      • project_status_gid (string): 要检索的项目状态GID
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:项目状态信息
  17. asana_get_project_statuses
    • 获取项目的所有状态更新
    • 必需输入:
      • project_gid (string): 要获取状态的项目GID
    • 可选输入:
      • limit (number): 每页结果(1-100)
      • offset (string): 分页偏移标记
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:项目状态更新列表
  18. asana_create_project_status
    • 为项目创建新的状态更新
    • 必需输入:
      • project_gid (string): 要创建状态的项目GID
      • text (string): 状态更新的文本内容
    • 可选输入:
      • color (string): 状态的颜色(green, yellow, red)
      • title (string): 状态更新的标题
      • html_text (string): HTML格式的状态更新文本
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:创建的项目状态信息
  19. asana_delete_project_status
    • 删除项目状态更新
    • 必需输入:
      • project_status_gid (string): 要删除的项目状态GID
    • 返回:删除确认
  20. asana_set_parent_for_task
    • 设置任务的父级,并在该父任务的子任务中定位子任务
    • 必需输入:
      • task_id (string): 要操作的任务ID
      • data (object):
        • parent (string): 任务的新父级,或null表示无父级
    • 可选输入:
      • insert_after (string): 父任务的一个子任务,要在其后插入此任务,或null表示在列表开头插入
      • insert_before (string): 父任务的一个子任务,要在其前插入此任务,或null表示在列表末尾插入
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:更新的任务信息
  21. asana_get_tag
    • 获取特定标签的详细信息
    • 必需输入:
      • tag_gid (string): 标签的全局唯一标识符
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:详细的标签信息
  22. asana_get_tags_for_task
    • 获取任务的标签
    • 必需输入:
      • task_gid (string): 要操作的任务
    • 可选输入:
      • limit (number): 每页结果。每页返回的对象数量。值必须在1和100之间。
      • offset (string): API返回的下一页的偏移标记。
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:与任务关联的标签列表
  23. asana_get_tasks_for_tag
    • 获取特定标签的任务
    • 必需输入:
      • tag_gid (string): 要检索任务的标签GID
    • 可选输入:
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
      • opt_pretty (boolean): 以'pretty'格式提供响应
      • limit (integer): 每页返回的对象数量。值必须在1和100之间。
      • offset (string): API返回的下一页的偏移标记。
    • 返回:指定标签的任务列表
  24. asana_get_tags_for_workspace
    • 获取工作区中的标签
    • 必需输入:
      • workspace_gid (string): 工作区或组织的全局唯一标识符
    • 可选输入:
      • limit (integer): 每页结果。每页返回的对象数量。值必须在1和100之间。
      • offset (string): API返回的下一页的偏移标记。
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:工作区中的标签列表
  25. asana_update_tag
    • 更新现有标签
    • 必需输入:
      • tag_gid (string): 标签的全局唯一标识符
    • 可选输入:
      • name (string): 标签名称
      • color (string): 标签颜色。可以是以下之一:dark-pink, dark-green, dark-blue, dark-red, dark-teal, dark-brown, dark-orange, dark-purple, dark-warm-gray, light-pink, light-green, light-blue, light-red, light-teal, light-brown, light-orange, light-purple, light-warm-gray
      • notes (string): 标签的备注
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:更新的标签信息
  26. asana_delete_tag
    • 删除标签
    • 必需输入:
      • tag_gid (string): 标签的全局唯一标识符
    • 返回:删除确认
  27. asana_create_tag_for_workspace
    • 在工作区中创建新标签
    • 必需输入:
      • workspace_gid (string): 工作区或组织的全局唯一标识符
      • name (string): 标签名称
    • 可选输入:
      • color (string): 标签颜色。可以是以下之一:dark-pink, dark-green, dark-blue, dark-red, dark-teal, dark-brown, dark-orange, dark-purple, dark-warm-gray, light-pink, light-green, light-blue, light-red, light-teal, light-brown, light-orange, light-purple, light-warm-gray
      • notes (string): 标签的备注
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:创建的标签信息
  28. asana_add_tag_to_task
    • 将标签添加到任务
    • 必需输入:
      • task_gid (string): 要添加标签的任务GID
      • tag_gid (string): 要添加到任务的标签GID
    • 返回:成功响应
  29. asana_remove_tag_from_task
    • 从任务中移除标签
    • 必需输入:
      • task_gid (string): 要移除标签的任务GID
      • tag_gid (string): 要从任务中移除的标签GID
    • 返回:成功响应
  30. asana_add_project_to_task
    • 将现有任务添加到项目
    • 必需输入:
      • task_id (string): 要添加到项目的任务ID
      • project_id (string): 要添加任务的项目ID
    • 可选输入:
      • section (string): 在项目中添加任务的部分ID
      • insert_after (string): 要在此任务之后插入的任务ID。最多只能指定insert_before, insert_after, 或section中的一个。
      • insert_before (string): 要在此任务之前插入的任务ID。最多只能指定insert_before, insert_after, 或section中的一个。
    • 返回:成功消息,确认任务已添加到项目
    • 备注:如果未提供定位参数,任务将被添加到项目的末尾
  31. asana_remove_project_from_task
    • 从项目中移除任务
    • 必需输入:
      • task_id (string): 要从项目中移除的任务ID
      • project_id (string): 要从项目中移除任务的项目ID
    • 返回:成功消息,确认任务已从项目中移除
    • 备注:任务仍然存在于系统中,但将不再属于该项目
  32. asana_delete_task
    • 永久删除任务
    • 必需输入:
      • task_id (string): 要删除的任务ID
    • 返回:成功消息,确认任务已删除
    • 备注:此操作无法撤销。任务将被永久删除。
  33. asana_create_project
    • 在工作区或团队中创建新项目
    • 必需输入:
      • workspace (string): 要在其中创建项目的 workspace GID
      • name (string): 项目名称
    • 可选输入:
      • team (string): 团队 GID(组织工作区必需)
      • notes (string): 项目的描述或备注
      • color (string): 项目颜色(例如dark-pink, dark-green, light-blue)
      • privacy_setting (string): 隐私设置(public_to_workspace, private_to_team, private)
      • default_view (string): 默认视图(list, board, calendar, timeline)
      • opt_fields (string): 要包含的可选字段列表,以逗号分隔
    • 返回:创建的项目对象

提示

  1. task-summary

    • 基于任务的备注、自定义字段和评论获取任务摘要和状态更新
    • 必需输入:
      • task_id (string): 要获取摘要的任务ID
    • 返回:包含生成任务摘要说明的详细提示
  2. task-completeness

    • 分析任务描述是否包含完成所需的全部细节
    • 必需输入:
      • task_id (string): 要分析的任务ID或URL
    • 返回:包含分析任务完整性说明的详细提示
  3. create-task

    • 创建具有指定详细信息的新任务
    • 必需输入:
      • project_name (string): 应该在其中创建任务的Asana项目名称
      • title (string): 任务标题
    • 可选输入:
      • notes (string): 任务备注或描述
      • due_date (string): 任务的截止日期(YYYY-MM-DD格式)
    • 返回:包含创建全面任务说明的详细提示

资源

  1. Workspaces - asana://workspace/{workspace_gid}

    • Asana工作区作为资源的表示
    • 每个工作区都作为单独的资源暴露
    • URI格式:asana://workspace/{workspace_gid}
    • 返回:包含工作区详细信息的JSON对象:
      • name: 工作区名称(string)
      • id: 工作区全局ID(string)
      • type: 资源类型(string)
      • is_organization: 工作区是否为组织(boolean)
      • email_domains: 与工作区关联的电子邮件域名列表(string[])
    • Mime类型:application/json
  2. Projects - asana://project/{project_gid}

    • 通过GID检索项目详情的模板资源
    • URI格式:asana://project/{project_gid}
    • 返回:包含项目详细信息的JSON对象:
      • name: 项目名称(string)
      • id: 项目全局ID(string)
      • type: 资源类型(string)
      • archived: 项目是否已归档(boolean)
      • public: 项目是否为公开(boolean)
      • notes: 项目描述/备注(string)
      • color: 项目颜色(string)
      • default_view: 默认视图类型(string)
      • due_date, due_on, start_on: 项目日期信息(string)
      • workspace: 包含工作区信息的对象
      • team: 包含团队信息的对象
      • sections: 项目中的部分对象数组
      • custom_fields: 项目的自定义字段定义数组
    • Mime类型:application/json

设置

  1. 创建Asana账户:

    • 访问Asana。
    • 点击"注册"。
  2. 获取Asana访问令牌:

  3. 安装选项:

    对于Claude桌面应用程序:

    将以下内容添加到您的claude_desktop_config.json:

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

    对于Claude代码:

    使用以下命令安装和配置MCP服务器:

    claude mcp add asana -e ASANA_ACCESS_TOKEN=<TOKEN> -- npx -y @roychri/mcp-server-asana
    

    将<TOKEN>替换为您的Asana访问令牌。

如果您想安装测试版(尚未发布),您可以使用:

  • @roychri/mcp-server-asana@beta

您可以通过以下方式找到当前的测试版(如果有):

  1. https://www.npmjs.com/package/@roychri/mcp-server-asana?activeTab=versions
  2. npm dist-tag ls @roychri/mcp-server-asana

故障排除

如果您遇到权限错误:

  1. 确保您拥有的asana计划允许API访问
  2. 确认访问令牌和配置在claude_desktop_config.json中设置正确。

贡献

克隆此仓库并开始开发。

使用MCP Inspector本地测试

如果您想测试您的更改,您可以使用MCP Inspector,如下所示:

npm run inspector

这将客户端暴露在端口5173,服务器暴露在端口3000。

如果这些端口已被其他内容使用,您可以使用:

CLIENT_PORT=5009 SERVER_PORT=3009 npm run inspector

许可证

此MCP服务器根据MIT许可证授权。这意味着您可以自由使用、修改和分发该软件,但需遵守MIT许可证的条款和条件。更多详情,请参阅项目仓库中的LICENSE文件。

页面上的每个数字都来自记录下来的 stargazer 到达时间,没有评分公式,也没有 AI 判定。 任何结论都可以用 /api/v1/repos/{id}/stats 里的原始增量自己重算。