kaiten-mcp

An MCP server for Kaiten with 36 tools: cards, checklists, time tracking and day planning, local or remote with OAuth

MCP server

High risk

We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.

Why this level

  • Tools create, move, archive and delete cards in a live Kaiten workspace
  • The remote mode encrypts and stores teammates' personal tokens on a third-party Vercel deployment
All reasons and checks
Russian stack

aimuzov/kaiten-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/aimuzov-kaiten-mcp

Detects the agents on your machine, checks the risk and pins the version.

Other ways to install

Assembled automatically, review before installing.

This entry is high risk, so there is no one-click install. Review the code and add the config by hand.

Run in a terminal

claude mcp add --transport stdio kaiten-mcp -- npx kaiten-mcp

Or add to the file .mcp.json, in the project

{
  "mcpServers": {
    "kaiten-mcp": {
      "command": "npx",
      "args": [
        "kaiten-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.cursor/mcp.json, for all projects

{
  "mcpServers": {
    "kaiten-mcp": {
      "command": "npx",
      "args": [
        "kaiten-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

code --add-mcp '{"name":"kaiten-mcp","type":"stdio","command":"npx","args":["kaiten-mcp"]}'

Or add to the file .vscode/mcp.json, in the project

{
  "servers": {
    "kaiten-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "kaiten-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the servers key.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

codex mcp add kaiten-mcp -- npx kaiten-mcp

Or add to the file ~/.codex/config.toml, for all projects

[mcp_servers.kaiten-mcp]
command = "npx"
args = ["kaiten-mcp"]

If the file already exists, append the block to the end.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

gemini mcp add -s user kaiten-mcp npx kaiten-mcp

Or add to the file ~/.gemini/settings.json, for all projects

{
  "mcpServers": {
    "kaiten-mcp": {
      "command": "npx",
      "args": [
        "kaiten-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.config/devin/mcp_config.json, for all projects

{
  "mcpServers": {
    "kaiten-mcp": {
      "command": "npx",
      "args": [
        "kaiten-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Formerly Windsurf.

Add to the file cline_mcp_settings.json, for all projects

{
  "mcpServers": {
    "kaiten-mcp": {
      "command": "npx",
      "args": [
        "kaiten-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file .roo/mcp.json, in the project

{
  "mcpServers": {
    "kaiten-mcp": {
      "command": "npx",
      "args": [
        "kaiten-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

A fork of Roo Code, same .roo folders.

Add to the file opencode.json, in the project

{
  "mcp": {
    "kaiten-mcp": {
      "type": "local",
      "command": [
        "npx",
        "kaiten-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the mcp key.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.config/zed/settings.json, for all projects

{
  "context_servers": {
    "kaiten-mcp": {
      "command": "npx",
      "args": [
        "kaiten-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the context_servers key.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file .codeassistant/mcp.json, in the project

{
  "mcpServers": {
    "kaiten-mcp": {
      "command": "npx",
      "args": [
        "kaiten-mcp"
      ]
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

KAITEN_API_URLsecret, optional
API base, e.g. https://your-domain.kaiten.ru/api/latest
KAITEN_API_TOKENsecret, optional
Personal API token
KAITEN_DEFAULT_SPACE_IDoptional
Default space for list_boards without a space_id
KAITEN_REQUEST_TIMEOUT_MSoptional
Request timeout, ms (default 30000)
KAITEN_MAX_CONCURRENT_REQUESTSoptional
Max concurrent requests 1–20 (default 5)
KAITEN_LOG_LEVELoptional
error / warn / info / debug (default info)
KAITEN_LOG_FILEoptional
Log file path (otherwise stderr only)

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

You will need: Node.js

Checked against the repository on Sep 26, 2026, commit 2cc4a00.

Text for your agent

Install with npx kaiten-mcp or npm install -g kaiten-mcp, add the server with claude mcp add kaiten --env KAITEN_API_URL=https://your-domain.kaiten.ru/api/latest --env KAITEN_API_TOKEN=token -- kaiten-mcp, or leave the token unset and enter it interactively on first use.

Other ways from the author
claude mcp add kaiten --env KAITEN_API_URL=https://your-domain.kaiten.ru/api/latest --env KAITEN_API_TOKEN=your-token -- kaiten-mcp

Local stdio server, command from the README.

This is third-party code. Review the repository files before installing.

What it does

The project is a monorepo with a shared core and two connection modes. The local stdio server installs as the kaiten-mcp npm package and gives an agent 36 kaiten_* tools: spaces, boards, cards with full CRUD, comments, checklists, tags, members, time tracking and flexible card search. It includes ready day-planning tools: today's tasks, overdue cards and a one-call day plan. If the token is not set in advance, the server asks for it via the MCP elicitation mechanism on the first Kaiten call. The second mode, a Next.js app in apps/web, deploys to Vercel and becomes a remote server with OAuth 2.1 and PKCE: each teammate connects via a shared URL and enters their own Kaiten token, which is encrypted with JWE.

Who it is for. For Kaiten teams who want a full set of card management tools and convenient team access without handing out tokens in config files.

Good fit when

  • You need full card operations: creating, moving, checklists, time logs, tags and members
  • You want a ready day plan built from overdue and current tasks
  • You need a team-wide remote connection without a shared token in a config file

Not a fit when

  • You only need simple read operations with no writes
  • You cannot deploy the Next.js app to Vercel for the remote mode

Example request

Build me a plan for today: what is overdue and what needs to happen first

Limitations

0 stars, a single author. The remote mode requires deploying to Vercel and setting AUTH_SECRET to encrypt tokens; without it OAuth connections are impossible. In local mode without preset environment variables the token is requested interactively, but only if the client supports elicitation.

How to disable. Remove the kaiten-mcp server from your MCP client config; for the remote mode also remove the connector in Claude Desktop and stop the Vercel deployment.

MCP

Transport
stdio, http
Authentication
API key
Environment variables
Environment variables
KAITEN_API_URL
Kaiten API base URL, e.g. https://domain.kaiten.ru/api/latest
KAITEN_API_TOKEN
secret
Personal Kaiten API token; if unset, the server asks for it on first call
AUTH_SECRET
secret
OAuth token encryption key for the remote Vercel mode

Security check

  • Tools create, move, archive and delete cards in a live Kaiten workspace
  • The remote mode encrypts and stores teammates' personal tokens on a third-party Vercel deployment

README in short

The bilingual README describes two usage modes: a local stdio server from npm and a remote Vercel server with OAuth 2.1 and PKCE. It lists a table of 36 tools by group, all environment variables, interactive token requests via elicitation, connection instructions for Cowork, Claude Code and Claude Desktop, and the three-package monorepo architecture. MIT licensed.

FAQ

Do I need to put the token in the config beforehand?

No, if the client supports elicitation the server asks for the token on first Kaiten call and never writes it to disk.

Why is the remote mode better for a team?

Each teammate enters their own Kaiten token via OAuth 2.1 instead of reusing one shared token from a config.

Official

A self-hosted knowledge base with block-level references and a built-in MCP server for connecting AI agents to your notes

MCP serverMedium risk46.5KRepository stars
Editors’ pick

A CLI for every Google Workspace API with JSON output and agent skills: Drive, Gmail, Calendar, Sheets and more

CLIHigh risk31.2KRepository stars
Editors’ pick

Local search over Markdown notes, docs and meeting transcripts: keywords, semantic search and reranking, with an MCP server

CLIMedium riskNo VPN needed30.1KRepository stars
Editors’ pick

A task manager for AI-driven development: breaks a PRD into dependent tasks and guides the agent through them via MCP or CLI

MCP serverMedium risk28.1KRepository stars
Foxx AIkaiten-mcp

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.