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
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
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.825MIT
Related MCP Connectors
ClickUp MCP — wraps the ClickUp REST API v2 (BYO API key)
Monday.com MCP — wraps the Monday.com GraphQL API (BYO API key)
Manage feature requests, votes, roadmaps, and changelogs from any MCP client.
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