Kaiten MCP: 63 tools

kaiten-mcp

An npm package with 63 tools for Kaiten covering spaces, boards, cards, checklists, sprints and custom fields, part of the WWmcp series

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

  • Can delete spaces, boards, columns and cards
  • The token gives user-level rights to change data in Kaiten
All reasons and checks
Russian stack

theyahia/kaiten-mcp

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/theyahia-kaiten-mcp

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

Other ways to install

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 --env 'KAITEN_DOMAIN=<KAITEN_DOMAIN value>' --env 'KAITEN_TOKEN=<your KAITEN_TOKEN>' kaiten -- npx -y @theyahia/kaiten-mcp

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

{
  "mcpServers": {
    "kaiten": {
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/kaiten-mcp"
      ],
      "env": {
        "KAITEN_DOMAIN": "<KAITEN_DOMAIN value>",
        "KAITEN_TOKEN": "<your KAITEN_TOKEN>"
      }
    }
  }
}

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

Keys and settings

KAITEN_DOMAINrequired
KAITEN_TOKENsecret, required

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": {
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/kaiten-mcp"
      ],
      "env": {
        "KAITEN_DOMAIN": "<KAITEN_DOMAIN value>",
        "KAITEN_TOKEN": "<your KAITEN_TOKEN>"
      }
    }
  }
}

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_DOMAINrequired
KAITEN_TOKENsecret, required

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","type":"stdio","command":"npx","args":["-y","@theyahia/kaiten-mcp"],"env":{"KAITEN_DOMAIN":"<KAITEN_DOMAIN value>","KAITEN_TOKEN":"<your KAITEN_TOKEN>"}}'

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

{
  "servers": {
    "kaiten": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/kaiten-mcp"
      ],
      "env": {
        "KAITEN_DOMAIN": "<KAITEN_DOMAIN value>",
        "KAITEN_TOKEN": "<your KAITEN_TOKEN>"
      }
    }
  }
}

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

Keys and settings

KAITEN_DOMAINrequired
KAITEN_TOKENsecret, required

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 --env 'KAITEN_DOMAIN=<KAITEN_DOMAIN value>' --env 'KAITEN_TOKEN=<your KAITEN_TOKEN>' -- npx -y @theyahia/kaiten-mcp

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

[mcp_servers.kaiten]
command = "npx"
args = ["-y", "@theyahia/kaiten-mcp"]
env = { KAITEN_DOMAIN = "<KAITEN_DOMAIN value>", KAITEN_TOKEN = "<your KAITEN_TOKEN>" }

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

Keys and settings

KAITEN_DOMAINrequired
KAITEN_TOKENsecret, required

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 ~/.gemini/settings.json, for all projects

{
  "mcpServers": {
    "kaiten": {
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/kaiten-mcp"
      ],
      "env": {
        "KAITEN_DOMAIN": "<KAITEN_DOMAIN value>",
        "KAITEN_TOKEN": "<your KAITEN_TOKEN>"
      }
    }
  }
}

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

Keys and settings

KAITEN_DOMAINrequired
KAITEN_TOKENsecret, required

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": {
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/kaiten-mcp"
      ],
      "env": {
        "KAITEN_DOMAIN": "<KAITEN_DOMAIN value>",
        "KAITEN_TOKEN": "<your KAITEN_TOKEN>"
      }
    }
  }
}

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_DOMAINrequired
KAITEN_TOKENsecret, required

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": {
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/kaiten-mcp"
      ],
      "env": {
        "KAITEN_DOMAIN": "<KAITEN_DOMAIN value>",
        "KAITEN_TOKEN": "<your KAITEN_TOKEN>"
      }
    }
  }
}

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_DOMAINrequired
KAITEN_TOKENsecret, required

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": {
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/kaiten-mcp"
      ],
      "env": {
        "KAITEN_DOMAIN": "<KAITEN_DOMAIN value>",
        "KAITEN_TOKEN": "<your KAITEN_TOKEN>"
      }
    }
  }
}

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

Keys and settings

KAITEN_DOMAINrequired
KAITEN_TOKENsecret, required

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": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@theyahia/kaiten-mcp"
      ],
      "environment": {
        "KAITEN_DOMAIN": "<KAITEN_DOMAIN value>",
        "KAITEN_TOKEN": "<your KAITEN_TOKEN>"
      }
    }
  }
}

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

Keys and settings

KAITEN_DOMAINrequired
KAITEN_TOKENsecret, required

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": {
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/kaiten-mcp"
      ],
      "env": {
        "KAITEN_DOMAIN": "<KAITEN_DOMAIN value>",
        "KAITEN_TOKEN": "<your KAITEN_TOKEN>"
      }
    }
  }
}

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

Keys and settings

KAITEN_DOMAINrequired
KAITEN_TOKENsecret, required

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": {
      "command": "npx",
      "args": [
        "-y",
        "@theyahia/kaiten-mcp"
      ],
      "env": {
        "KAITEN_DOMAIN": "<KAITEN_DOMAIN value>",
        "KAITEN_TOKEN": "<your KAITEN_TOKEN>"
      }
    }
  }
}

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

Keys and settings

KAITEN_DOMAINrequired
KAITEN_TOKENsecret, required

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 25, 2026, commit 74d58c3.

Text for your agent

Create a token in Kaiten (Profile → API tokens) and connect the server with claude mcp add kaiten -e KAITEN_DOMAIN=your-domain -e KAITEN_TOKEN=your-token -- npx -y @theyahia/kaiten-mcp

Other ways from the author
{
  "mcpServers": {
    "kaiten": {
      "command": "npx",
      "args": ["-y", "@theyahia/kaiten-mcp"],
      "env": {
        "KAITEN_DOMAIN": "your-domain",
        "KAITEN_TOKEN": "your-api-token"
      }
    }
  }
}

The claude_desktop_config.json snippet from the README.

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

What it does

The server covers most of the Kaiten API: spaces, boards, columns and lanes with create and delete, cards with rich filters by board, tag, owner, deadlines and state, comments, card members and tags, checklists, child cards, external links, blockers, sprints and custom properties. List tools return a trimmed field projection to save context, while get and mutating tools return the full API JSON. It runs over stdio by default but can also serve as a Streamable HTTP server with /health and /mcp endpoints. SCIM, bulk imports, an add-on framework and webhooks are deliberately left out.

Who it is for. For Kaiten teams that want the most complete possible set of operations on boards, cards and sprints.

Good fit when

  • You need broad API coverage: sprints, custom fields, blockers, child cards
  • You want a ready npm package with no build step
  • You need both local stdio and HTTP for a team

Not a fit when

  • You need SCIM provisioning, bulk imports or webhooks: deliberately not implemented
  • You work with Kaiten documents and their inline comments: not covered here

Example request

Create a task in the In Progress column of the Sprint 23 board in Kaiten, assign Alex and add the bug tag

Limitations

Single author, part of the personal WWmcp series of 46 MCP servers for emerging markets. Document and iteration operations are not implemented yet, the author asks to confirm their request format via an issue. CORS is off by default in HTTP mode.

How to disable. Remove the kaiten server with claude mcp remove kaiten, or delete it from claude_desktop_config.json.

MCP

Transport
stdio, http
Authentication
API key
Environment variables
Environment variables
KAITEN_TOKEN
required, secret
Bearer token from Profile → API tokens
KAITEN_DOMAIN
required
Subdomain or full host, required unless KAITEN_BASE_URL is set
KAITEN_BASE_URL
Full base URL for a self-hosted Kaiten, overrides KAITEN_DOMAIN
KAITEN_HTTP_CORS_ORIGIN
Allowed origin for HTTP mode, CORS is off by default

Security check

  • Can delete spaces, boards, columns and cards
  • The token gives user-level rights to change data in Kaiten

README in short

The README gives a quick start for Claude Desktop, Claude Code, Cursor and Windsurf, explains getting a token and subdomain, lists the 63 tools by section (spaces, boards, cards, comments, members and tags, checklists, child cards, links, blockers, reference data), describes the HTTP mode, and explicitly lists what is not implemented. It ends with links to the author's other Russian-stack MCP servers: planfix-mcp, megaplan-mcp, yandex-tracker-mcp.

FAQ

How is this server different from the others?

By the broadest coverage: 63 tools including sprints, custom fields, blockers and child cards.

Can it work with a self-hosted Kaiten?

Yes, the KAITEN_BASE_URL variable sets the full API address and takes priority over KAITEN_DOMAIN.

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: 63 tools

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