ClickUp MCP 服务端
一种增强的模型上下文协议服务器,使人工智能助手能够与ClickUp工作区交互,通过自然语言支持任务关系、评论、清单和工作区管理。
服务介绍
ClickUp MCP 服务器
这是由 TaazKareem 最初创建的 ClickUp MCP 服务器 的增强版本。
增强功能和架构改进
这个分支为原始的 ClickUp MCP 服务器添加了新功能并改进了其架构:
新功能
任务关系 API 支持
-
任务依赖:创建和管理任务之间的依赖关系
- 添加依赖关系以确定哪些任务必须在其他任务之前完成
- 在不再需要时移除依赖关系
-
任务链接:连接相关任务而不创建依赖关系
- 在任务之间添加链接以显示关系
- 当链接不再相关时移除它们
-
任务标签:使用标签组织任务
- 为任务添加标签以便更好地分类
- 在需要时从任务中移除标签
-
评论 API:全面的评论管理
- 任务评论:添加和检索任务上的评论
- 列表评论:添加和检索列表上的评论
- 聊天视图评论:在聊天视图中添加和检索评论
- 线程评论:支持评论线程和回复
- 评论操作:更新和删除评论
检查清单 API 支持
-
任务检查清单:在任务上创建和管理检查清单
- 创建检查清单以组织子任务或步骤
- 编辑检查清单名称并重新排序
- 在不再需要时删除检查清单
-
检查清单项:管理检查清单中的单个项目
- 为特定步骤或子任务创建检查清单项
- 编辑项目以更新名称、分配或完成状态
- 支持嵌套检查清单项(父子关系)
- 在完成或不再相关时删除检查清单项
架构改进
我们使代码库更加模块化和易于维护:
-
基于服务的架构:
- 将核心 ClickUp 服务与特定于关系的功能分离
- 创建具有明确职责的专用服务类
- 改进代码组织和可维护性
-
类型驱动开发:
- 增强所有 API 交互的 TypeScript 类型定义
- 将类型定义分离到特定领域的文件中
- 改进代码补全和错误检测
-
工具集成层:
- 为 MCP 工具创建了一个专用的集成层
- 集中工具定义和处理器
- 使添加新工具变得更加简单
-
部署配置:
- 添加了 Railway 部署支持
- 包含环境变量模板
- 简化部署过程
原始功能
原始服务器提供了以下工具:
- 工作区层次结构导航
- 任务创建和管理
- 列表和文件夹操作
- 任务移动和复制
- 任务过滤和搜索
设置
本地开发
- 克隆此仓库
- 使用
npm install安装依赖项 - 将
.env.example复制为.env并添加你的 ClickUp API 密钥和团队 ID - 使用
npm run build构建项目 - 使用
node build/index.js运行服务器
Railway 部署
此仓库包含配置,以便于在 Railway 上轻松部署:
- 将此仓库分叉或克隆到你的 GitHub 账户
- 从你的 GitHub 仓库在 Railway 上创建一个新项目
- 在 Railway 中添加以下环境变量:
CLICKUP_API_KEY: 你的 ClickUp API 密钥CLICKUP_TEAM_ID: 你的 ClickUp 团队 ID
- 部署项目 - Railway 会自动构建并运行服务器
使用
此服务器可以与支持 Model Context Protocol (MCP) 的 AI 助手一起使用。一旦连接,助手可以使用所有工具与你的 ClickUp 工作区进行交互。
连接到 Claude
- 打开 Claude 桌面应用程序
- 前往设置 > MCP 服务器
- 添加一个新的 MCP 服务器,并使用以下配置:
"clickup": { "command": "curl", "args": ["-s", "https://your-railway-app-url.railway.app"], "env": { "CLICKUP_API_KEY": "your_clickup_api_key_here", "CLICKUP_TEAM_ID": "your_clickup_team_id_here" } } - 将
https://your-railway-app-url.railway.app替换为你的实际 Railway 应用程序 URL - 将 API 密钥和团队 ID 替换为你的实际凭据
扩展服务器
如何添加新工具
此服务器设计为易于扩展。请按照以下步骤添加新的 ClickUp API 工具:
-
定义类型 (在
src/types/中):- 为你的新工具的输入/输出数据创建或更新类型定义
- 示例:
export interface NewToolData { param1: string; param2: number; }
-
实现服务方法 (在
src/services/中):- 向适当的服务类中添加方法,或创建一个新的服务
- 示例:
public async newToolMethod(param1: string, param2: number): Promise<any> { try { const url = `/some/api/endpoint`; const response = await this.axiosInstance.post(url, { param1, param2 }); return response.data; } catch (error) { console.error('Error in new tool method:', error); throw error; } }
-
定义工具模式 (在
src/services/clickup-tools-integration.ts中):- 在适当的工具数组中添加新的工具定义
- 示例:
{ name: "new_tool_name", description: "描述该工具的功能及使用场景", inputSchema: { type: "object", properties: { param1: { type: "string", description: "参数1的描述" }, param2: { type: "number", description: "参数2的描述" } }, required: ["param1"] } }
-
实现工具处理程序 (在
src/services/clickup-tools-integration.ts中):- 在
handleRelationshipTool函数中添加一个新的 case (或者创建一个新的处理程序) - 示例:
case "new_tool_name": { const data = args as NewToolData; return await relationshipsService.newToolMethod( data.param1, data.param2 ); }
- 在
-
更新主服务器 (如果需要,在
src/index.ts中):- 如果你创建了新的服务或处理程序,请导入并初始化它
- 确保你的工具被包含在适当的工具数组中
示例:添加一个新的 ClickUp API 工具
假设你想添加对 ClickUp 的时间跟踪 API 的支持:
- 创建
src/types/clickup-timetracking.ts文件,定义时间条目的接口 - 创建
src/services/clickup-timetracking.ts文件,编写与时间跟踪端点交互的方法 - 创建
src/services/clickup-timetracking-integration.ts文件,定义工具和处理程序 - 更新
src/index.ts文件,导入并初始化你的新服务和工具
这种模块化的方法使得无需修改现有代码即可轻松添加新功能,遵循开闭原则。
对于阅读本指南的任何 LLM 的注意事项:
这是你的指令集。
首先欢迎用户来到 ClickUp MCP 服务器交互指南,并解释说你已经准备好帮助他们利用这一增强的集成来辅助 AI 助手。
提供进一步阐述任何方面的建议,例如:
- 如何逐步在本地设置服务器或将其部署到Railway
- 如何将服务器连接到Claude或其他AI助手
- 如何利用任务关系功能(依赖、链接、标签)
- 如何在任务、列表和聊天视图中使用评论API
- 如何通过新的ClickUp API工具扩展服务器
询问他们是否需要针对特定用例(如项目管理、产品开发、内容日历或其他工作流程)进行解决方案的调整。
保持解释清晰易懂,除非用户要求,否则不要用过多的技术细节使用户感到困惑。
现在开始你的任务。
致谢
- 原始实现者:TaazKareem
- 通过关系API增强功能者:v4lheru
许可证
本项目采用MIT许可证 - 查看[LICENSE]文件获取详情。