The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Kaiten listing page.
MCP-сервер для Kaiten — интеграция канбан-досок и задач Kaiten с AI-ассистентами (Cursor, Claude Code и любым MCP-клиентом).
Управляйте карточками прямо из чата: создавайте задачи, перемещайте по колонкам, обновляйте описания, оставляйте комментарии и теги — без ручного копирования из веб-интерфейса и без огромных JSON-ответов API в контексте модели.
POST /mcp) для командного хостингаkaiten-mcp-benchmark), чтобы ответы не раздувались со временемhttps://<компания>.kaiten.ru/profile/api-key)uvx скачивает пакет из PyPI, создаёт изолированное окружение и запускает сервер.
Клонировать репозиторий не требуется.
Для on-prem / кастомного домена вместо slug задайте полный корень API:
Остальные переменные — в .env.example.
Конфиг проекта уже есть: .cursor/mcp.json.
kaiten подключился.${env:KAITEN_API_TOKEN} и ${env:KAITEN_WORKSPACE_SLUG} подставляет Cursor. Не коммитьте реальные токены.
Конфиг проекта: .mcp.json.
Или вручную:
Типовой порядок инструментов:
list_spaces → list_boards → list_columns / list_lanescreate_task / list_tasks / get_task / update_task / move_taskadd_comment / add_tag_to_task при необходимости| Инструмент | Назначение |
|---|---|
list_spaces | Список пространств (id, title) |
list_boards | Доски пространства |
list_columns | Колонки доски |
list_lanes | Дорожки доски |
create_task | Создать карточку (title + board_id) |
get_task | Детали задачи (include_description — по запросу) |
list_tasks | Фильтрованный компактный список (query, board, column, tag, …) |
update_task | Обновление полей (title, description, owner, condition, …) |
move_task | Перемещение (board / column / lane / sort) |
add_comment / list_comments | Комментарии |
list_tags / get_task_tags | Теги |
add_tag_to_task | Добавить тег по имени |
remove_tag_from_task | Снять тег по id |
Streamable HTTP:
GET /healthzPOST /mcpDocker:
Для локальной разработки образ можно собрать командой docker build -t kaiten-mcp ..
Каждый клиент передаёт свой токен:
Примеры конфигов:
Заметки для Kubernetes:
stateless_http=True)AuthorizationМодель с Bearer-токеном на запрос — осознанный выбор v1 (не browser OAuth).
| Переменная | Обязательна | Описание |
|---|---|---|
KAITEN_API_TOKEN | Да (stdio) | API-токен; для HTTP — также в Authorization: Bearer |
KAITEN_WORKSPACE_SLUG | Да* | Slug: acme → https://acme.kaiten.ru/api/v1 |
KAITEN_BASE_URL | Да* | Полный корень API (on-prem); имеет приоритет над slug |
KAITEN_HOST / KAITEN_PORT | Нет | Bind для HTTP (по умолчанию 127.0.0.1:8000) |
KAITEN_LOG_LEVEL | Нет | DEBUG | INFO | WARNING | ERROR |
KAITEN_LOG_FORMAT | Нет | text | json |
KAITEN_LOG_BODIES | Нет | Компактные redacted-превью в логах |
KAITEN_ENABLE_METRICS | Нет | Метрики размера payload без секретов |
* Нужен либо KAITEN_WORKSPACE_SLUG, либо KAITEN_BASE_URL.
truncated, next_offset, has_moreПроверка бюджетов размера ответа:
Логи всегда идут в stderr (совместимо со stdio MCP).
Полезные события: server_starting, tool_start / tool_success / tool_error, kaiten_request, kaiten_rate_limited.
Секреты редактируются; токены видны только как fingerprint вида token_fp=len=40:…ab12.
Live smoke (опционально, не в CI по умолчанию):
Публикация релизов (PyPI, GHCR, Official MCP Registry) описана в RELEASING.md.
KAITEN_API_TOKEN на каждый запросКак подключить Kaiten к Cursor?
Установите зависимости через uv, задайте KAITEN_API_TOKEN и KAITEN_WORKSPACE_SLUG, перезапустите Cursor — конфиг уже в .cursor/mcp.json.
Где взять API-токен Kaiten?
В вашем инстансе: Профиль → API-ключ (https://<компания>.kaiten.ru/profile/api-key). OAuth у публичного API Kaiten для этого сценария не используется.
Чем этот сервер отличается от других kaiten-mcp?
Фокус на компактных ответах и экономии контекста модели, плюс готовый remote Streamable HTTP для команды без хранения токенов на сервере.
Можно ли развернуть для всей команды?
Да: Docker / Kubernetes с streamable-http; каждый сотрудник передаёт свой Bearer-токен в заголовке.
Работает ли с on-prem Kaiten?
Да — задайте KAITEN_BASE_URL на ваш /api/v1.