MCP server for Kaiten — gives AI agents access to boards, cards, and properties via Model Context Protocol.
Built on top of kaiten-sdk.
mise — a tool version manager. It will install the required version automatically:
mise use github:alldmeat/kaiten-mcpDownload the binary for your platform from the releases page.
swift build -c release
# Binary: .build/release/kaiten-mcpGet your API token at https://<your-company>.kaiten.ru/profile/api-key.
Credentials are stored in ~/.config/kaiten/config.json (shared with the CLI):
{
"url": "https://<your-company>.kaiten.ru/api/latest",
"token": "<your-api-token>"
}Or set credentials through MCP after connecting:
- Call
kaiten_loginwithurlandtoken. - The server starts even without credentials; API tools validate config lazily and return an error telling you to run
kaiten_loginwhen credentials are missing. - Call
kaiten_read_logsto get MCP log file path and contents (optionallytail_lines).
See the Integration Guide for step-by-step instructions for:
- Claude Desktop
- Claude Code (CLI)
- GitHub Copilot (VS Code)
- GitHub Copilot CLI
- Cursor
- OpenAI Codex CLI
- Windsurf
| Tool | Description |
|---|---|
kaiten_list_cards |
List cards on a board (paginated) |
kaiten_get_card |
Get a card by ID |
kaiten_create_card |
Create a new card |
kaiten_update_card |
Update a card |
kaiten_get_card_members |
Get card members |
kaiten_get_card_comments |
Get card comments |
kaiten_create_comment |
Add a comment to a card |
kaiten_get_card_baselines |
Get card baselines |
kaiten_list_external_links |
List external links on a card |
kaiten_add_external_link |
Add an external link to a card |
kaiten_remove_external_link |
Remove an external link from a card |
| Tool | Description |
|---|---|
kaiten_list_spaces |
List all spaces |
kaiten_create_space |
Create a space |
kaiten_get_space |
Get a space by ID |
kaiten_update_space |
Update a space |
| Tool | Description |
|---|---|
kaiten_list_boards |
List boards in a space |
kaiten_get_board |
Get a board by ID |
kaiten_create_board |
Create a board |
kaiten_update_board |
Update a board |
| Tool | Description |
|---|---|
kaiten_get_board_columns |
Get columns of a board |
kaiten_create_column |
Create a column |
kaiten_update_column |
Update a column |
kaiten_delete_column |
Delete a column |
kaiten_list_subcolumns |
List subcolumns |
kaiten_create_subcolumn |
Create a subcolumn |
kaiten_update_subcolumn |
Update a subcolumn |
kaiten_delete_subcolumn |
Delete a subcolumn |
| Tool | Description |
|---|---|
kaiten_get_board_lanes |
Get lanes of a board |
kaiten_create_lane |
Create a lane |
kaiten_update_lane |
Update a lane |
| Tool | Description |
|---|---|
kaiten_list_custom_properties |
List custom property definitions |
kaiten_get_custom_property |
Get a custom property by ID |
kaiten_get_custom_property_select_values |
Get available select/multi-select values for a property |
kaiten_update_card_properties |
Update custom property values on a card |
| Tool | Description |
|---|---|
kaiten_get_sprint_summary |
Get sprint summary |
| Tool | Description |
|---|---|
kaiten_configure |
Manage preferences (boards/spaces) |
kaiten_get_preferences |
Get current preferences |
kaiten_login |
Save shared API credentials (url, token) |
kaiten_read_logs |
Read MCP log file path and text content |
The config file at ~/.config/kaiten/config.json is shared between MCP and CLI. You only need to configure it once (see Configure Credentials above).
User preferences are stored separately in ~/.config/kaiten/preferences.json:
{
"myBoards": [
{ "id": 123, "alias": "team" }
],
"mySpaces": [
{ "id": 456 }
]
}- Swift 6.2+
- macOS 15+ (ARM) / Linux (x86-64, ARM)
MIT