返回市场
MCP服务器阿桑娜

MCP服务器阿桑娜

作者:roychri109 星标更新:2025-05-22

项目介绍

技术文档摘要

MCP Server for Asana

npm 版本

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

更多关于 MCP 的信息:

<a href="https://glama.ai/mcp/servers/ln1qzdhwmc"><img width="380" height="200" src="https://gips2.baidu.com/it/u=4210614321,2205534693&fm=3081&app=3181&f=PNG?w=760&h=400" alt="mcp-server-asana MCP 服务器" /></a>

环境变量

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

使用方法

在您选择的 AI 工具中(例如:Claude 桌面应用),询问有关 Asana 任务、项目、工作区和/或评论的问题。提及“asana”一词将增加 LLM 选择正确工具的机会。

示例:

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

另一个示例:

Claude 桌面示例

工具

  1. asana_list_workspaces
    • 列出 Asana 中所有可用的工作区
    • 可选输入:
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:工作区列表
  2. asana_search_projects
    • 使用名称模式匹配搜索 Asana 中的项目
    • 必需输入:
      • workspace (字符串):要搜索的工作区
      • name_pattern (字符串):匹配项目名称的正则表达式模式
    • 可选输入:
      • archived (布尔值):仅返回已存档的项目(默认:false)
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:匹配的项目列表
  3. asana_search_tasks
    • 在工作区中使用高级过滤选项搜索任务
    • 必需输入:
      • workspace (字符串):要搜索的工作区
    • 可选输入:
      • text (字符串):要在任务名称和描述中搜索的文本
      • resource_subtype (字符串):按任务子类型筛选(例如里程碑)
      • completed (布尔值):筛选已完成的任务
      • is_subtask (布尔值):筛选子任务
      • has_attachment (布尔值):筛选带有附件的任务
      • is_blocked (布尔值):筛选具有未完成依赖项的任务
      • is_blocking (布尔值):筛选具有依赖项的未完成任务
      • assignee, projects, sections, tags, teams 和许多其他高级筛选条件
      • sort_by (字符串):按 due_date, created_at, completed_at, likes, modified_at 排序(默认:modified_at)
      • sort_ascending (布尔值):升序排序(默认:false)
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
      • custom_fields (对象):包含自定义字段筛选器的对象
    • 返回值:匹配的任务列表
  4. asana_get_task
    • 获取特定任务的详细信息
    • 必需输入:
      • task_id (字符串):要检索的任务 ID
    • 可选输入:
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:详细的任务信息
  5. asana_create_task
    • 在项目中创建新任务
    • 必需输入:
      • project_id (字符串):要创建任务的项目
      • name (字符串):任务名称
    • 可选输入:
      • notes (字符串):任务描述
      • html_notes (字符串):HTML 格式的任务描述
      • due_on (字符串):截止日期(YYYY-MM-DD 格式)
      • assignee (字符串):分配人(可以是 'me' 或用户 ID)
      • followers (字符串数组):添加为关注者的用户 ID 数组
      • parent (字符串):设置此任务的父任务 ID
      • projects (字符串数组):添加此任务到的项目 ID 数组
      • resource_subtype (字符串):任务类型(默认任务或里程碑)
      • custom_fields (对象):映射自定义字段 GID 字符串及其值的对象
    • 返回值:创建的任务信息
  6. asana_get_task_stories
    • 获取特定任务的评论和故事
    • 必需输入:
      • task_id (字符串):要获取故事的任务 ID
    • 可选输入:
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:任务故事/评论列表
  7. asana_update_task
    • 更新现有任务的详细信息
    • 必需输入:
      • task_id (字符串):要更新的任务 ID
    • 可选输入:
      • name (字符串):任务的新名称
      • notes (字符串):任务的新描述
      • due_on (字符串):新的截止日期(YYYY-MM-DD 格式)
      • assignee (字符串):新的分配人(可以是 'me' 或用户 ID)
      • completed (布尔值):标记任务是否已完成
      • resource_subtype (字符串):任务类型(默认任务或里程碑)
      • custom_fields (对象):映射自定义字段 GID 字符串及其值的对象
    • 返回值:更新的任务信息
  8. asana_get_project
    • 获取特定项目的详细信息
    • 必需输入:
      • project_id (字符串):要检索的项目 ID
    • 可选输入:
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:详细的项目信息
  9. asana_get_project_task_counts
    • 获取项目中的任务数量
    • 必需输入:
      • project_id (字符串):要获取任务计数的项目 ID
    • 可选输入:
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:任务计数信息
  10. asana_get_project_sections
    • 获取项目中的部分
    • 必需输入:
      • project_id (字符串):要获取部分的项目 ID
    • 可选输入:
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:项目部分列表
  11. asana_create_task_story
    • 在任务上创建评论或故事
    • 必需输入:
      • task_id (字符串):要添加故事的任务 ID
      • text (字符串):故事/评论的文本内容
    • 可选输入:
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:创建的故事信息
  12. asana_add_task_dependencies
    • 为任务设置依赖关系
    • 必需输入:
      • task_id (字符串):要添加依赖关系的任务 ID
      • dependencies (字符串数组):此任务依赖的任务 ID 数组
    • 返回值:更新的任务依赖关系
  13. asana_add_task_dependents
    • 为任务设置依赖项(依赖于此任务的任务)
    • 必需输入:
      • task_id (字符串):要添加依赖项的任务 ID
      • dependents (字符串数组):依赖于此任务的任务 ID 数组
    • 返回值:更新的任务依赖项
  14. asana_create_subtask
    • 为现有任务创建新子任务
    • 必需输入:
      • parent_task_id (字符串):要创建子任务的父任务 ID
      • name (字符串):子任务名称
    • 可选输入:
      • notes (字符串):子任务描述
      • due_on (字符串):截止日期(YYYY-MM-DD 格式)
      • assignee (字符串):分配人(可以是 'me' 或用户 ID)
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:创建的子任务信息
  15. asana_get_multiple_tasks_by_gid
    • 根据 GIDs 获取多个任务的详细信息(最多 25 个任务)
    • 必需输入:
      • task_ids (字符串数组或逗号分隔字符串):要检索的任务 GIDs(最多 25 个)
    • 可选输入:
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:详细的任务信息列表
  16. asana_get_project_status
    • 获取项目状态更新
    • 必需输入:
      • project_status_gid (字符串):要检索的项目状态 GID
    • 可选输入:
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:项目状态信息
  17. asana_get_project_statuses
    • 获取项目的全部状态更新
    • 必需输入:
      • project_gid (字符串):要获取状态的项目 GID
    • 可选输入:
      • limit (数字):每页结果数(1-100)
      • offset (字符串):分页偏移标记
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:项目状态更新列表
  18. asana_create_project_status
    • 为项目创建新的状态更新
    • 必需输入:
      • project_gid (字符串):要创建状态的项目 GID
      • text (字符串):状态更新的文本内容
    • 可选输入:
      • color (字符串):状态的颜色(绿色、黄色、红色)
      • title (字符串):状态更新的标题
      • html_text (字符串):状态更新的 HTML 格式文本
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:创建的项目状态信息
  19. asana_delete_project_status
    • 删除项目状态更新
    • 必需输入:
      • project_status_gid (字符串):要删除的项目状态 GID
    • 返回值:删除确认
  20. asana_set_parent_for_task
    • 设置任务的父任务,并在该父任务的其他子任务中定位此子任务的位置
    • 必需输入:
      • task_id (字符串):要操作的任务 ID
      • data (对象):
        • parent (字符串):任务的新父任务,或 null 表示无父任务
    • 可选输入:
      • insert_after (字符串):插入任务之后的父任务子任务,或 null 表示插入到列表开头
      • insert_before (字符串):插入任务之前的父任务子任务,或 null 表示插入到列表末尾
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:更新的任务信息
  21. asana_get_tasks_for_tag
    • 获取特定标签的任务
    • 必需输入:
      • tag_gid (字符串):要检索任务的标签 GID
    • 可选输入:
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
      • opt_pretty (布尔值):以“漂亮”的格式提供响应
      • limit (整数):每页返回的对象数。值必须在 1 到 100 之间。
      • offset (字符串):API 返回的下一页的偏移标记。
    • 返回值:指定标签的任务列表
  22. asana_get_tags_for_workspace
    • 获取工作区中的标签
    • 必需输入:
      • workspace_gid (字符串):工作区或组织的全局唯一标识符
    • 可选输入:
      • limit (整数):每页的结果数。每页返回的对象数。值必须在 1 到 100 之间。
      • offset (字符串):偏移标记。API 返回的下一页的偏移标记。
      • opt_fields (字符串):要包含的可选字段的逗号分隔列表
    • 返回值:工作区中的标签列表

提示

  1. task-summary
    • 根据任务的备注、自定义字段和评论获取任务摘要和状态更新
    • 必需输入:
      • task_id (字符串):要获取摘要的任务 ID
    • 返回值:生成任务摘要的详细提示
  2. task-completeness
    • 分析任务描述是否包含所有必要的完成细节
    • 必需输入:
      • task_id (字符串):要分析的任务 ID 或 URL
    • 返回值:分析任务完整性的详细提示
  3. create-task
    • 使用指定的详细信息创建新任务
    • 必需输入:
      • project_name (字符串):应在其中创建任务的 Asana 项目的名称
      • title (字符串):任务的标题
    • 可选输入:
      • notes (字符串):任务的备注或描述
      • due_date (字符串):任务的截止日期(YYYY-MM-DD 格式)
    • 返回值:创建全面任务的详细提示

资源

  1. 工作区 - asana://workspace/{workspace_gid}
    • 作为资源表示的 Asana 工作区
    • 每个工作区都作为单独的资源暴露
    • URI 格式:asana://workspace/{workspace_gid}
    • 返回值:包含工作区详细信息的 JSON 对象,包括:
      • name:工作区名称(字符串)
      • id:工作区全局 ID(字符串)
      • type:资源类型(字符串)
      • is_organization:工作区是否为组织(布尔值)
      • email_domains:与工作区关联的电子邮件域列表(字符串[])
    • MIME 类型:application/json
  2. 项目 - asana://project/{project_gid}
    • 用于根据 GID 检索项目详细信息的模板资源
    • URI 格式:asana://project/{project_gid}
    • 返回值:包含项目详细信息的 JSON 对象,包括:
      • name:项目名称(字符串)
      • id:项目全局 ID(字符串)
      • type:资源类型(字符串)
      • archived:项目是否已存档(布尔值)
      • public:项目是否公开(布尔值)
      • notes:项目描述/备注(字符串)
      • color:项目颜色(字符串)
      • default_view:默认视图类型(字符串)
      • due_date, due_on, start_on:项目日期信息(字符串)
      • 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 Code:

    使用以下命令安装并配置 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