@theyahia/kaiten-mcp
# MCP-сервер для Kaiten — канбан-доски, карточки и спринты через ИИ
> 📦 Часть **[WWmcp — Emerging Markets MCP](https://github.com/theYahia/WWmcp)** — 46 MCP-серверов к незападным API (Бразилия / MENA / Залив / Юго-Восточная Азия / Африка / СНГ).
Если вы искали, как подключить Kaiten к нейросети, разобрать доску и двигать карточки не перетаскивая их мышкой — это оно. 63 инструмента: пространства, доски, колонки, дорожки, карточки с фильтрами, комментарии, участники, теги, чек-листы, дочерние карточки, внешние ссылки, блокировки, типы карточек, спринты, кастомные поля и пользователи. Пишете «перенеси всё из Review в Done и поставь дедлайн на пятницу» — переносит.
> MCP-сервер к API канбан-платформы **Kaiten**. **63 инструмента**: пространства, доски, колонки, дорожки, карточки (с богатыми фильтрами), комментарии, участники, теги, чек-листы, дочерние карточки, внешние ссылки, блокировки, типы карточек, спринты, кастомные поля и пользователи.
[](https://www.npmjs.com/package/@theyahia/kaiten-mcp)
[](https://opensource.org/licenses/MIT)
Часть серии [WWmcp](https://github.com/theYahia/WWmcp) от [@theYahia](https://github.com/theYahia).
## Быстрый старт
### Claude Desktop
Добавьте в `claude_desktop_config.json`:
```json
{
"mcpServers": {
"kaiten": {
"command": "npx",
"args": ["-y", "@theyahia/kaiten-mcp"],
"env": {
"KAITEN_DOMAIN": "your-domain",
"KAITEN_TOKEN": "your-api-token"
}
}
}
}
```
### Claude Code
```bash
claude mcp add kaiten -e KAITEN_DOMAIN=your-domain -e KAITEN_TOKEN=your-token -- npx -y @theyahia/kaiten-mcp
```
### Cursor / Windsurf
```json
{
"kaiten": {
"command": "npx",
"args": ["-y", "@theyahia/kaiten-mcp"],
"env": { "KAITEN_DOMAIN": "your-domain", "KAITEN_TOKEN": "your-api-token" }
}
}
```
## Авторизация
1. В Kaiten откройте **Профиль → API-токены** и создайте токен.
2. Запомните свой поддомен (например, `mycompany` из `mycompany.kaiten.ru`).
| Переменная | Обяз. | Описание |
| ----------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------- |
| `KAITEN_DOMAIN` | да\* | Поддомен (`mycompany`) **или** полный хост (`mycompany.kaiten.io`). Голый поддомен разворачивается в `.kaiten.ru`. |
| `KAITEN_TOKEN` | да | Bearer-токен из раздела Профиль → API-токены. |
| `KAITEN_BASE_URL` | нет | Полный базовый URL API для **self-hosted / on-premise** Kaiten, например `https://kaiten.mycorp.ru/api/latest`. Перекрывает `KAITEN_DOMAIN`. |
\* `KAITEN_DOMAIN` обязателен, если не задан `KAITEN_BASE_URL`.
У токена должны быть права на те сущности, с которыми вы работаете: читающим инструментам нужны права просмотра, а создающим, изменяющим и удаляющим — права редактирования.
## Попробуйте этот промпт
> _«Создай задачу в колонке „In Progress“ доски „Sprint 23“, назначь @alex, добавь тег bug»_
Агент выстроит цепочку `list_spaces` → `list_boards` → `list_columns` → `create_card` → `list_users` → `add_card_member` → `add_card_tag`.
## Инструменты (63)
Количество считается по реестру при старте; точное число сервер пишет в лог при запуске.
### Пространства
`list_spaces` · `get_space` · `create_space` · `update_space` · `delete_space`
### Доски, колонки, дорожки
`list_boards` · `get_board` · `create_board` · `update_board` · `delete_board` · `list_columns` · `create_column` · `update_column` · `delete_column` · `list_lanes` · `create_lane` · `update_lane` · `delete_lane`
### Карточки
`list_cards` (богатые фильтры: доска/колонка/дорожка/пространство, поисковый запрос, тег, тип, владелец, ответственный, участники, состояния, условие, архив, ASAP, просрочка, сроки, сортировка) · `get_card` · `create_card` · `update_card` (заголовок, описание, владелец, срок, ASAP, размер) · `move_card` (колонка + дорожка) · `delete_card` · `get_card_location_history`
### Комментарии
`add_comment` · `list_comments` · `update_comment` · `delete_comment`
### Участники и теги карточек
`list_card_members` · `add_card_member` · `update_card_member_role` · `remove_card_member` · `list_card_tags` · `add_card_tag` · `remove_card_tag`
### Чек-листы
`create_checklist` · `get_checklist` · `update_checklist` · `remove_checklist` · `add_checklist_item` · `update_checklist_item` · `remove_checklist_item`
### Дочерние карточки, ссылки, блокировки
`list_card_children` · `add_card_child` · `remove_card_child` · `list_card_external_links` · `add_card_external_link` · `update_card_external_link` · `remove_card_external_link` · `list_card_blockers` · `block_card` · `update_card_blocker` · `unblock_card`
### Рабочее пространство и справочники
`list_tags` · `list_users` · `get_current_user` · `list_card_types` · `list_sprints` · `get_sprint_summary` · `list_custom_properties` · `get_custom_property` · `list_custom_property_select_values`
> Списочные инструменты возвращают **компактную проекцию** (только ключевые поля), чтобы не жечь токены на больших досках. Инструменты `get_*` и все мутации возвращают полный JSON API.
## HTTP-транспорт
По умолчанию сервер общается через stdio (для Claude Desktop и Claude Code). Чтобы запустить его как streamable-HTTP сервер:
```bash
kaiten-mcp --http 3000
# или
HTTP_PORT=3000 kaiten-mcp
```
- `GET /health` → `{ status, tools, version }`
- `POST /mcp` → эндпоинт MCP streamable-HTTP
CORS выключен по умолчанию: задайте `KAITEN_HTTP_CORS_ORIGIN` с разрешённым origin (эндпоинт действует от имени вашего токена, поэтому никакого дефолтного wildcard нет).
## Демо-промпты
```
Покажи все пространства, потом доски в пространстве 5
Покажи колонки и дорожки на доске 123
Создай карточку «Починить баг входа» на доске 123 в колонке 456
Поставь карточке 789 срок на следующую пятницу и пометь как ASAP
Добавь @alex в участники карточки 789 и повесь тег «bug»
Добавь к карточке 789 чек-лист «QA» с пунктами «написать тесты» и «выкатить»
Перенеси карточку 789 в колонку «Done»
Кто я? (get_current_user)
```
## Решение проблем
- **401 / ошибка авторизации** — проверьте, что `KAITEN_TOKEN` действителен и имеет права на нужную сущность. Сервер сообщает об ошибках авторизации явно.
- **`.kaiten.io` / self-hosted** — задайте `KAITEN_DOMAIN` как полный хост (`acme.kaiten.io`) или `KAITEN_BASE_URL` как полный базовый URL вашего API.
- **`list_boards` ничего не возвращает без `space_id`** — Kaiten отдаёт доски по пространствам; передайте `space_id` (это документированный путь).
## Что не вошло
Эти возможности есть в API Kaiten, но сознательно оставлены за рамками интерактивного ассистента: SCIM-провижининг, массовые импорты, фреймворк аддонов и управление подписками на вебхуки. Документы и итерации, а также записывающие операции по кастомным полям и типам карточек пока не вынесены (формат их запросов нужно подтвердить на живом инстансе) — заведите issue, если они вам нужны.
## Разработка
```bash
npm install
npm run dev # запуск из исходников (tsx)
npm run build # сборка в dist/
npm test # vitest
npm run coverage # vitest + покрытие
npm run lint # eslint
npm run typecheck # tsc --noEmit
```
## Справочник API
Официальная документация API Kaiten: <https://developers.kaiten.ru>
## Хорошо сочетается с
- **[planfix-mcp](https://github.com/theYahia/planfix-mcp)** — российский таск-трекер и CRM
- **[megaplan-mcp](https://github.com/theYahia/megaplan-mcp)** — российская all-in-one бизнес-платформа
- **[yandex-tracker-mcp](https://github.com/theYahia/yandex-tracker-mcp)** — трекер Яндекса в духе Jira
Все 46 серверов — в [каталоге WWmcp](https://github.com/theYahia/WWmcp).
## Лицензия
MIT
---
**Часть [WWmcp](https://github.com/theYahia/WWmcp)** — каталог MCP для развивающихся рынков. ⭐ Поставьте звезду каталогу, если серверы оказались полезны, и [заведите issue](https://github.com/theYahia/WWmcp/issues), если нужен сервер к ещё одному незападному API.
---
Часть [WWmcp](https://github.com/theYahia/WWmcp) · Telegram: [@vhodvai](https://t.me/vhodvai)
TDQS
Scored across 63 tools
Every tool targets a distinct resource or subresource (spaces, boards, columns, lanes, cards, members, tags, blockers, checklists, comments, sprints, custom properties), and the verb prefixes clearly separate read from mutation operations. An agent should rarely confuse one tool with another, even within the dense card subresource family.
The set largely follows a snake_case verb_noun pattern (list_spaces, create_board, update_card), and card subresources consistently use list_card_* / add_card_* / remove_card_*. Minor inconsistencies like block_card/unblock_card instead of create/delete_card_blocker, and delete_comment vs remove_* for other subresources, prevent a perfect score.
With 63 exposed operations, the tool surface is far beyond the 3–15 range that makes a coherent MCP server easy for an agent to navigate. Even though the tools are logically grouped by Kaiten's domain, the raw API-style granularity creates an extreme selection burden and warrants a low score.
The core lifecycle is well covered: spaces, boards, columns, lanes, cards, comments, checklists, members, tags, blockers, and external links all have create/read/update/delete or equivalent operations. Minor gaps remain—no get_column/get_lane, no workspace-level tag or sprint CRUD, and custom properties are read-only—but agents can usually work around them via list and board endpoints.