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
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
Install
- Works in
- 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 reviewExtended 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 oneMCP
- Transport
- stdio
- Authentication
- API key
Environment variables
KAITEN_TOKENrequired, secret- Bearer token from the Kaiten profile
KAITEN_BASE_URLrequired- 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.
Related
All Kaiten toolsKaiten MCP with documents
kaiten-mcp
A 66-tool Kaiten MCP server, the only one in this batch supporting Kaiten documents and their inline comment threads
Kaiten MCP: 51 tools for cards
kaiten-mcp
A local Node.js 24 stdio server for finding and editing Kaiten cards, checklists, comments and custom fields from Codex and Claude Code
An MCP server for Kaiten: cards, comments, spaces and boards with control over response verbosity
Kaiten MCP
kaiten-mcp
Swift MCP server for Kaiten: spaces, boards, columns, lanes, cards, comments and custom properties
Read-only Kaiten MCP: 23 tools
kaiten-mcp
A Go binary with no writes: 23 read tools for Kaiten, every request is a GET, wired into Codex, Claude Code and Claude Desktop
Kaiten MCP Tools: read cards and attachments, 37 tools
kaiten-mcp-tools
A read-only npm package with 37 tools for cards, boards, documents and time tracking that downloads original attachments for the agent to analyze
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.