Connects Claude to the Kaiten kanban API with 10 tools covering boards, columns, cards, comments, tags, and users. You can list boards and columns, create and update cards, move them between columns, add comments, and query workspace metadata. Requires a Kaiten API token and your subdomain. Useful if you're managing tasks in Kaiten and want Claude to read board state, create cards from conversations, update ticket status, or post progress updates without leaving your chat. Part of a Russian API MCP series. Straightforward stdio transport via npx.
📦 Part of WWmcp — Emerging Markets MCP — 114 MCP servers for non-Western APIs (Brazil/MENA/Gulf/SE Asia/Africa/CIS).
MCP server for the Kaiten kanban / project-management API. 63 tools covering spaces, boards, columns, lanes, cards (with rich filters), comments, members, tags, checklists, child cards, external links, blockers, card types, sprints, custom properties, and users.
Part of the Russian API MCP series by @theYahia.
Add to your claude_desktop_config.json:
{
"mcpServers": {
"kaiten": {
"command": "npx",
"args": ["-y", "@theyahia/kaiten-mcp"],
"env": {
"KAITEN_DOMAIN": "your-domain",
"KAITEN_TOKEN": "your-api-token"
}
}
}
}
claude mcp add kaiten -e KAITEN_DOMAIN=your-domain -e KAITEN_TOKEN=your-token -- npx -y @theyahia/kaiten-mcp
{
"kaiten": {
"command": "npx",
"args": ["-y", "@theyahia/kaiten-mcp"],
"env": { "KAITEN_DOMAIN": "your-domain", "KAITEN_TOKEN": "your-api-token" }
}
}
mycompany from mycompany.kaiten.ru).| Variable | Required | Description |
|---|---|---|
KAITEN_DOMAIN | Yes* | Subdomain (mycompany) or full host (mycompany.kaiten.io). A bare subdomain resolves to .kaiten.ru. |
KAITEN_TOKEN | Yes | Bearer token from Profile → API tokens. |
KAITEN_BASE_URL | No | Full API base for self-hosted / on-premise Kaiten, e.g. https://kaiten.mycorp.ru/api/latest. Overrides KAITEN_DOMAIN. |
* KAITEN_DOMAIN is required unless KAITEN_BASE_URL is set.
The token needs permission for the entities you use: read tools need view rights, and create/update/delete tools need edit rights.
"Создай задачу в колонке 'In Progress' доски 'Sprint 23', назначь @alex, добавь тег bug"
The agent chains list_spaces → list_boards → list_columns → create_card → list_users → add_card_member → add_card_tag.
Counts are derived from the registry at startup; the server logs the exact number on launch.
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 (rich filters: board/column/lane/space, query, tag, type, owner, responsible, members, states, condition, archived, asap, overdue, due dates, ordering) · get_card · create_card · update_card (title, description, owner, due date, asap, size) · move_card (column + lane) · 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
List tools return a compact projection (key fields only) to keep token usage low on large boards.
get_*tools and all mutations return the full API JSON.
By default the server speaks stdio (for Claude Desktop / Code). To run it as a streamable-HTTP server instead:
kaiten-mcp --http 3000
# or
HTTP_PORT=3000 kaiten-mcp
GET /health → { status, tools, version }POST /mcp → MCP streamable-HTTP endpointCORS is opt-in: set KAITEN_HTTP_CORS_ORIGIN to the allowed origin (the endpoint acts on your token, so there is no wildcard default).
List all spaces, then the boards in space 5
Show columns and lanes on board 123
Create a card "Fix login bug" on board 123, column 456
Set card 789's due date to next Friday and mark it ASAP
Add @alex as a member of card 789 and tag it "bug"
Add a checklist "QA" to card 789 with items "write tests" and "deploy"
Move card 789 to column "Done"
Who am I? (get_current_user)
KAITEN_TOKEN is valid and has permission for the entity. The server reports auth failures explicitly..kaiten.io / self-hosted — set KAITEN_DOMAIN to the full host (acme.kaiten.io) or KAITEN_BASE_URL to your full API base.list_boards returns nothing without space_id — Kaiten lists boards per space; pass space_id (the documented path).These exist in the Kaiten API but are intentionally out of scope for an interactive assistant: SCIM provisioning, bulk Imports, the Addons framework, and webhook subscription management. Documents and iterations, plus write operations for custom properties / card types, are not yet exposed (their request shapes need confirmation against a live instance) — open an issue if you need them.
npm install
npm run dev # run from source (tsx)
npm run build # compile to dist/
npm test # vitest
npm run coverage # vitest + coverage
npm run lint # eslint
npm run typecheck # tsc --noEmit
Official Kaiten API docs: https://developers.kaiten.ru
Browse all 114 servers in the WWmcp catalog.
MIT
Part of WWmcp — the emerging-markets MCP catalog. ⭐ Star the catalog if you find these servers useful, and open an issue to request a server for another non-Western API.
KAITEN_DOMAIN*secretAPI key for the service