clickup-mcp
clickup-mcp
Сервер ClickUp MCP для Claude — предоставляет задачи, пространства, папки, списки и комментарии ClickUp как инструменты MCP.
Технологический стек: Python 3.12 + uv + FastMCP (Starlette/FastAPI)
Быстрый старт
# Install dependencies
cd D:\leo\mcp-server\clickup-mcp
uv sync
# Run in stdio mode (for Claude Desktop)
$env:CLICKUP_API_TOKEN="pk_xxxxx"
uv run clickup-mcpRelated MCP server: Clickup Universal MCP Server
Конфигурация
Скопируйте .env.example в .env и заполните свои значения:
Переменная | По умолчанию | Описание |
| — | Личный API токен ClickUp ( |
|
|
|
|
|
|
|
| Порт HTTP-сервера |
|
| Базовый URL API |
Получите ваш API токен: ClickUp → Settings → Apps → API Token
Настройка Claude Desktop
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"clickup": {
"command": "uv",
"args": ["run", "--directory", "D:/leo/mcp-server/clickup-mcp", "clickup-mcp"],
"env": {
"CLICKUP_API_TOKEN": "pk_xxxxx"
}
}
}
}Режимы транспорта
stdio (Claude Desktop / CLI)
$env:CLICKUP_API_TOKEN="pk_xxxxx"
uv run clickup-mcpHTTP — однотенантный
$env:CLICKUP_API_TOKEN="pk_xxxxx"
$env:MCP_TRANSPORT="http"
$env:MCP_HTTP_PORT="8080"
uv run clickup-mcpHTTP — шлюз / мультитенантный
$env:MCP_TRANSPORT="http"
$env:AUTH_MODE="gateway"
uv run clickup-mcp
# Each request must include: X-Clickup-Token: pk_xxxxxДоступные инструменты (28)
Инструмент | Описание |
| Список всех рабочих пространств/команд |
| Список участников рабочего пространства, сведённый к id/username/email/team_id/role — позволяет преобразовать email пользователя в user_id, который ожидают фильтры |
| Список пространств в рабочем пространстве |
| Получить детали пространства |
| Список папок в пространстве |
| Список списков без папок в пространстве |
| Получить детали папки |
| Список списков в папке |
| Создать папку |
| Обновить папку |
| Удалить папку |
| Получить детали списка |
| Создать список в папке |
| Создать список в пространстве |
| Обновить список |
| Получить задачу по ID |
| Поиск задач с фильтрами (одно рабочее пространство, обязателен team_id) |
| Список задач пользователя во ВСЕХ видимых рабочих пространствах одним запросом, по email или user_id — не требуется team_id, ручная пагинация или дедупликация |
| Создать задачу |
| Обновить задачу |
| Удалить задачу |
| Переместить задачу в другой список |
| Получить комментарии задачи |
| Добавить комментарий к задаче |
| Получить одну страницу из Документа (v3) |
| Загрузить файл (например, изображение) как вложение к задаче |
| Загрузить файл и разместить его встроенным в новый комментарий задачи одним вызовом |
| Список всех EOS Rocks (квартальные цели) по всей организации одним запросом, нормализованных до фиксированного перечисления статусов |
Поиск ClickUp user ID пользователя
Используйте clickup_list_members. В родном ответе ClickUp GET /team содержится полный список участников по каждой команде (teams[].members[].user.{id,username,email}), но clickup_get_workspaces удаляет эту информацию, чтобы ответ оставался компактным, поэтому это не то место, где следует искать людей. clickup_list_members читает тот же базовый эндпоинт и проецирует список участников в плоскую, специально созданную структуру (id/username/email/team_id/role), чтобы вызывающим не приходилось извлекать её из полного объекта рабочего пространства/команды самостоятельно. clickup_list_tasks_for_person использует внутри тот же базовый поиск для преобразования email -> user_id.
Известное ограничение: объект участника команды ClickUp не имеет надёжного поля «деактивирован ли этот участник» — clickup_list_members не возвращает поле active, поскольку за ним нет реальных данных (единственное поле status, присутствующее в исходном объекте, invited_by.status, описывает пригласившего, а не участника).
clickup_search_tasks уже возвращает status.type
Как и все остальные инструменты чтения здесь, clickup_search_tasks и clickup_get_task передают исходный объект задачи ClickUp без изменений — включая поле type объекта status (open / custom / closed / done), которое является единственным надёжным способом определить, считается ли статус с пользовательским названием завершённым. Для этого не потребовалось изменений кода; это уже было там. clickup_list_tasks_for_person явно выводит его как status_type для каждой возвращаемой задачи для удобства.
Как EOS Rocks представлены в этом рабочем пространстве ClickUp
Подтверждено 18.08.2026 при непосредственном просмотре полей реальной задачи Rock (не догадки): Rocks — это обычные задачи ClickUp, находящиеся в списке, буквально названном "Rocks" (обнаружено в пространстве "Company" > папка "EOS Traction"), каждая из которых имеет специальные пользовательские поля: Quarter (выпадающий список, "Q1 2024".."Q4 2026"), Rocks Status (On Hold / Off Track / On Track / Completed / Blocked / At Risk), Rock Type (Company / Individual / Departmental / Team Rock), Department и прогресс через Progress (вручную) или Progress % (автоматически, свёртка чеклистов). Это не ClickUp Goals API и не простой список задач без метаданных — это задачи плюс пользовательские поля.
clickup_list_rocks_for_org находит каждый список с именем "Rocks" (по имени, а не жёстко заданному ID, на случай если пространства/папки будут реорганизованы) во всех рабочих пространствах, видимых токену, читает эти поля и нормализует их:
quarter: метка ClickUp "Q3 2026" преобразуется в2026-Q3(и обратно, для входного фильтраquarter).status: 6 исходных опций ClickUp отображаются в 5-значный контракт (on_track/off_track/done/missed/open) — см. комментарий_STATUS_MAPвrocks.pyдля точного отображения и объяснения, почемуmissedникогда не генерируется (в данных ClickUp нет ничего, что отличало бы «истекло время» от общего «отклонение»; выводить это из просроченной due_date было бы неподтверждённым бизнес-логическим предположением, поэтому здесь это не делается).measurable: для этого списка нет выделенного поля. Используется описание задачи;null, если и оно пустое (никогда не выдумывается).weekly_status: нигде не найден структурированный источник (ни пользовательское поле, ни что-то из комментариев) — всегда возвращается как[]. Если организация начнёт отслеживать это в ClickUp каким-то другим способом, пересмотреть.
Вложения и изображения
REST API ClickUp не позволяет прикрепить файл напрямую к комментарию — только к задаче (POST /task/{task_id}/attachment, что оборачивает clickup_attach_task_file). Также нет эндпоинта для удаления/обновления вложения; повторная загрузка добавляет новое вложение, а не заменяет старое, а удаление требует использования веб- или десктопного приложения ClickUp. Подтверждено проверкой описаний инструментов официального MCP-сервера ClickUp — то же разделение (инструмент Create Task Comment без поддержки вложений и отдельный инструмент Attach File to Task).
Чтобы изображение отображалось встроенным внутри комментария, хитрость в следующем: сначала загрузите файл в задачу, затем укажите возвращённый URL из ответа файла, используя синтаксис Markdown для изображения в тексте комментария — средство рендеринга комментариев ClickUp встраивает его как настоящее изображение, а не просто ссылку. clickup_create_comment_with_image выполняет оба шага одним вызовом:
clickup_create_comment_with_image(task_id, file_content_base64, filename)
# internally:
# 1. POST /task/{task_id}/attachment -> {"url": "...", ...}
# 2. POST /task/{task_id}/comment comment_text = ""Чтобы сделать это вручную (например, добавить другой текст вокруг изображения), вызовите два инструмента самостоятельно:
1. result = clickup_attach_task_file(task_id, file_content_base64, filename)
-> result["url"] is the uploaded file's URL
2. clickup_create_task_comment(
task_id,
comment_text=f""
)Справочник по API
Available Tools
1 toolclickup_test_connectionA
Test ClickUp connection. Shows configuration requirements when credentials are missing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses it is a test operation and shows config requirements on failure. No annotations, so description carries full burden. Does not clarify if it is read-only, has side effects, or what output format looks like (though output schema exists). Minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose. No extraneous words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with no parameters and low complexity. Description covers purpose and a key failure behavior. Output schema exists to document return values, so completeness is high. Minor gap: could mention safe/read-only nature explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so input schema is empty. Description adds meaning by explaining tool purpose and special behavior. Baseline for 0 params is 4; description fulfills this adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('Test') and resource ('ClickUp connection'), with specific additional behavior: shows configuration requirements when credentials missing. No sibling tools to differentiate, but purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage: use to verify connection and get config hints if incomplete. No explicit when-to-use, when-not-to-use, or alternatives provided. Lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v0.1.0- First observed
clickup_test_connection
TDQS
Only one tool exists, so there is no possibility of confusion between tools.
With a single tool, naming consistency is not applicable, but the tool name follows a clear verb_noun pattern.
A single 'test connection' tool is severely insufficient for a platform like ClickUp, which typically requires many tools for tasks, issues, lists, etc.
The tool only tests the connection, lacking any actual CRUD operations or meaningful interactions with ClickUp resources.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
ClickUp MCP — wraps the ClickUp REST API v2 (BYO API key)
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Manage your ClickUp workspace by creating, updating, and organizing tasks, lists, folders, and tag…
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides integration with ClickUp's API, allowing you to retrieve task information and manage ClickUp data through MCP-compatible clients.-
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Clickup's project management tools through the MCP protocol, allowing task and project operations via natural language.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI applications to interact with ClickUp's project management API through the MCP protocol, supporting resources like Teams, Spaces, Goals, and Key Results.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage ClickUp workspaces, teams, spaces, folders, lists, tasks, and custom fields via 29 MCP tools with full CRUD operations.655MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MSPbotsAI/clickup-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server