使用说明
点击MCP服务器
模型上下文协议(MCP)服务器,提供与ClickUp API的集成,允许客户端通过标准化的MCP工具与ClickUp任务和列表进行交互。
概述
此服务器实现了MCP协议,将ClickUp功能作为MCP兼容客户端可以调用的工具公开。它支持在ClickUp列表中检索、创建、更新和获取任务的详细信息。
起源
这种MCP服务器实现源于将KiloCode与ClickUp连接的需要,实现了AI驱动的代码助手与ClickUp的任务管理平台之间的无缝集成。
特性
- 任务管理:获取、创建和更新ClickUp任务
- 列表集成:使用特定的ClickUp列表
- 符合MCP标准:使用官方SDK实现完整的MCP协议
- TypeScript:用TypeScript编写用于类型安全
安装
- 克隆或下载此存储库
- 安装依赖项:
npm install - 构建项目:
npm run build
配置
环境变量
在运行服务器之前设置以下环境变量:
CLICKUP_ACCESS_TOKEN:您的ClickUp API访问令牌。您可以通过“应用程序”>“API令牌”下的ClickUp帐户设置生成此内容。
例子:
export CLICKUP_ACCESS_TOKEN=your_clickup_token_here
用法
运行服务器
构建后,运行服务器:
node build/index.js
服务器通过stdio(标准输入/输出)进行通信,使其适合与MCP客户端集成。
客户端集成
MCP客户端连接到此服务器,可以调用可用的工具。服务器使用JSON-RPC 2.0协议进行通信。
客户端配置
要将MCP客户端连接到此服务器,请使用服务器的命令和环境变量配置客户端。
例如,在Claude Desktop中,将以下内容添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"clickup": {
"command": "node",
"args": ["path/to/clickup-mcp-server/build/index.js"],
"env": {
"CLICKUP_ACCESS_TOKEN": "your_clickup_token_here"
}
}
}
}
替换 path/to/clickup-mcp-server 带有此项目目录的实际路径。
工具: get_tasks
从ClickUp列表中检索任务列表。
参数:
list_id(字符串,必填):点击列表IDlimit(number,可选):要检索的任务数(最大100,默认50)
请求示例:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_tasks",
"arguments": {
"list_id": "987654321",
"limit": 25
}
}
}
示例响应:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "[{\"id\": \"abc123\", \"name\": \"Sample Task\", \"status\": \"open\", \"assignees\": [], \"due_date\": null}, ...]"
}
]
}
}
工具: create_task
在ClickUp列表中创建新任务。
参数:
list_id(字符串,必填):点击列表IDname(字符串,必填):任务名称description(字符串,可选):任务描述assignees(数字数组,可选):受让人用户ID数组due_date(字符串,可选):到期日期为Unix时间戳,单位为毫秒
请求示例:
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "create_task",
"arguments": {
"list_id": "987654321",
"name": "New Task",
"description": "Task description",
"due_date": "1640995200000"
}
}
}
工具: update_task
更新现有的ClickUp任务。
参数:
task_id(字符串,必填):ClickUp任务IDname(字符串,可选):新任务名称description(字符串,可选):新任务描述status(字符串,可选):新状态assignees(数字数组,可选):新的受让人用户ID数组due_date(字符串,可选):新的到期日期为Unix时间戳,单位为毫秒
请求示例:
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "update_task",
"arguments": {
"task_id": "abc123",
"status": "in progress"
}
}
}
工具: get_task
检索特定ClickUp任务的详细信息。
参数:
task_id(字符串,必填):ClickUp任务ID
请求示例:
{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "get_task",
"arguments": {
"task_id": "abc123"
}
}
}
查找ClickUp ID
- 列表ID:在ClickUp中,导航到您的列表。URL将类似于
https://app.clickup.com/1234567/v/li/987654321.后面的数字/li/是列表ID。 - 任务ID:任务URL包含任务ID,也可以从API响应中获取任务ID。
- 组成员的用户号:使用ClickUp的API或界面查找受让人的用户ID。
错误处理
如果API调用失败,响应将包括 isError: true 带有错误消息的字段:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [
{
"type": "text",
"text": "ClickUp API error: Invalid list ID"
}
],
"isError": true
}
}
测试
提供了一个测试脚本来验证MCP服务器是否正常工作。
-
设置您的ClickUp访问令牌:
export CLICKUP_ACCESS_TOKEN=your_clickup_token_here -
使用有效的列表ID运行测试:
node test-mcp.js <list_id>替换
<list_id>具有有效的ClickUp列表ID(例如。,901110500007).
测试将:
- 验证服务器是否正确初始化
- 检查所有工具是否可用
- 测试
get_tasks具有提供的列表ID的工具
要对其他工具进行更全面的测试,您可以修改 test-mcp.js 包括致电 create_task, update_task,以及 get_task请注意 create_task 将在ClickUp中创建实际任务,因此请谨慎使用。
发展
在TypeScript的开发模式下运行:
npm run dev
依赖项
@modelcontextprotocol/sdk:MCP协议实施axios:用于ClickUp API的HTTP客户端zod:架构验证typescript:TypeScript编译器
许可证
这个项目是开源的。请检查许可证文件以了解详细信息。
