mcpField
A
asana

asana

本地服务
github.com/wwwaldo生产力183 周前更新

关于 asana

面向使用 Asana 管理项目的用户和团队,提供任务与项目管理的 MCP 服务。可创建、查看、更新和删除任务及项目。

主要功能

  1. 01创建和管理任务
  2. 02按项目列出任务
  3. 03创建和管理项目
  4. 04按工作区列出项目

适用场景

  1. 01创建并分配项目任务
  2. 02更新截止日期或完成状态
  3. 03查看项目中的任务
  4. 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 集成使用环境变量进行配置。

设置环境
  1. 复制环境示例文件以创建自己的文件:
cp .env.example .env
  1. 编辑 .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,必填):要更新的任务 ID
  • name(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 响应的错误处理能力有限
  • 列出任务或项目时不支持分页

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。