Kaiten

io.github.evvfebruaryPublished by GitHub account evvfebruaryv0.1.0Updated Oct 24, 2026

Manage Kaiten spaces, boards, cards, comments, and tags with compact MCP responses.

Overview

AI-generated overview

Kaiten MCP server that lets an AI assistant browse spaces, boards and columns and create, update, move, comment on and tag Kaiten cards with compact responses.

What you can do
  • List spaces, boards, columns and lanes to find where work lives
  • Create, read, filter and update cards, including moving them between boards, columns and lanes
  • Add and list comments on cards
  • List tags, read a card's tags, and add or remove tags
  • Return compact, paginated results with descriptions only on request
When to use it
Useful when your team tracks work in Kaiten and you want an assistant in Cursor, Claude Code or another MCP client to look up boards and cards or make changes from chat without copying between the web UI and the model.
Requirements
Runs locally over stdio via uvx (Python 3.12+ and uv). Needs a Kaiten API token in KAITEN_API_TOKEN, plus either KAITEN_WORKSPACE_SLUG or a full KAITEN_BASE_URL for on-prem or custom domains. Network access to your Kaiten instance. A Streamable HTTP mode with Docker or Kubernetes is also described.
Before you install
The token grants whatever rights your Kaiten account has, so the assistant can create, update, move and comment on real cards and add or remove tags. Keep the token out of committed config files and prefer environment variables. In remote HTTP mode each client sends its own Bearer token, and the README warns not to log the Authorization header. Kaiten rate limits apply.

Installation

In SourceWeft

  1. Open Kaiten in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

kaiten-mcp

MCP-сервер для Kaiten — интеграция канбан-досок и задач Kaiten с AI-ассистентами (Cursor, Claude Code и любым MCP-клиентом).

Управляйте карточками прямо из чата: создавайте задачи, перемещайте по колонкам, обновляйте описания, оставляйте комментарии и теги — без ручного копирования из веб-интерфейса и без огромных JSON-ответов API в контексте модели.

Зачем это нужно

  • Подключить Kaiten к Cursor / Claude Code через Model Context Protocol
  • Работать с пространствами, досками, колонками и карточками голосом агента
  • Экономить токены: ответы компактные по умолчанию (описания — только по запросу)
  • Развернуть локально (stdio) или для команды (Streamable HTTP / Docker / Kubernetes)

Возможности

  • Локальный транспорт stdio для Cursor и Claude Code
  • Удалённый Streamable HTTP (POST /mcp) для командного хостинга
  • Токен Kaiten на каждый запрос (credentials не сохраняются на диске)
  • Компактные списки: страница по умолчанию 20 (макс. 100), без вложений и «шумных» вложенных полей
  • Бенчмарки размера payload (kaiten-mcp-benchmark), чтобы ответы не раздувались со временем
  • Структурированные логи в stderr (безопасно для stdio MCP)

Быстрый старт

Требования

  • Python 3.12+
  • uv
  • API-токен Kaiten (Профиль → API-ключ в вашем инстансе, например https://<компания>.kaiten.ru/profile/api-key)

1. Установка и запуск

bash
export KAITEN_API_TOKEN='ваш-токен'export KAITEN_WORKSPACE_SLUG='ваша-компания'   # → https://ваша-компания.kaiten.ru/api/v1
uvx kaiten-mcp --transport stdio

uvx скачивает пакет из PyPI, создаёт изолированное окружение и запускает сервер. Клонировать репозиторий не требуется.

Для on-prem / кастомного домена вместо slug задайте полный корень API:

bash
export KAITEN_BASE_URL='https://kaiten.example.com/api/v1'

Остальные переменные — в .env.example.

2. Cursor

Конфиг проекта уже есть: .cursor/mcp.json.

  1. Экспортируйте токен и workspace в окружение, которое наследует Cursor:
bash
export KAITEN_API_TOKEN='ваш-токен'export KAITEN_WORKSPACE_SLUG='ваша-компания'
  1. Перезапустите Cursor после смены переменных окружения.
  2. Откройте Output → MCP Logs и убедитесь, что сервер kaiten подключился.
  3. Попросите агента: «покажи пространства» или «найди задачи на доске …».

${env:KAITEN_API_TOKEN} и ${env:KAITEN_WORKSPACE_SLUG} подставляет Cursor. Не коммитьте реальные токены.

3. Claude Code

Конфиг проекта: .mcp.json.

bash
export KAITEN_API_TOKEN='ваш-токен'export KAITEN_WORKSPACE_SLUG='ваша-компания'claude mcp list

Или вручную:

bash
claude mcp add --transport stdio kaiten -- uv run kaiten-mcp --transport stdio

Примеры запросов к агенту

  • «Покажи все пространства в Kaiten»
  • «Найди доски в пространстве X и создай карточку „Исправить баг логина“»
  • «Перенеси задачу #1234 в колонку In Progress»
  • «Добавь комментарий к карточке #1234: готово к ревью»
  • «Повесь тег „hotfix“ на задачу #1234»

Типовой порядок инструментов:

  1. list_spaces → list_boards → list_columns / list_lanes
  2. create_task / list_tasks / get_task / update_task / move_task
  3. add_comment / add_tag_to_task при необходимости

Инструменты MCP

ИнструментНазначение
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

Удалённый сервер / Docker / Kubernetes

Streamable HTTP:

bash
uv run kaiten-mcp --transport streamable-http --host 0.0.0.0 --port 8000
  • Health: GET /healthz
  • MCP: POST /mcp

Docker:

bash
docker pull ghcr.io/evvfebruary/kaiten-mcp:latestdocker run --rm -p 8000:8000 \  -e KAITEN_WORKSPACE_SLUG=ваша-компания \  ghcr.io/evvfebruary/kaiten-mcp:latest

Для локальной разработки образ можно собрать командой docker build -t kaiten-mcp ..

Каждый клиент передаёт свой токен:

http
Authorization: Bearer <kaiten-api-token>

Примеры конфигов:

Заметки для Kubernetes:

  • Stateless-реплики допустимы (stateless_http=True)
  • TLS — на Ingress
  • Увеличьте proxy/read timeouts для streaming
  • Не логируйте заголовок Authorization
  • У Kaiten лимит порядка ~50 req/s — делите бюджет между репликами

Модель с 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.

Экономия токенов

  • Размер страницы списка по умолчанию: 20 (макс. 100)
  • В списках нет описаний, вложений и глубоких дублей
  • Мутации возвращают id/url и изменённые поля
  • Обрезка явная: truncated, next_offset, has_more
  • Коротко описанные схемы инструментов

Проверка бюджетов размера ответа:

bash
uv run kaiten-mcp-benchmarkuv run kaiten-mcp-benchmark --check

Логирование

Логи всегда идут в stderr (совместимо со stdio MCP).

bash
export KAITEN_LOG_LEVEL=INFOexport KAITEN_LOG_FORMAT=jsonuv run kaiten-mcp --transport stdio --log-format json

Полезные события: server_starting, tool_start / tool_success / tool_error, kaiten_request, kaiten_rate_limited.

Секреты редактируются; токены видны только как fingerprint вида token_fp=len=40:…ab12.

Разработка

bash
uv sync --all-groupsuv run ruff format .uv run ruff check .uv run ty checkuv run pytestuv run kaiten-mcp-benchmark --check

Live smoke (опционально, не в CI по умолчанию):

bash
KAITEN_API_TOKEN=... KAITEN_WORKSPACE_SLUG=... uv run pytest -m live

Публикация релизов (PyPI, GHCR, Official MCP Registry) описана в RELEASING.md.

Структура

text
src/kaiten_mcp/  api/           # HTTP-клиент и адаптеры эндпоинтов  tools/         # MCP-инструменты  auth.py        # Токен на запрос  config.py      # Настройки  presentation.py  metrics.py  server.py  __main__.pytests/benchmarks/examples/remote-mcp/server.json      # Official MCP Registry metadataRELEASING.md

Безопасность

  • Токен берётся из HTTP Bearer или KAITEN_API_TOKEN на каждый запрос
  • Сервер не пишет токены на диск
  • Предпочитайте переменные окружения, а не хардкод в MCP JSON
  • Права на стороне Kaiten определяются токеном вызывающего

FAQ

Как подключить 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.

Лицензия

MIT

Source: README.md at commit 428aa1f

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts