内容
# ClickUp MCP 服务器(amazing-clickup-mcp)
一个全面的 [模型上下文协议](https://modelcontextprotocol.io) 服务器,用于 ClickUp 公共 API(v2 + v3),基于官方 [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) (FastMCP,stdio 传输)构建。它暴露了 **166 种工具**,涵盖了几乎整个 ClickUp 界面 — 空间、文件夹、列表、视图、文档、任务、评论、检查清单、标签、自定义字段、时间跟踪、目标、成员、访客、Webhook、聊天等 — 因此 LLM 可以代表您读取和驱动 ClickUp 工作区。
> PyPI 发行版和控制台脚本均为 **`amazing-clickup-mcp`** (bare `clickup-mcp` 名称被 PyPI 上一个无关的包占用)。始终运行 `uvx amazing-clickup-mcp` — 永远不要运行 `uvx clickup-mcp`。
## 功能
- **完整的 API 覆盖(166 种工具)**。v2 和 v3 端点,涵盖 22 个资源组 — 空间、文件夹、列表、视图、文档、任务、评论、检查清单、标签、自定义字段、时间跟踪 2.0、关系、附件、目标、成员和用户组、访客、用户、Webhook、工作区管理员、聊天频道、聊天消息和健康检查。
- **通过有效载荷管理状态**。ClickUp 没有专门的状态端点;使用 `statuses`/`override_statuses` 有效载荷创建和更新空间/文件夹/列表对象。
- **原位创建文档(v3)**。在文档的最终空间/文件夹/列表/所有位置直接创建文档 — 无需稍后拖动。
- **双格式响应**。适用于人类和 LLM 的 Markdown(默认)或适用于程序化使用的 JSON,可通过 `response_format` 按调用选择。
- **严格的输入验证**。每个工具使用一个 pydantic v2 模型(`extra="forbid"`,字段级约束),因此格式错误的调用会快速失败并显示清晰的消息。
- **统一错误映射**。400/401/403/404/429、超时和连接错误被规范化为可读字符串,显示 ClickUp `err`/`ECODE` 详细信息和速率限制指导。
- **仅 stdio 传输**。没有 HTTP/SSE 和没有日志输出到 stdout — 标准输入/输出通道是 MCP 协议通道。
## 可用工具
所有 166 种工具,按资源分组。读取工具返回 Markdown(默认)或 JSON;变异工具返回人类可读的确认。
| 工具 | 描述 |
|---|---|
| **空间** | |
| `clickup_create_space` | 在工作区内创建一个新的空间。 |
| `clickup_get_spaces` | 列出工作区中的空间。 |
| `clickup_get_space` | 获取单个空间的完整详细信息,包括其状态工作流和 ClickApp 切换。 |
| `clickup_update_space` | 重命名空间,改变其颜色/隐私或替换其 ClickApp/状态配置。 |
| `clickup_delete_space` | 永久删除空间和其中的所有内容。 |
| **文件夹** | |
| `clickup_create_folder` | 在空间内创建一个文件夹。 |
| `clickup_get_folders` | 列出空间中的文件夹。 |
| `clickup_get_folder` | 获取一个文件夹,包括其列表和状态工作流。 |
| `clickup_update_folder` | 重命名文件夹和/或切换其状态覆盖设置。 |
| `clickup_delete_folder` | 永久删除文件夹和其中的所有列表/任务。 |
| `clickup_create_folder_from_template` | 通过重放文件夹模板创建一个新的文件夹。 |
| `clickup_get_folder_templates` | 列出工作区中可用的文件夹模板。 |
| **列表** | |
| `clickup_create_list` | 在文件夹内创建一个新的列表。 |
| `clickup_create_folderless_list` | 直接在空间内创建一个新的列表,没有父文件夹。 |
| `clickup_get_lists` | 列出属于文件夹的列表。 |
| `clickup_get_folderless_lists` | 列出直接位于空间内的列表(无文件夹)。 |
| `clickup_get_list` | 获取单个列表的完整详细信息,ID。 |
| `clickup_update_list` | 更新列表的名称、描述、日期、优先级、分配者或颜色。 |
| `clickup_delete_list` | 从工作区永久删除列表。 |
| `clickup_add_task_to_list` | 将现有任务的成员资格添加到其他列表中。 |
| `clickup_remove_task_from_list` | 从其他(非首页)列表中删除任务的成员资格。 |
| `clickup_create_list_from_template_in_folder` | 通过实例化列表模板在文件夹内创建一个新的列表。 |
| `clickup_create_list_from_template_in_space` | 通过实例化模板在空间内创建一个新的无文件夹列表。 |
| `clickup_get_list_templates` | 列出工作区中可用的列表模板。 |
| **视图** | |
| `clickup_create_team_view` | 在工作区的 Everything 级别创建一个任务或页面视图。 |
| `clickup_create_space_view` | 创建一个作用于空间的任务或页面视图。 |
| `clickup_create_folder_view` | 创建一个作用于文件夹的任务或页面视图。 |
| `clickup_create_list_view` | 创建一个作用于列表的任务或页面视图。 |
| `clickup_get_team_views` | 列出在工作区的 Everything 级别定义的任务和页面视图。 |
| `clickup_get_space_views` | 列出空间可用的任务和页面视图。 |
| `clickup_get_folder_views` | 列出文件夹可用的任务和页面视图。 |
| `clickup_get_list_views` | 列出列表可用的任务和页面视图。 |
| `clickup_get_view` | 获取单个任务或页面视图的完整配置。 |
| `clickup_get_view_tasks` | 列出当前在视图中可见的任务,遵守其过滤器和排序。 |
| `clickup_update_view` | 重命名视图和/或替换其分组/排序/过滤器/列/设置。 |
| `clickup_delete_view` | 永久删除任务或页面视图。 |
| **文档** | |
| `clickup_search_docs` | 搜索工作区中的文档,可选过滤父位置。 |
| `clickup_create_doc` | 创建文档,可选直接放在其最终位置。 |
| `clickup_get_doc` | 获取单个文档的元数据(名称、父级、时间戳)。 |
| `clickup_get_doc_page_listing` | 列出文档的页面树(仅标题和 ID,嵌套 — 无内容)。 |
| `clickup_get_doc_pages` | 获取文档的页面及其内容(文档的可读全文)。 |
| `clickup_create_page` | 向现有文档添加页面(可选地嵌套在另一个页面下)。 |
| `clickup_get_page` | 获取文档的单个页面,包括其内容。 |
| `clickup_edit_page` | 更新文档页面的标题、副标题和/或内容。 |
| **任务** | |
| `clickup_create_task` | 在列表中创建一个任务。 |
| `clickup_get_task` | 获取单个任务,ID。 |
| `clickup_get_tasks` | 列出列表中的任务,带有过滤器和排序。 |
| `clickup_update_task` | 更新现有任务的字段。 |
| `clickup_delete_task` | 永久删除任务。 |
| `clickup_get_filtered_team_tasks` | 使用丰富的过滤器搜索整个工作区的任务。 |
| `clickup_move_task` | 将任务移动到新的首页列表。 |
| `clickup_merge_tasks` | 将一个或多个源任务合并到目标任务中。 |
| `clickup_create_task_from_template` | 从保存的任务模板在列表中创建任务。 |
| `clickup_get_task_templates` | 列出工作区的保存的任务模板。 |
| `clickup_get_task_time_in_status` | 报告任务在每个状态下花费的时间。 |
| `clickup_get_bulk_tasks_time_in_status` | 报告 2 到 100 个任务的状态时间。 |
| **评论** | |
| `clickup_create_task_comment` | 向任务添加评论。 |
| `clickup_get_task_comments` | 列出任务上的评论,最新的在前。 |
| `clickup_create_list_comment` | 向列表的信息面板添加评论。 |
| `clickup_get_list_comments` | 列出列表信息面板上的评论,最新的在前。 |
| `clickup_create_chat_view_comment` | 在聊天视图中发布评论。 |
| `clickup_get_chat_view_comments` | 列出聊天视图中的评论,最新的在前。 |
| `clickup_update_comment` | 编辑评论的文本,(重新)分配它或切换其已解决状态。 |
| `clickup_delete_comment` | 永久删除评论。 |
| `clickup_create_threaded_comment` | 在现有评论的线程中回复。 |
| `clickup_get_threaded_comments` | 列出评论线程中的回复。 |
| **检查清单** | |
| `clickup_create_checklist` | 向任务添加新的(空)检查清单。 |
| `clickup_edit_checklist` | 重命名检查清单和/或在任务的其他检查清单中重新定位它。 |
| `clickup_delete_checklist` | 从任务中永久删除检查清单(及其所有项目)。 |
| `clickup_create_checklist_item` | 向现有检查清单添加新的行项目。 |
| `clickup_edit_checklist_item` | 重命名,(未)解决,重新分配或嵌套/取消嵌套检查清单项目。 |
| `clickup_delete_checklist_item` | 从检查清单中删除单个行项目(检查清单本身保留)。 |
| **标签** | |
| `clickup_get_space_tags` | 列出空间中定义的每个任务标签,及其前景/背景颜色。 |
| `clickup_create_space_tag` | 向空间的标签调色板添加新的任务标签(可选颜色)。 |
| `clickup_edit_space_tag` | 重命名和/或重新着色现有的空间标签。 |
| `clickup_delete_space_tag` | 从空间的调色板中删除标签(以及每个带有它的任务)。 |
| `clickup_add_tag_to_task` | 将现有的空间标签应用于任务。 |
| `clickup_remove_tag_from_task` | 从任务中删除标签,而不从空间中删除标签。 |
| **自定义字段** | |
| `clickup_get_list_custom_fields` | 列出从列表可访问的自定义字段。 |
| `clickup_get_folder_custom_fields` | 列出在文件夹范围内可用的自定义字段。 |
| `clickup_get_space_custom_fields` | 列出在空间范围内可用的自定义字段。 |
| `clickup_get_team_custom_fields` | 列出工作区范围的自定义字段。 |
| `clickup_set_custom_field_value` | 在任务上设置自定义字段的值。 |
| `clickup_remove_custom_field_value` | 清除任务上的自定义字段值。 |
| `clickup_get_custom_task_types` | 列出工作区的自定义任务类型(又称自定义项目)。 |
| **时间跟踪** | |
| `clickup_get_time_entries` | 列出工作区中的时间条目,可选按日期范围和位置限定。 |
| `clickup_get_time_entry` | 获取单个时间条目,ID。 |
| `clickup_get_time_entry_history` | 查看对时间条目所做的更改列表。 |
| `clickup_get_running_time_entry` | 获取用户当前运行的时间条目(如果有)。 |
| `clickup_create_time_entry` | 记录已完成(已完成)的时间条目。 |
| `clickup_update_time_entry` | 编辑现有时间条目的描述、标签、时间、任务或计费标志。 |
| `clickup_delete_time_entry` | 永久删除一个或多个时间条目。 |
| `clickup_start_time_entry` | 为认证用户启动新的开放式运行计时器。 |
| `clickup_stop_time_entry` | 停止认证用户的当前运行计时器。 |
| `clickup_get_time_entry_tags` | 列出此工作区中曾经应用于时间条目的每个标签。 |
| `clickup_add_time_entry_tags` | 将一个或多个标签应用于一个或多个时间条目。 |
| `clickup_remove_time_entry_tags` | 从一个或多个时间条目中删除一个或多个标签。 |
| `clickup_rename_time_entry_tag` | 在整个工作区中重命名时间条目标签(并设置其颜色)。 |
| `clickup_replace_time_estimates_by_user` | 覆盖任务的整个按分配者时间估计集。 |
| `clickup_update_time_estimates_by_user` | 设置或调整特定分配者的任务时间估计,同时保持其他不变。 |
| **关系** | |
| `clickup_add_dependency` | 在两个任务之间创建阻塞依赖关系。 |
| `clickup_delete_dependency` | 删除两个任务之间的阻塞依赖关系。 |
| `clickup_add_task_link` | 用非阻塞的“相关联”关联链接两个任务。 |
| `clickup_delete_task_link` | 删除两个任务之间的“相关联”链接。 |
| **附件** | |
| `clickup_create_task_attachment` | 将本地文件上传到任务作为附件(v2)。 |
| `get_entity_attachments` | 列出任务或文件类型自定义字段(v3)的附件。 |
| `create_entity_attachment` | 将本地文件上传到任务或文件类型自定义字段(v3)。 |
| **目标** | |
| `clickup_create_goal` | 在工作区创建一个新的目标。 |
| `clickup_get_goals` | 列出工作区的目标,包括任何目标文件夹。 |
| `clickup_get_goal` | 获取单个目标的完整详细信息,包括其关键结果。 |
| `clickup_update_goal` | 更新现有目标的名称、到期日、描述、所有者或颜色。 |
| `clickup_delete_goal` | 永久删除目标及其所有关键结果。 |
| `clickup_create_key_result` | 向目标添加关键结果(目标)。 |
| `clickup_edit_key_result` | 更新关键结果的进度、备注、名称、所有者或任务/列表链接。 |
| `clickup_delete_key_result` | 永久删除关键结果(目标)从其目标。 |
| **成员和组** | |
| `clickup_get_list_members` | 列出对列表有直接访问权限的工作区成员。 |
| `clickup_get_task_members` | 列出对任务有直接访问权限的工作区成员。 |
| `clickup_create_user_group` | 在工作区创建用户组(ClickUp的端点称为“团队”)。 |
| `clickup_get_user_groups` | 列出工作区的用户组(ClickUp的端点slug:`getteams1)。 |
| `clickup_update_user_group` | 重命名用户组和/或添加/删除其成员。 |
| `clickup_delete_user_group` | 永久删除用户组从工作区。 |
| **访客**(企业) | |
| `clickup_invite_guest_to_workspace` | 通过电子邮件邀请外部访客到工作区。 |
| `clickup_edit_guest_on_workspace` | 更新现有访客的权限标志或自定义角色在工作区。 |
| `clickup_get_guest` | 查找访客的权限标志和已与其共享的内容。 |
| `clickup_remove_guest_from_workspace` | 撤销访客对整个工作区的访问。 |
| `clickup_add_guest_to_task` | 在给定的权限级别将单个任务与现有访客分享。 |
| `clickup_remove_guest_from_task` | 撤销访客对单个任务的访问。 |
| `clickup_add_guest_to_list` | 在给定的权限级别将列表与现有访客分享。 |
| `clickup_remove_guest_from_list` | 撤销访客对列表的访问。 |
| `clickup_add_guest_to_folder` | 在给定的权限级别将文件夹与现有访客分享。 |
| `clickup_remove_guest_from_folder` | 撤销访客对文件夹的访问。 |
| **用户**(企业) |
| `clickup_invite_user_to_workspace` | 通过电子邮件邀请完整成员到工作区。 |
| `clickup_edit_user_on_workspace` | 更新工作区成员的用户名、管理员标志或自定义角色。 |
| `clickup_get_user` | 查找单个工作区成员的个人资料、角色和管理员状态。 |
| `clickup_remove_user_from_workspace` | 停用完整成员对工作区的访问。 |
| **Webhook** | |
| `clickup_create_webhook` | 注册一个将ClickUp事件推送到您的端点的Webhook。 |
| `clickup_get_webhooks` | 列出工作区中注册的Webhook及其交付健康状况。 |
| `clickup_update_webhook` | 更改Webhook的端点、事件订阅或交付状态。 |
| `clickup_delete_webhook` | 永久删除Webhook,停止向其端点交付所有事件。 |
| **工作区** | |
| `clickup_get_workspace_plan` | 报告工作区的当前订阅计划。 |
| `clickup_get_workspace_seats` | 报告工作区中已使用、总共和可用的成员和访客席位。 |
| `clickup_query_audit_logs` | 查询工作区审计轨迹(企业,工作区所有者仅限)。 |
| `clickup_update_privacy_and_access` | 设置对象的隐私并授予/撤销用户或组访问权限(企业)。 |
| **聊天频道** | |
| `clickup_get_chat_channels` | 列出工作区中的聊天频道,并带有描述符筛选器。 |
| `clickup_create_chat_channel` | 按名称在工作区级别创建一个聊天频道。 |
| `clickup_create_location_chat_channel` | 创建一个绑定到工作区、文件夹或列表的聊天频道。 |
| `clickup_create_direct_message` | 创建(或返回)一个直接消息聊天频道,最多可容纳15个用户。 |
| `clickup_get_chat_channel` | 通过ID获取单个聊天频道的元数据。 |
| `clickup_update_chat_channel` | 更新聊天频道的名称、描述、主题、可见性或位置。 |
| `clickup_delete_chat_channel` | 永久删除聊天频道(频道、DM或位置绑定)。 |
| `clickup_get_chat_channel_followers` | 列出关注聊天频道的用户。 |
| `clickup_get_chat_channel_members` | 列出聊天频道的成员。 |
| **聊天消息** | |
| `clickup_get_chat_messages` | 列出聊天频道中的消息(最新的在前),光标分页。 |
| `clickup_get_chat_message_replies` | 列出聊天消息下的回复,光标分页。 |
| `clickup_get_chat_message_reactions` | 列出聊天消息上的表情符号反应,光标分页。 |
| `clickup_get_chat_message_tagged_users` | 列出在聊天消息中被@标记(提及)的用户,光标分页。 |
| `clickup_get_chat_subtypes` | 列出工作区的帖子子类型ID(公告、讨论、想法、更新)。 |
| `clickup_send_chat_message` | 在聊天频道中发布新消息。 |
| `clickup_send_chat_reply` | 在现有聊天消息下发布线程回复。 |
| `clickup_update_chat_message` | 编辑聊天消息的内容、分配者或已解决状态。 |
| `clickup_delete_chat_message` | 永久删除聊天消息(及其回复)。 |
| `clickup_add_chat_reaction` | 向聊天消息添加表情符号反应。 |
| `clickup_delete_chat_reaction` | 从聊天消息中删除表情符号反应。 |
| **健康** | |
| `clickup_health_check` | 验证与ClickUp API的连接性和身份验证。 |
## 前置条件
- **Python 3.13+** (仅在手动克隆项目时需要 — `uvx` 和 Docker 已自带运行时)。
- **[uv](https://docs.astral.sh/uv/)** — 用于零安装的 `uvx` 路径和本地开发。
- **ClickUp API token.** 个人 token(设置 → 应用 → API Token,以 `pk_` 开头)或 OAuth2 访问 token。参见 [身份验证](#身份验证)。
- **(可选)您的 Workspace(团队)ID**,如果您希望工具默认 `team_id` 而无需每次调用都传递。
- **(可选)Docker**,如果您更喜欢使用容器路径。
## 快速开始
```bash
git clone https://github.com/trustxai/clickup-mcp.git
cd clickup-mcp
uv sync --group dev
cp .env.example .env # 然后设置 CLICKUP_API_TOKEN (和可选的 CLICKUP_TEAM_ID)
uv run amazing-clickup-mcp # 启动_stdio_服务器
```
服务器通过_stdio_与 MCP 通信,因此通常由 MCP 客户端启动(参见 [客户端配置](#客户端配置)),而不是手动运行 — 但直接启动是一种快速确认导入和启动的方法。
## 使用 uvx(零安装)运行
无需克隆,无需虚拟环境 — `uvx` 一步完成依赖获取和运行:
```bash
CLICKUP_API_TOKEN=pk_your_token_here uvx amazing-clickup-mcp
```
> 使用 `amazing-clickup-mcp`,不要使用 `clickup-mcp`。 PyPI 上的裸 `clickup-mcp` 名称是一个无关的占位包,**不会** 运行此服务器。
## 客户端配置
每个客户端都作为子进程启动服务器,并通过环境变量传递凭证。将 `pk_your_token_here` 替换为您的 token,可选地将 `your_workspace_id` 替换为您的 Workspace(团队)ID。
### Cursor
添加到 `~/.cursor/mcp.json`(全局)或 `.cursor/mcp.json`(每个项目):
```json
{
"mcpServers": {
"clickup": {
"command": "uvx",
"args": ["amazing-clickup-mcp"],
"env": {
"CLICKUP_API_TOKEN": "pk_your_token_here",
"CLICKUP_TEAM_ID": "your_workspace_id"
}
}
}
}
```
### Claude Desktop
编辑 `claude_desktop_config.json`(设置 → 开发者 → 编辑配置; 在 macOS 上位于 `~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"clickup": {
"command": "uvx",
"args": ["amazing-clickup-mcp"],
"env": {
"CLICKUP_API_TOKEN": "pk_your_token_here",
"CLICKUP_TEAM_ID": "your_workspace_id"
}
}
}
}
```
保存后重启 Claude Desktop。
### Claude Code
通过单个命令注册服务器:
```bash
claude mcp add clickup \
--env CLICKUP_API_TOKEN=pk_your_token_here \
--env CLICKUP_TEAM_ID=your_workspace_id \
-- uvx amazing-clickup-mcp
```
或将等效块添加到 `~/.claude.json` 下的 `mcpServers`(与上面的 Cursor 示例相同)。
### MCP Inspector
使用官方检查器与服务器交互:
```bash
CLICKUP_API_TOKEN=pk_your_token_here \
npx @modelcontextprotocol/inspector uvx amazing-clickup-mcp
```
如果您克隆了仓库,您可以改为运行 `uv run mcp dev src/clickup_mcp/server.py`(`mcp` 开发 CLI 包含在开发依赖组中)。
### Docker
从仓库的 `Dockerfile` 构建镜像,然后指向任何客户端运行:
```bash
docker build -t amazing-clickup-mcp .
```
```json
{
"mcpServers": {
"clickup": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "CLICKUP_API_TOKEN",
"-e", "CLICKUP_TEAM_ID",
"amazing-clickup-mcp"
],
"env": {
"CLICKUP_API_TOKEN": "pk_your_token_here",
"CLICKUP_TEAM_ID": "your_workspace_id"
}
}
}
}
```
`-i` 标志是必需的 — 服务器通过标准输入/输出通信。`-e NAME` 条目将客户端提供的环境变量值转发到容器中。
## 身份验证
服务器使用单个 ClickUp token 进行身份验证,该 token 原样发送到每个请求的 `Authorization` 头中:
- **个人 API token** — ClickUp → 设置 → **应用** → **API Token**。以 `pk_` 开头。最简单的选项;范围限定为您的帐户和权限。
- **OAuth2 访问 token** — 用于多用户集成。提供您从 OAuth 流程中获得的访问 token。
token 从 `CLICKUP_API_TOKEN` 读取(通过 `.env` 或客户端的 `env` 块)。它永远不会被记录。缺少或无效的凭证会在第一个 API 调用时延迟失败,并出现清晰的 `401` 消息,而不是在启动时。
### 环境变量
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
| `CLICKUP_API_TOKEN` | 是 | — | 个人 API token(`pk_…`)或 OAuth2 访问 token。原样发送到 `Authorization` 头中。 |
| `CLICKUP_TEAM_ID` | 否 | — | 默认 Workspace(团队)ID,用于调用省略 `team_id` 时。 |
| `CLICKUP_API_URL` | 否 | `https://api.clickup.com/api/v2` | v2 API 基本 URL。仅为代理或测试覆盖。 |
| `CLICKUP_API_URL_V3` | 否 | `https://api.clickup.com/api/v3` | v3 API 基本 URL(文档、聊天、实体附件、ACL)。 |
| `CLICKUP_REQUEST_TIMEOUT_SECONDS` | 否 | `30` | 每个请求的 HTTP 超时时间,单位:秒。 |
所有变量在导入时都是可选的(服务器在没有它们的情况下启动);只有 `CLICKUP_API_TOKEN` 是成功进行 API 调用所必需的。
## 手动运行
安装依赖项后(`uv sync`),以下任意命令均可启动相同的_stdio_服务器:
```bash
uv run amazing-clickup-mcp # 控制台脚本(推荐)
uv run python -m clickup_mcp # 模块入口点
```
将包安装到活动环境后,`amazing-clickup-mcp` 和 `python -m clickup_mcp` 无需 `uv run` 前缀即可工作。
## 故障排除
- **`429 Too Many Requests` / 速率限制。** ClickUp 将请求限制在 **每分钟每个 token 约 100 次请求**。如果您遇到 `429`,请减慢速度并在短暂停顿后重试;错误消息会显示 ClickUp 的速率限制详细信息。优先使用批量/过滤工具(例如 `clickup_get_filtered_team_tasks`、`clickup_get_bulk_tasks_time_in_status`),而不是多次调用单个项目。
- **`403` 在 Guests / Users / Audit logs / ACL 上。** 这些端点是 **仅限企业计划**,在其他计划上返回 `403`。受影响的工具包括 `clickup_*_guest_*` 和 `clickup_*_user_*` 系列、`clickup_query_audit_logs` 和 `clickup_update_privacy_and_access`。除了企业计划外,没有其他解决方法。
- **`403` 添加/删除任务跨列表。** `clickup_add_task_to_list` 和 `clickup_remove_task_from_list` 需要 **Tasks in Multiple Lists** ClickApp 在 Workspace 中启用(设置 → ClickApps)。如果没有启用,API 将返回 `403`。
- **v3 游标分页。** 聊天、文档搜索和类似的 v3 列表工具使用不透明的 **cursor** 而不是 `offset` 进行分页。 从响应中读取 `next_cursor` 并将其作为 `cursor` 参数传递回以获取下一页;重复直到不再返回 cursor。
- **`uvx clickup-mcp` 运行错误。** 裸 `clickup-mcp` PyPI 名称是一个无关的包。 此服务器发布为 **`amazing-clickup-mcp`** — 始终使用 `uvx amazing-clickup-mcp`。
- **首次调用 `401 Unauthorized`。** token 缺失、格式错误或缺乏访问权限。确认 `CLICKUP_API_TOKEN` 在客户端的 `env`(或 `.env`)中设置,并且它是有效的个人(`pk_…`)或 OAuth2 token。运行 `clickup_health_check` 进行验证。
## 贡献
Conventional Commits 驱动版本发布(release-please)。在推送前,运行完整的验证流程 — 它必须退出 `0`:
```bash
uv run pytest -m "not live" && uv run ruff check src/ && uv run ruff format --check src/ && uv run mypy src/
```
## 许可证
[Apache-2.0](LICENSE)
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器