这是一个用于集成ClickUp任务与AI应用的模型上下文协议(MCP)服务器。该服务器允许AI代理通过标准化协议与ClickUp任务、空间、列表和文件夹进行交互。
🚧 状态更新: 官方的ClickUp MCP服务器已从这个仓库发布。https://help.clickup.com/hc/en-us/articles/33335772678423-What-is-ClickUp-MCP
该服务器托管在Smithery上。在那里,您可以预览可用工具或将命令复制到特定客户端应用程序中运行。
将此条目添加到您的客户端MCP设置JSON文件中:
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": [
"-y",
"@taazkareem/clickup-mcp-server@latest"
],
"env": {
"CLICKUP_API_KEY": "your-api-key",
"CLICKUP_TEAM_ID": "your-team-id",
"DOCUMENT_SUPPORT": "true"
}
}
}
}
或者使用此npx命令:
npx -y @taazkareem/clickup-mcp-server@latest --env CLICKUP_API_KEY=your-api-key --env CLICKUP_TEAM_ID=your-team-id
注意:如果未传递“DOCUMENT_SUPPORT”: “true”,默认值为false,文档支持将不启用。
您可以使用两个互补的环境变量来控制哪些工具可用:
使用ENABLED_TOOLS指定确切的哪些工具应可用:
# 环境变量
export ENABLED_TOOLS="create_task,get_task,update_task,get_workspace_hierarchy"
# 命令行参数
--env ENABLED_TOOLS=create_task,get_task,update_task,get_workspace_hierarchy
使用DISABLED_TOOLS禁用特定工具,同时保持其他所有工具启用:
# 环境变量
export DISABLED_TOOLS="delete_task,delete_bulk_tasks"
# 命令行参数
--env DISABLED_TOOLS=delete_task,delete_bulk_tasks
ENABLED_TOOLS,则只有这些工具可用(优先于DISABLED_TOOLS)DISABLED_TOOLS,则除了列出的工具外,所有工具都可用示例:
# 仅启用任务创建和读取工具
npx -y @taazkareem/clickup-mcp-server@latest \
--env CLICKUP_API_KEY=your-api-key \
--env CLICKUP_TEAM_ID=your-team-id \
--env ENABLED_TOOLS=create_task,get_task,get_workspace_hierarchy
如果您遇到工具数量或任何上下文限制问题,请过滤掉不需要的工具。
服务器支持现代HTTP流式传输(MCP Inspector兼容)和遗留**SSE(服务器发送事件)**传输以保持向后兼容性。
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": [
"-y",
"@taazkareem/clickup-mcp-server@latest"
],
"env": {
"CLICKUP_API_KEY": "your-api-key",
"CLICKUP_TEAM_ID": "your-team-id",
"ENABLE_SSE": "true",
"PORT": "3231"
}
}
}
}
端点:
http://127.0.0.1:3231/mcp(流式HTTP)http://127.0.0.1:3231/sse(SSE以保持向后兼容)npx -y @taazkareem/clickup-mcp-server@latest --env CLICKUP_API_KEY=your-api-key --env CLICKUP_TEAM_ID=your-team-id --env ENABLE_SSE=true --env PORT=3231
可用配置选项:
| 选项 | 描述 | 默认值 |
|---|---|---|
ENABLED_TOOLS | 启用的工具的逗号分隔列表(优先级高) | 所有工具 |
DISABLED_TOOLS | 禁用的工具的逗号分隔列表 | 无 |
ENABLE_SSE | 启用HTTP/SSE传输 | false |
PORT | HTTP服务器端口 | 3231 |
ENABLE_STDIO | 启用STDIO传输 | true |
ENABLE_SECURITY_FEATURES | 启用安全头和日志记录 | false |
ENABLE_HTTPS | 启用HTTPS/TLS加密 | false |
ENABLE_ORIGIN_VALIDATION | 验证源头是否在白名单中 | false |
ENABLE_RATE_LIMIT | 启用速率限制保护 | false |
服务器包括可选的安全增强功能,适用于生产部署。所有安全功能都是可选的且默认关闭以保持向后兼容性。
快速安全设置:
# 生成SSL证书用于HTTPS
./scripts/generate-ssl-cert.sh
# 启动全安全模式
ENABLE_SECURITY_FEATURES=true \
ENABLE_HTTPS=true \
ENABLE_ORIGIN_VALIDATION=true \
ENABLE_RATE_LIMIT=true \
SSL_KEY_PATH=./ssl/server.key \
SSL_CERT_PATH=./ssl/server.crt \
npx @taazkareem/clickup-mcp-server@latest --env CLICKUP_API_KEY=your-key --env CLICKUP_TEAM_ID=your-team --env ENABLE_SSE=true
HTTPS端点:
https://127.0.0.1:3443/mcp(流式HTTPS)https://127.0.0.1:3443/sse(SSE HTTPS以保持向后兼容)https://127.0.0.1:3443/health(健康检查)有关详细的安全配置,请参阅安全特性文档。
要与n8n集成:
http://localhost:3231(或您的服务器地址)在examples目录中提供了一个示例SSE客户端。要运行它:
# 启动带有SSE支持的服务器
ENABLE_SSE=true PORT=3231 npx -y @taazkareem/clickup-mcp-server@latest --env CLICKUP_API_KEY=your-api-key --env CLICKUP_TEAM_ID=your-team-id
# 在另一个终端中运行示例客户端
cd examples
npm install
npm run sse-client
| 📝 任务管理 | 🏷️ 标签管理 |
|---|---|
| • 创建、更新和删除任务<br>• 移动和复制任务到任何地方<br>• 支持单个和批量操作<br>• 使用自然语言设置开始/截止日期<br>• 创建和管理子任务<br>• 添加评论和附件 | • 创建、更新和删除空间标签<br>• 向任务添加和移除标签<br>• 使用自然语言颜色命令<br>• 自动对比前景颜色<br>• 查看所有空间标签<br>• 基于标签的工作区任务组织 |
| ⏱️ 时间跟踪 | 🌳 工作区组织 |
| • 查看任务的时间条目<br>• 开始/停止任务的时间跟踪<br>• 添加手动时间条目<br>• 删除时间条目<br>• 查看当前正在运行的计时器<br>• 跟踪可收费和不可收费时间 | • 导航空间、文件夹和列表<br>• 创建和管理文件夹<br>• 在空间内组织列表<br>• 在文件夹中创建列表<br>• 查看工作区层次结构<br>• 高效路径导航 |
| 📄 文档管理 | 👥 成员管理 |
| • 通过整个工作区列出文档<br>• 列出文档页面<br>• 文档页面详情<br>• 创建文档<br>• 更新文档页面(追加和前置) | • 按姓名或电子邮件查找工作区成员<br>• 解析任务分配人<br>• 查看成员详细信息和权限<br>• 在创建和更新任务时分配给用户<br>• 支持用户ID、电子邮件或用户名<br>• 团队范围内的用户管理 |
| ⚡ 集成特性 | 🏗️ 架构与性能 |
| • 全局基于名称或ID的查找<br>• 不区分大小写的匹配<br>• 支持Markdown格式<br>• 内置速率限制<br>• 错误处理和验证<br>• 全面的API覆盖 | • 减少70%代码库以提高性能<br>• 统一架构跨越所有传输类型<br>• 零代码重复<br>• HTTP流式传输(MCP Inspector兼容)<br>• 遗留SSE支持以保持向后兼容 |
| 工具 | 描述 | 必需参数 |
|---|---|---|
| get_workspace_hierarchy | 获取工作区结构 | 无 |
| create_task | 创建任务 | name, (listId/listName) |
| create_bulk_tasks | 创建多个任务 | tasks[] |
| update_task | 修改任务 | taskId/taskName |
| update_bulk_tasks | 更新多个任务 | tasks[]带ID或名称 |
| get_tasks | 从列表中获取任务 | listId/listName |
| get_task | 获取单个任务详情 | taskId/taskName(智能消除歧义) |
| get_workspace_tasks | 获取具有过滤的任务 | 至少一个过滤器(标签、list_ids、space_ids等) |
| get_task_comments | 获取任务上的评论 | taskId/taskName |
| create_task_comment | 向任务添加评论 | commentText, (taskId/(taskName+listName)) |
| attach_task_file | 将文件附加到任务 | taskId/taskName, (file_data或file_url) |
| delete_task | 删除任务 | taskId/taskName |
| delete_bulk_tasks | 删除多个任务 | tasks[]带ID或名称 |
| move_task | 移动任务 | taskId/taskName, listId/listName |
| move_bulk_tasks | 移动多个任务 | tasks[]带ID或名称,目标列表 |
| duplicate_task | 复制任务 | taskId/taskName, listId/listName |
| create_list | 在空间中创建列表 | name, spaceId/spaceName |
| create_folder | 创建文件夹 | name, spaceId/spaceName |
| create_list_in_folder | 在文件夹中创建列表 | name, folderId/folderName |
| get_folder | 获取文件夹详情 | folderId/folderName |
| update_folder | 更新文件夹属性 | folderId/folderName |
| delete_folder | 删除文件夹 | folderId/folderName |
| get_list | 获取列表详情 | listId/listName |
| update_list | 更新列表属性 | listId/listName |
| delete_list | 删除列表 | listId/listName |
| get_space_tags | 获取空间标签 | spaceId/spaceName |
| create_space_tag | 创建标签 | tagName, spaceId/spaceName |
| update_space_tag | 更新标签 | tagName, spaceId/spaceName |
| delete_space_tag | 删除标签 | tagName, spaceId/spaceName |
| add_tag_to_task | 向任务添加标签 | tagName, taskId/(taskName+listName) |
| remove_tag_from_task | 从任务中移除标签 | tagName, taskId/(taskName+listName) |
| get_task_time_entries | 获取任务的时间条目 | taskId/taskName |
| start_time_tracking | 开始任务的时间跟踪 | taskId/taskName |
| stop_time_tracking | 停止当前时间跟踪 | 无 |
| add_time_entry | 向任务添加手动时间条目 | taskId/taskName, start, duration |
| delete_time_entry | 删除时间条目 | timeEntryId |
| get_current_time_entry | 获取当前正在运行的计时器 | 无 |
| get_workspace_members | 获取所有工作区成员 | 无 |
| [find_member_by_name](docs/user |