Kaiten MCP with space and board limits

kaiten-mcp

A Bun stdio server for Kaiten cards, documents and time logs with allow-lists for spaces, boards and attachment hosts and version-checked edits

  • 0 ★ on the repository
  • Last commit
MCP server

Extended access

Why this level

  • Writes and archives cards as the token owner
  • Space and board limits help but are set by the user himself
All reasons and checks
Russian stack

servertdot/kaiten-mcp

Install

Services

Manual install

{
  "mcpServers": {
    "kaiten": {
      "command": "bun",
      "args": ["run", "/absolute/path/to/kaiten-mcp/src/index.ts"],
      "env": {
        "KAITEN_TOKEN": "your-token",
        "KAITEN_BASE_URL": "https://your-company.kaiten.ru/api/v1"
      }
    }
  }
}

The Cursor settings snippet from the README.

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Writes and archives cards as the token owner
  • Space and board limits help but are set by the user himself

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

What it does

The Bun server gives an agent read and write access to Kaiten: card search, descriptions, comments, checklists, child links, attachments, linked documents and time logs. It reads the map of spaces with boards, columns and lanes, company documents by uid or key, tags, users, card types, blockers and the activity feed. It writes cards, moves them inside a space, archives them and edits linked Markdown documents. Limits come from the environment: allowed spaces and boards, a default space, an author check through `KAITEN_EXPECTED_ACTOR_ID` and an allow-list of attachment hosts with a 5 MiB cap. Editing a card needs `expected_version`, and document and attachment text is marked as untrusted data.

Who it is for. Teams that let an agent into a shared Kaiten and want to restrict it up front to chosen spaces, boards and an author check on edits.

Good fit when

  • The agent may work in one space only and neighbouring spaces must stay closed
  • Two edits hit the same card from different sides and a stale version should be refused rather than silently overwritten
  • You want a card attachment or linked document read and summarized
  • Time logs for cards have to be exported for a period for a labour report

Not a fit when

  • The agent has to move cards between spaces: the server forbids it
  • You want a ready `npx` package: installation is from a clone of the repository
  • The environment has no Bun: the server runs on it only

Example request

Find cards in the Development space with the bug tag and read the description and comments of the oldest one

MCP

Transport
stdio
Authentication
API key

Environment variables

KAITEN_TOKEN required, secret
Bearer token from the Kaiten profile
KAITEN_BASE_URL required
Domain or full API URL
KAITEN_SPACE_IDS
Allowed spaces, comma separated
KAITEN_ALLOWED_BOARD_IDS
Allowed boards for writes
KAITEN_EXPECTED_ACTOR_ID
Blocks writes when the token belongs to another user
KAITEN_FILE_HOSTS
Allow-list of attachment hosts

Limitations

Installation is from a clone of the repository through Bun 1.x, there is no npm package and no license is stated. Writes to Kaiten run as the token owner: `KAITEN_EXPECTED_ACTOR_ID` only refuses on a mismatch and cannot substitute the author. Attachments need an explicit host allow-list or files are not read. The live write check sits in a separate script behind `--confirm-live-write`. There are no stars, one author, and commits are regular, the latest on 27 October 2026.

How to disable. Remove the `kaiten` entry from the client MCP configuration or run `claude mcp remove kaiten` and revoke the token in your Kaiten profile.

FAQ

How do I confine the agent to one space?

Set `KAITEN_SPACE_IDS` with the allowed spaces and `KAITEN_DEFAULT_SPACE_ID`. For writes, `KAITEN_ALLOWED_BOARD_IDS` narrows access further.

What does `KAITEN_EXPECTED_ACTOR_ID` do?

The server refuses to write when the token belongs to a user other than the one you expect. It does not substitute the author: Kaiten always writes as the token owner.

What is needed to read attachments?

The file host in `KAITEN_FILE_HOSTS`, for example `files.your-company.kaiten.ru`. The 5 MiB default cap changes through `KAITEN_MAX_ATTACHMENT_BYTES`.

Why does an edit need `expected_version`?

The server compares the card version the agent read with the current one and refuses on a mismatch, which prevents overwriting someone else edit.

How can I test the server without writing?

`bun run smoke` starts the server over stdio and calls read tools only, with the same token and address.

Discussion

No questions or reviews yet.

Russian stack

A 66-tool Kaiten MCP server, the only one in this batch supporting Kaiten documents and their inline comment threads

MCP serverBroad access
Russian stack

A local Node.js 24 stdio server for finding and editing Kaiten cards, checklists, comments and custom fields from Codex and Claude Code

MCP serverBroad access
Russian stack

An MCP server for Kaiten: cards, comments, spaces and boards with control over response verbosity

MCP serverBroad access33Repository stars

Kaiten MCP

kaiten-mcp

Russian stack

Swift MCP server for Kaiten: spaces, boards, columns, lanes, cards, comments and custom properties

MCP serverBroad access20Repository stars
Russian stack

A Go binary with no writes: 23 read tools for Kaiten, every request is a GET, wired into Codex, Claude Code and Claude Desktop

MCP serverMinimal access

README in short

The text runs from requirements to a quick start, then two connection examples: JSON for Cursor and `config.toml` for Codex. A table of environment variables with the limits follows, then two tool lists, reads and writes, with required parameters such as `expected_version`. It also states that Kaiten writes as the token owner.

README badge

Report a problem