Kaiten MCP
Provides Git integration for creating branches, switching branches, committing changes, and pushing branches for Kaiten tasks.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Kaiten MCPfind tasks tagged 'bug' in board 'Sprint 24'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Kaiten MCP
MCP Server и CLI-инструмент для работы с Kaiten API с оптимизацией токенов.
📑 Содержание
Related MCP server: kaiten-mcp-server
Установка
git clone https://github.com/tyunn/kaiten-mcp.git
cd kaiten-mcpКонфигурация
Настройки проекта (опционально)
Обязательные настройки
Создайте глобальный конфиг с настройками доступа:
mkdir -p ~/.kaiten
cat > ~/.kaiten/config << EOF
KAITEN_API_URL=https://ваш-домен.kaiten.ru/api/latest
KAITEN_API_TOKEN=ваш_api_токен
EOFКак получить данные:
API URL: это адрес вашего пространства Kaiten (например: https://company.kaiten.ru/api/latest)
API Token: зайдите в настройки профиля в Kaiten → "API токены" → создайте новый токен
Важно: Этот файл содержит секретные данные (токен доступа) и НЕ должен коммититься в git.
Создайте файл .kaiten.env в директории вашего проекта для бизнес логики проекта:
# Скопируйте пример и отредактируйте под ваш проект
cp .kaiten.config.example .kaiten.envПример содержимого .kaiten.env:
# Kaiten project configuration
# Пространство по умолчанию
# Все операции с карточками будут использовать это пространство
KAITEN_DEFAULT_SPACE_ID=12345
# Доска по умолчанию
# Все операции создания карточек будут использовать эту доску
KAITEN_DEFAULT_BOARD_ID=67890
# Временная директория для скачивания файлов
# Файлы сохраняются в /tmp/kaiten/{cardId}/ по умолчанию
KAITEN_TEMP_DIR=/tmp/kaitenПараметры ограничения доступа (опционально):
# Список разрешённых пространств (через запятую)
# Полезно для команд которые работают с несколькими проектами
KAITEN_ALLOWED_SPACE_IDS=12345,67890
# Список разрешённых досок (через запятую)
# Полезно для ограничения доступа к конкретным доскам
KAITEN_ALLOWED_BOARD_IDS=111,222,333Уровень логирования (опционально):
# Уровень логирования для MCP сервера
# error - только ошибки
# warn - предупреждения и ошибки
# info - информационные сообщения (по умолчанию)
# debug - все сообщения включая детальные данные запросов/ответов
KAITEN_LOG_LEVEL=infoПорядок загрузки конфигурации
SDK ищет конфигурацию в следующем приоритете:
~/.kaiten/config(глобальная) ← загружается первой.kaiten.env(проектная) ← загружается второй.env(fallback) ← загружается третьей, только если нет KAITEN_API_URL
Важно:
Глобальные настройки (
~/.kaiten/config) обязательныПроектные настройки (
.kaiten.env) используются для Space ID и Board IDПараметр
cwdв MCP config определяет директорию проекта для поиска.kaiten.envBoard ID можно узнать через команду
npm start boardОграничения работают на уровне SDK и защищают от случайного доступа к другим пространствам/доскам
Использование
Через MCP server (AI assistants)
Команды доступны для AI ассистентов через MCP server. AI может вызывать их напрямую без префикса kaiten.
Команды CLI (для локального использования)
# Поиск задач (оптимизировано для токенов)
npm start find agent-safe # ~30 байт
npm start find agent-safe -m # ~81 байт (JSON)
npm start find agent-safe --board="Название доски" # Фильтр по доске
# Детали задач
npm start card-simple <id> # ~200 байт
npm start card <id> # Полный JSON
# CRUD операций
npm start create '{"title":"Задача","boardId":123,"columnId":456}'
npm start update <id> '{"title":"Новое название"}'
npm start delete <id>
npm start move <id> <column_id>
npm start assign <id> <user_id>
# Подзадачи и комментарии
npm start subtask create <parent_id> <title>
npm start comment add <card_id> <text>
# Метки
npm start tag add <card_id> <tag_name>
npm start tag filter <tag_name> -m
# Навигация
npm start board # Список досок
npm start column <board_id> # Список колонок
npm start user [query] # Поиск пользователя
# Справка
npm start helpГлобальное использование CLI (опционально)
npm install -g .После этого можно использовать команды без npm start:
kaiten find agent-safe
kaiten card-simple 12345Использование SDK в проектах
import { createSDK } from 'kaiten-cli';
const sdk = createSDK();
// Получить карточку
const card = await sdk.getCard(12345);
// Создать карточку
const newCard = await sdk.createCard({
title: 'Новая задача',
boardId: 123,
columnId: 456,
tags: ['agent-safe']
});
// Создать подзадачи
await sdk.createTaskFlow(parentCardId, [
{ title: 'Подзадача 1', description: '...' },
{ title: 'Подзадача 2', description: '...' }
]);
// Переместить карточку
await sdk.moveToColumn(cardId, columnId);
// Добавить комментарий
await sdk.addComment(cardId, 'Текст комментария');
// Проверить метки
if (sdk.hasTag(card, 'agent-safe')) {
// Работаем с задачей
}
// Поиск по меткам
const agentSafeCards = await sdk.getCardsWithTag('agent-safe');🎯 Оптимизация токенов
Сравнение команд:
Команда | Размер (байт) | Использование |
| 30 | Поиск задач для агента |
| 81 | Поиск с JSON |
| 200 | Детали задачи |
| 100 | Поиск по метке |
| 2924 | ❌ Все задачи |
| 5958 | ❌ Все задачи JSON |
Рекомендации для работы с Claude:
Оптимальный workflow:
kaiten find agent-safe # Найти задачи для агента (~30 байт)
kaiten card-simple <id> # Детали конкретной задачи (~200 байт)Избегать: kaiten cards и kaiten simple - они загружают все задачи (~3000-6000 байт)
Что оптимизировано:
Удалены base64 аватары
Убраны избыточные метаданные
Оптимизированы форматы дат и времени (YYYY-MM-DD)
Сокращены описания до 500 символов
Минимальный JSON с короткими ключами (
i,t,c,tg)
Все доступные команды
Карточки
Карточки
Команда | Описание |
| Быстрый поиск по метке (~30 байт) |
| Детали задачи (человекочитаемый) |
| Детали задачи (JSON) |
| Список задач (JSON) |
| Список задач (человекочитаемый) |
| Создать карточку |
| Обновить карточку |
| Удалить карточку |
| Переместить карточку |
| Назначить исполнителя |
Git интеграция
Команда | Описание |
| Создать ветку для задачи (feature/-) |
| Переключиться на ветку задачи |
| Закоммитить (msg по умолчанию: "Work in progress") |
| Показать статус git |
| Запушить ветку |
Подзадачи и комментарии
Команда | Описание |
| Создать подзадачу |
| Список подзадач |
| Привязать к родителю |
| Отвязать от родителя |
| Добавить комментарий |
| Список комментариев |
Метки
Команда | Описание |
| Добавить метку |
| Удалить метку |
| Фильтр по метке |
| Список карточек с метками |
Навигация
Команда | Описание |
| Список пространств |
| Список досок |
| Список колонок |
| Найти пользователя |
Файлы
Команда | Описание |
| Список файлов карточки |
| Скачать файл в временную директорию |
| Скачать все файлы карточки |
| Очистить временную директорию |
Файлы сохраняются в /tmp/kaiten/{cardId}/ по умолчанию. Директорию можно изменить через параметр dir или переменную окружения KAITEN_TEMP_DIR.
Флаги
Флаг | Описание |
| Минимальный JSON (без отступов, короткие ключи) |
`--board=<id | name>` |
Git интеграция (опционально)
npm start git-branch <card_id> # Создать ветку для задачи
npm start git-checkout <card_id> # Переключиться на ветку задачи
npm start git-commit <card_id> [msg] # Закоммитить изменения
npm start git-status # Показать статус git
npm start git-push <card_id> # Запушить веткуИспользование SDK в проектах (опционально)
import { createSDK } from 'kaiten-cli';
const sdk = createSDK();
// Получить карточку
const card = await sdk.getCard(12345);
// Создать карточку
const newCard = await sdk.createCard({
title: 'Новая задача',
boardId: 123,
columnId: 456,
tags: ['agent-safe']
});
// Создать подзадачи
await sdk.createTaskFlow(parentCardId, [
{ title: 'Подзадача 1', description: '...' },
{ title: 'Подзадача 2', description: '...' }
]);
// Переместить карточку
await sdk.moveToColumn(cardId, columnId);
// Добавить комментарий
await sdk.addComment(cardId, 'Текст комментария');
// Проверить метки
if (sdk.hasTag(card, 'agent-safe')) {
// Работаем с задачей
}
// Поиск по меткам
const agentSafeCards = await sdk.getCardsWithTag('agent-safe');Архитектура
Структура
src/
├── sdk.js # Высокоуровневый SDK
├── api/
│ ├── cards.js # CRUD карточек
│ ├── subtasks.js # Подзадачи
│ ├── comments.js # Комментарии
│ ├── columns.js # Доски и колонки
│ ├── users.js # Пользователи
│ ├── client.js # HTTP клиент (axios)
│ └── index.js # Экспорт API
└── utils/
├── config.js # Загрузка конфигурации
└── temp.js # Управление временной директорией для файловКонфигурация (приоритет):
~/.kaiten/config- глобальные настройки (API URL, токен).kaiten.env- проектные настройки (Space ID, Board ID).env(fallback) - для обратной совместимости
Для AI помощников
Настройка MCP server
Добавьте сервер Kaiten MCP в конфигурацию вашего AI-ассистента.
Для Claude Code (терминал)
Используйте команду claude mcp add для добавления сервера:
# Глобально (для всех проектов)
claude mcp add kaiten /путь/к/kaiten-mcp/start-mcp.sh
# Или локально для конкретного проекта
claude mcp add kaiten /путь/к/kaiten-mcp/start-mcp.sh -s localПроверка:
claude mcp listВывод должен показать:
Checking MCP server health...
kaiten: /путь/к/kaiten-mcp/start-mcp.sh - ✓ ConnectedВажно: После добавления MCP сервера перезапустите сессию Claude Code, чтобы инструменты стали доступны.
Для других AI-ассистентов
Claude Desktop:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Cursor:
Проектный:
<ваш-проект>/.cursor/mcp.jsonГлобальный:
~/.cursor/mcp.json
Continue.dev:
Проектный:
<ваш-проект>/.continue/config.jsonГлобальный:
~/.continue/config.json
Настройка проекта
В директории вашего проекта создайте файл конфигурации Kaiten:
Файл .kaiten.env в корне проекта:
# Kaiten project configuration
KAITEN_DEFAULT_SPACE_ID=12345
KAITEN_DEFAULT_BOARD_ID=67890
# Опционально: ограничение доступа для безопасности
KAITEN_ALLOWED_SPACE_IDS=12345
KAITEN_ALLOWED_BOARD_IDS=67890Глобальный файл ~/.kaiten/config:
# Обязательные параметры
KAITEN_API_URL=https://ваш-домен.kaiten.ru/api/latest
KAITEN_API_TOKEN=ваш_api_токенВажные моменты
Параметр
cwdв конфигурации MCP определяет директорию проекта для поиска.kaiten.envБез
cwdбудут использоваться только глобальные настройки из~/.kaiten/configПараметры доступа (
KAITEN_ALLOWED_*) работают только если указаны в.kaiten.envпроекта
Инструкции для AI assistants
В каждом проекте создайте файл CLAUDE.md в корневой директории для инструкций AI (Claude Code, Cursor и др.).
Добавьте в CLAUDE.md вашего проекта:
Настройка MCP server
Добавьте в конфигурацию Claude Code:
{
"mcpServers": {
"kaiten": {
"command": "/путь/к/kaiten-mcp/start-mcp.sh"
}
}
}🔧 Troubleshooting
MCP инструменты не доступны
Симптом: Вы добавили MCP сервер, но AI не видит инструменты kaiten_*.
Решения:
Проверьте конфигурацию:
claude mcp listДолжен показать статус
✓ Connected.Перезапустите Claude Code:
После добавления MCP сервера закройте и откройте Claude Code
Или перезапустите терминальную сессию
Используйте правильную команду добавления:
# Для Claude Code в терминале claude mcp add kaiten /путь/к/kaiten-mcp/start-mcp.sh # Проверьте список claude mcp listУдалите старые конфигурации: Если раньше использовали
.claude/settings.json, удалите его:rm .claude/settings.json claude mcp add kaiten /путь/к/start-mcp.sh
Ошибка "No MCP servers configured"
Симптом: Команда claude mcp list показывает "No MCP servers configured".
Решение:
# Добавьте сервер снова
claude mcp add kaiten /путь/к/kaiten-mcp/start-mcp.sh
# Проверьте результат
claude mcp listMCP сервер не запускается
Симптом: Статус показывает "✗ Connection failed".
Проверки:
Права доступа:
chmod +x /путь/к/kaiten-mcp/start-mcp.shПуть к Node.js:
which node # Должен показать путь к nodeТест ручного запуска:
/путь/к/kaiten-mcp/start-mcp.sh # Должен запуститься без ошибок
Конфигурация не загружается
Симптом: SDK не видит настройки из .kaiten.env.
Решение:
Проверьте наличие файла:
ls -la .kaiten.envПроверьте приоритет загрузки: SDK ищет конфигурацию в таком порядке:
~/.kaiten/config(глобальная).kaiten.env(проектная).env(fallback)
Тест загрузки:
node -e " import { getConfig } from '/путь/к/kaiten-mcp/src/utils/config.js'; const config = getConfig(); console.log('API URL:', config.apiUrl ? '✓' : '✗'); console.log('API Token:', config.apiToken ? '✓' : '✗'); console.log('Space ID:', config.defaultSpaceId); console.log('Board ID:', config.defaultBoardId); "
Альтернатива: Прямое использование SDK
Если MCP не работает, можно использовать SDK напрямую:
node -e "
import { createSDK } from '/путь/к/kaiten-mcp/src/sdk.js';
const sdk = createSDK();
sdk.getCardsWithTag('agent-safe').then(cards => {
console.log('Найдено:', cards.length, 'карточек');
console.log(JSON.stringify(cards, null, 2));
}).catch(err => console.error('Ошибка:', err.message));
"Преимущества прямого использования SDK:
Работает без MCP интеграции
Полный доступ ко всем функциям
Легко тестировать и отлаживать
Недостатки:
Не интегрирован с AI ассистентами
Требует Node.js
Нет автоматической документации инструментов
Инструкции для AI
В каждом проекте создайте файл CLAUDE.md в корневой директории для инструкций AI (Claude Code, Cursor и др.).
Добавьте в CLAUDE.md вашего проекта:
## Работа с Kaiten
Когда я прошу посмотреть карточки, тикеты или задачи в Kaiten - используй MCP инструменты напрямую.
**Важно**: Перед началом работы проверяй метки карточки. Работай только с задачами, у которых есть метка `agent-safe`. Если у задачи есть метка `human-review-required` - не мерь её автоматически, требуй ручного просмотра.
**Минимизация токенов**: Используй фильтрацию по меткам вместо получения всех задач.
### Доступные MCP инструменты
**Поиск карточек:**
- `kaiten_find_cards` с параметром `tagName: "agent-safe"` - Найти карточки по метке
- `kaiten_card` с параметром `cardId: <id>, simple: true` - Детали карточки (человекочитаемый)
- `kaiten_card` с параметром `cardId: <id>` - Детали карточки (JSON)
**Навигация:**
- `kaiten_spaces` - Список пространств
- `kaiten_boards` с параметром `spaceId: <id>` - Список досок
- `kaiten_columns` с параметром `boardId: <id>` - Список колонок
**CRUD операции:**
- `kaiten_create_card` с параметрами `title, boardId, columnId, [description], [laneId]` - Создать карточку. **Рекомендуется указывать `laneId`**, иначе карточка попадёт на дефолтную lane доски.
- `kaiten_update_card` с параметрами `cardId, data` - Обновить карточку
- `kaiten_delete_card` с параметром `cardId` - Удалить карточку
- `kaiten_move_card` с параметрами `cardId, columnId, [laneId]` - Переместить карточку
- `kaiten_assign_card` с параметрами `cardId, userId` - Назначить исполнителя
**Дочерние карточки и комментарии:**
- `kaiten_create_child_card` с параметрами `parentId, title` - Создать дочернюю карточку
- `kaiten_get_child_cards` с параметром `cardId` - Список дочерних карточек
- `kaiten_get_all_child_cards` с параметром `cardId` - Список всех дочерних карточек (включая вложенные)
- `kaiten_get_parent` с параметром `cardId` - Получить родительскую карточку
- `kaiten_attach_to_parent` с параметрами `cardId, parentId, position` - Привязать карточку к родителю
- `kaiten_detach_from_parent` с параметром `cardId` - Отвязать карточку от родителя
- `kaiten_add_comment` с параметрами `cardId, text` - Добавить комментарий
- `kaiten_get_comments` с параметром `cardId` - Список комментариев
**Метки:**
- `kaiten_add_tag` с параметрами `cardId, tagName` - Добавить метку
- `kaiten_remove_tag` с параметрами `cardId, tagName` - Удалить метку
**Файлы:**
- `kaiten_get_files` с параметром `cardId` - Список файлов карточки
- `kaiten_download_file` с параметрами `cardId, fileId, [dir]` - Скачать файл в временную директорию
- `kaiten_download_all_files` с параметром `cardId, [dir]` - Скачать все файлы карточки
- `kaiten_clean_temp` с параметром `[dir]` - Очистить временную директорию
**Git интеграция:**
- `kaiten_git_branch` с параметром `cardId` - Создать ветку для задачи
- `kaiten_git_checkout` с параметром `cardId` - Переключиться на ветку задачи
- `kaiten_git_commit` с параметрами `cardId, message` - Закоммитить изменения
- `kaiten_git_status` - Показать статус git
- `kaiten_git_push` с параметром `cardId` - Запушить ветку
### Оптимальный workflow
```javascript
// 1. Найти задачи для агента
kaiten_find_cards({ tagName: "agent-safe" })
// 2. Создать ветку для задачи
kaiten_git_branch({ cardId: 12345 })
// 3. Внести изменения и закоммитить
// ...работа над кодом...
kaiten_git_commit({ cardId: 12345, message: "Начал работу" })
// 4. Проверить статус
kaiten_git_status({})
// 5. Запушить
kaiten_git_push({ cardId: 12345 })Избегай: kaiten_cards без параметров - он загружает все задачи (~3000-6000 байт)
### Пример для других AI
Для Cursor, Copilot или других AI можно использовать те же инструкции - формат совместим.
## Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
Remote MCP for Kanban AI boards—manage projects, tasks, and comments from AI tools.
Related MCP Servers
- AlicenseBqualityBmaintenanceLightweight ClickUp MCP server for task management with 37 tools and token-optimized responses to reduce API verbosity.3741 npm3MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for integrating Kaiten API with Claude Desktop, enabling management of cards, comments, spaces, and boards with advanced features like verbosity control, response format selection, and auto-truncation.6 npm31MIT
- AlicenseAqualityDmaintenanceMCP server for Kaiten project management, providing 63 tools for managing cards, comments, checklists, time tracking, and more. Enables AI assistants to interact with Kaiten workspaces through natural language.6319 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for managing Kaiten tasks through AI agents like Claude, enabling task retrieval, creation, updating, and time logging.14 npm2MIT