关于 asana
面向使用 Asana 管理项目的用户和团队,提供任务与项目管理的 MCP 服务。可创建、查看、更新和删除任务及项目。
主要功能
- 01创建和管理任务
- 02按项目列出任务
- 03创建和管理项目
- 04按工作区列出项目
适用场景
- 01创建并分配项目任务
- 02更新截止日期或完成状态
- 03查看项目中的任务
- 04创建或删除工作区项目
MCP 相关
通过 stdio 向 MCP 客户端提供 Asana 任务和项目管理工具,支持创建、查看、更新和删除任务及项目。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Asana 集成服务
这是一个 MCP(Model Context Protocol)服务,提供用于管理 Asana 任务和项目的工具。该服务提供用于创建、更新、列出和删除 Asana 任务与项目的工具。
功能
-
任务管理
- 创建 Asana 任务,并设置名称、描述、截止日期、受派人和项目
- 列出项目中的任务
- 更新现有 Asana 任务(名称、描述、截止日期、受派人、完成状态)
- 删除 Asana 任务
-
项目管理
- 创建 Asana 项目,并设置名称、备注、颜色和可见性
- 列出工作区中的所有项目
- 删除 Asana 项目
前提条件
- Node.js(v14 或更高版本)
- 拥有 API 访问权限的 Asana 账号
- Asana Personal Access Token
安装
# Clone the repository
git clone <repository-url>
cd mcp-asana
# Install dependencies
npm install
配置
MCP Asana 集成使用环境变量进行配置。
设置环境
- 复制环境示例文件以创建自己的文件:
cp .env.example .env
- 编辑
.env文件,填写 Asana 凭据和偏好设置:
# Required: Your Asana Personal Access Token
ASANA_ACCESS_TOKEN=your_asana_personal_access_token
# Required for task operations: Default Project ID for tasks
ASANA_PROJECT_ID=1234567890
# Required for project operations: Default Workspace ID for projects
ASANA_WORKSPACE_ID=0987654321
重要:要完整使用所有功能,必须同时设置
ASANA_PROJECT_ID和ASANA_WORKSPACE_ID。如果未设置项目 ID,任务操作可能会失败。如果未设置工作区 ID,项目操作可能会失败。
查找 Asana ID
仓库中提供了用于查找 Asana ID 的辅助脚本:
# List all workspaces
node listWorkspaces.js
# List all projects
node listAllProjects.js
请务必将这些脚本输出的 ID 复制到 .env 文件中。
使用方法
构建项目
npm run build
运行服务
该服务目前支持 stdio 传输:
npm start
开发模式
启用自动重新加载进行开发:
npm run dev
使用简单客户端
项目附带了一个简单的命令行客户端,可用于与服务交互:
# Create a new task
./simple-client.sh create-task "Task Name" "Task Description" "2025-04-01" "" "1209708771942231"
# List tasks in a project
./simple-client.sh list-tasks
# Update a task
./simple-client.sh update-task "1234567890" "Updated Task Name" "Updated Description" "2025-05-01" "" "true"
# Delete a task
./simple-client.sh delete-task "1234567890"
# Create a new project
./simple-client.sh create-project "Project Name" "Project Notes" "light-green" "true"
# List all projects
./simple-client.sh list-projects
# Delete a project
./simple-client.sh delete-project "1234567890"
API
任务管理工具
create-task
创建新的 Asana 任务。
参数:
name(string,必填):任务名称description(string,可选):任务描述dueDate(string,可选):任务截止日期(ISO 格式)assignee(string,可选):任务受派人project(string,可选):要将任务添加到的项目 ID
list-tasks
列出项目中的任务。
参数:
projectId(string,可选):要列出任务的项目 ID(未指定时使用默认项目)
update-task
更新现有 Asana 任务。
参数:
taskId(string,必填):要更新的任务 IDname(string,可选):任务的新名称description(string,可选):任务的新描述dueDate(string,可选):任务的新截止日期(ISO 格式)assignee(string,可选):任务的新受派人completed(boolean,可选):任务是否已完成
delete-task
删除 Asana 任务。
参数:
taskId(string,必填):要删除的任务 ID
项目管理工具
create-project
创建新的 Asana 项目。
参数:
name(string,必填):项目名称notes(string,可选):项目备注color(string,可选):项目颜色(例如,“light-green”、“dark-blue”)isPublic(boolean,可选):项目是否对团队公开
list-projects
列出工作区中的所有项目。
参数:
workspaceId(string,可选):要列出项目的工作区 ID(未指定时使用默认工作区)
delete-project
删除 Asana 项目。
参数:
projectId(string,必填):要删除的项目 ID
与 MCP 集成
要将此服务集成到 MCP 中,请在 MCP 配置中添加以下内容:
{
"asana": {
"command": "node",
"args": [
"/path/to/mcp-asana/dist/server.js"
]
}
}
项目结构
mcp-asana/
├── asana/ # Asana API integration
│ ├── config.js # Configuration and shared utilities
│ ├── index.js # Main entry point for the Asana API
│ ├── index.d.ts # TypeScript declarations
│ ├── projects.js # Project management functions
│ └── tasks.js # Task management functions
├── src/
│ ├── server.ts # MCP server implementation
│ └── simple-client.ts # Command-line client
├── dist/ # Compiled JavaScript files
├── simple-client.sh # Shell script for the command-line client
├── listWorkspaces.js # Utility to list all workspaces
├── listAllProjects.js # Utility to list all projects
├── .env.example # Example environment file
└── package.json # Project dependencies
已知限制
- 目前不支持 HTTP/SSE 传输
- API 响应的错误处理能力有限
- 列出任务或项目时不支持分页
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。