Skip to main content
Glama

mcp-server-asana

by roychri

Asana 的 MCP 服务器

npm 版本

Asana 的这个模型上下文协议服务器实现允许您从 MCP 客户端(例如 Anthropic 的 Claude 桌面应用程序等)与 Asana API 对话。

有关 MCP 的更多详细信息,请参见:

用法

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

例子:

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

另一个例子:

Claude 桌面示例

工具

  1. asana_list_workspaces

    • 列出 Asana 中所有可用的工作区

    • 可选输入:

      • opt_fields(字符串):要包含的可选字段的逗号分隔列表

    • 返回:工作区列表

  2. asana_search_projects

    • 使用名称模式匹配在 Asana 中搜索项目

    • 必需输入:

      • 工作区(字符串):要搜索的工作区

      • name_pattern(字符串):用于匹配项目名称的正则表达式模式

    • 可选输入:

      • 已存档(布尔值):仅返回已存档的项目(默认值:false)

      • opt_fields(字符串):要包含的可选字段的逗号分隔列表

    • 返回:匹配项目列表

  3. asana_search_tasks

    • 使用高级过滤选项在工作区中搜索任务

    • 必需输入:

      • 工作区(字符串):要搜索的工作区

    • 可选输入:

      • 文本(字符串):在任务名称和描述中搜索的文本

      • resource_subtype(字符串):按任务子类型过滤(例如里程碑)

      • 已完成(布尔值):过滤已完成的任务

      • is_subtask(布尔值):过滤子任务

      • has_attachment(布尔值):过滤带有附件的任务

      • is_blocked(布尔值):过滤具有不完整依赖关系的任务

      • is_blocking(布尔值):过滤有依赖项的未完成任务

      • 受让人、项目、部分、标签、团队和许多其他高级过滤器

      • sort_by(字符串):按到期日期、创建时间、完成时间、喜欢时间、修改时间排序(默认值:修改时间)

      • 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 格式的到期日

      • 受让人(字符串):受让人(可以是“我”或用户 ID)

      • 关注者(字符串数组):要添加为关注者的用户 ID 数组

      • parent(字符串):设置此任务的父任务 ID

      • 项目(字符串数组):要添加此任务的项目 ID 数组

      • resource_subtype(字符串):任务的类型(default_task 或里程碑)

      • 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

      • 受让人(字符串):新受让人(可以是“我”或用户 ID)

      • 已完成(布尔值):将任务标记为已完成或未完成

      • resource_subtype(字符串):任务的类型(default_task 或里程碑)

      • 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(字符串):要包含的可选字段的逗号分隔列表

  • 返回:项目部分列表

  1. asana_create_task_story

  • 对任务创建评论或故事

  • 必需输入:

    • task_id(字符串):要添加故事的任务 ID

    • text(字符串):故事/评论的文本内容

  • 可选输入:

    • opt_fields(字符串):要包含的可选字段的逗号分隔列表

  • 返回:创建的故事信息

  1. asana_add_task_dependencies

  • 设置任务的依赖关系

  • 必需输入:

    • task_id(字符串):要添加依赖项的任务 ID

    • 依赖项(字符串数组):此任务所依赖的任务 ID 数组

  • 返回:更新的任务依赖关系

  1. asana_add_task_dependents

  • 设置任务的依赖项(依赖于此任务的任务)

  • 必需输入:

    • task_id(字符串):要添加依赖项的任务 ID

    • Dependants(字符串数组):依赖于此任务的任务 ID 数组

  • 返回:更新的任务依赖项

  1. asana_create_subtask

  • 为现有任务创建新的子任务

  • 必需输入:

    • parent_task_id (string): 创建子任务的父任务 ID

    • name(字符串):子任务的名称

  • 可选输入:

    • notes(字符串):子任务的描述

    • due_on(字符串):YYYY-MM-DD 格式的到期日

    • 受让人(字符串):受让人(可以是“我”或用户 ID)

    • opt_fields(字符串):要包含的可选字段的逗号分隔列表

  • 返回:创建的子任务信息

  1. asana_get_multiple_tasks_by_gid

  • 通过 GID 获取多个任务的详细信息(最多 25 个任务)

  • 必需输入:

    • task_ids(字符串数组或逗号分隔的字符串):要检索的任务 GID(最多 25 个)

  • 可选输入:

    • opt_fields(字符串):要包含的可选字段的逗号分隔列表

  • 返回:任务详细信息列表

  1. asana_get_project_status

  • 获取项目状态更新

  • 必需输入:

    • project_status_gid (字符串):要检索的项目状态 GID

  • 可选输入:

    • opt_fields(字符串):要包含的可选字段的逗号分隔列表

  • 返回:项目状态信息

  1. asana_get_project_statuses

  • 获取项目的所有状态更新

  • 必需输入:

    • project_gid (字符串):获取状态的项目 GID

  • 可选输入:

    • 限制(数字):每页结果(1-100)

    • offset(字符串):分页偏移标记

    • opt_fields(字符串):要包含的可选字段的逗号分隔列表

  • 返回:项目状态更新列表

  1. asana_create_project_status

  • 为项目创建新的状态更新

  • 必需输入:

    • project_gid (string):要创建状态的项目 GID

    • text(字符串):状态更新的文本内容

  • 可选输入:

    • 颜色(字符串):状态的颜色(绿色、黄色、红色)

    • title(字符串):状态更新的标题

    • html_text(字符串):状态更新的 HTML 格式文本

    • opt_fields(字符串):要包含的可选字段的逗号分隔列表

  • 返回:创建项目状态信息

  1. asana_delete_project_status

  • 删除项目状态更新

  • 必需输入:

    • project_status_gid (字符串):要删除的项目状态 GID

  • 返回:删除确认

  1. asana_set_parent_for_task

  • 设置任务的父级并将子任务定位在该父级的其他子任务中

  • 必需输入:

    • task_id(字符串):要操作的任务ID

    • 数据(对象):

      • parent(字符串):任务的新父级,如果没有父级则为 null

  • 可选输入:

    • insert_after(字符串):在父任务之后插入子任务,或为 null 以在列表开头插入

    • insert_before (string):在父任务之前插入的子任务,或为 null 以在列表末尾插入

    • opt_fields(字符串):要包含的可选字段的逗号分隔列表

  • 返回:更新的任务信息

  1. asana_get_tasks_for_tag

  • 获取特定标签的任务

  • 必需输入:

    • tag_gid (字符串):用于检索任务的标签 GID

  • ���选输入:

    • opt_fields(字符串):要包含的可选字段的逗号分隔列表

    • opt_pretty(布尔值):以“漂亮”格式提供响应

    • limit (整数):每页返回的对象数。该值必须介于 1 到 100 之间。

    • offset(字符串):API 返回的下一页的偏移量。

  • 返回:指定标签的任务列表

  1. 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 :与工作区关联的电子邮件域列表(string[])

    • 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_datedue_onstart_on :项目日期信息(字符串)

      • workspace :包含工作区信息的对象

      • team :包含团队信息的对象

      • sections :项目中的部分对象数组

      • custom_fields :项目的自定义字段定义数组

    • Mime 类型: application/json

设置

  1. 创建 Asana 帐户

    • 访问Asana

    • 点击“注册”。

  2. 检索 Asana 访问令牌

  3. 配置 Claude Desktop :将以下内容添加到您的claude_desktop_config.json中:

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

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

  • @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中正确设置。

贡献

克隆此 repo 并开始破解。

使用 MCP Inspector 在本地进行测试

如果您想测试您的更改,您可以像这样使用 MCP 检查器:

npm run inspector

这会将客户端公开到端口5173并将服务器公开到端口3000

如果这些端口已被其他程序使用,则可以使用:

CLIENT_PORT=5009 SERVER_PORT=3009 npm run inspector

执照

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

Deploy Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

从 MCP 客户端(例如 Anthropic 的 Claude 桌面应用程序)执行 Asana 操作等等。

  1. 用法
    1. 工具
      1. 提示
        1. 资源
          1. 设置
            1. 故障排除
              1. 贡献
                1. 使用 MCP Inspector 在本地进行测试
              2. 执照

                Related MCP Servers

                • A
                  security
                  A
                  license
                  A
                  quality
                  Run your own runbooks from Claude Desktop. You can create your runbooks and execute them with other MCP servers.
                  Last updated -
                  2
                  4
                  Apache 2.0
                • A
                  security
                  F
                  license
                  A
                  quality
                  An MCP server that enables Claude Desktop to communicate with A2A protocol agents, allowing Claude to access extended capabilities through agent interactions.
                  Last updated -
                  3
                  20
                • -
                  security
                  F
                  license
                  -
                  quality
                  An MCP (Multi-Agent Conversation Protocol) server that enables interacting with the Asana API through natural language commands for task management, project organization, and team collaboration.
                  Last updated -

                View all related MCP servers

                MCP directory API

                We provide all the information about MCP servers via our MCP API.

                curl -X GET 'https://glama.ai/api/mcp/v1/servers/roychri/mcp-server-asana'

                If you have feedback or need assistance with the MCP directory API, please join our Discord server