Kaiten MCP with team hosting
kaiten-mcp
A Kaiten MCP server on PyPI with local stdio and a remote Streamable HTTP mode for a whole team via Docker or Kubernetes
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
- Creates and updates cards on a real board
- In team mode the server is hosted separately, tokens are passed to its side
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/evvfebruary-kaiten-mcpDetects 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_API_TOKEN=<your KAITEN_API_TOKEN>' kaiten-mcp -- uvx kaiten-mcp==0.1.0Or add to the file .mcp.json, in the project
{
"mcpServers": {
"kaiten-mcp": {
"command": "uvx",
"args": [
"kaiten-mcp==0.1.0"
],
"env": {
"KAITEN_API_TOKEN": "<your KAITEN_API_TOKEN>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
KAITEN_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
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": "uvx",
"args": [
"kaiten-mcp==0.1.0"
],
"env": {
"KAITEN_API_TOKEN": "<your KAITEN_API_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_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
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":"uvx","args":["kaiten-mcp==0.1.0"],"env":{"KAITEN_API_TOKEN":"<your KAITEN_API_TOKEN>"}}'Or add to the file .vscode/mcp.json, in the project
{
"servers": {
"kaiten-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"kaiten-mcp==0.1.0"
],
"env": {
"KAITEN_API_TOKEN": "<your KAITEN_API_TOKEN>"
}
}
}
}If the file already exists, add the server inside the servers key.
Keys and settings
KAITEN_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
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 --env 'KAITEN_API_TOKEN=<your KAITEN_API_TOKEN>' -- uvx kaiten-mcp==0.1.0Or add to the file ~/.codex/config.toml, for all projects
[mcp_servers.kaiten-mcp]
command = "uvx"
args = ["kaiten-mcp==0.1.0"]
env = { KAITEN_API_TOKEN = "<your KAITEN_API_TOKEN>" }If the file already exists, append the block to the end.
Keys and settings
KAITEN_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
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 -e 'KAITEN_API_TOKEN=<your KAITEN_API_TOKEN>' kaiten-mcp uvx kaiten-mcp==0.1.0Or add to the file ~/.gemini/settings.json, for all projects
{
"mcpServers": {
"kaiten-mcp": {
"command": "uvx",
"args": [
"kaiten-mcp==0.1.0"
],
"env": {
"KAITEN_API_TOKEN": "<your KAITEN_API_TOKEN>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
KAITEN_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
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": "uvx",
"args": [
"kaiten-mcp==0.1.0"
],
"env": {
"KAITEN_API_TOKEN": "<your KAITEN_API_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_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
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": "uvx",
"args": [
"kaiten-mcp==0.1.0"
],
"env": {
"KAITEN_API_TOKEN": "<your KAITEN_API_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_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
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": "uvx",
"args": [
"kaiten-mcp==0.1.0"
],
"env": {
"KAITEN_API_TOKEN": "<your KAITEN_API_TOKEN>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
KAITEN_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
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": [
"uvx",
"kaiten-mcp==0.1.0"
],
"environment": {
"KAITEN_API_TOKEN": "<your KAITEN_API_TOKEN>"
}
}
}
}If the file already exists, add the server inside the mcp key.
Keys and settings
KAITEN_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
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": "uvx",
"args": [
"kaiten-mcp==0.1.0"
],
"env": {
"KAITEN_API_TOKEN": "<your KAITEN_API_TOKEN>"
}
}
}
}If the file already exists, add the server inside the context_servers key.
Keys and settings
KAITEN_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
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": "uvx",
"args": [
"kaiten-mcp==0.1.0"
],
"env": {
"KAITEN_API_TOKEN": "<your KAITEN_API_TOKEN>"
}
}
}
}If the file already exists, add the server inside the mcpServers key.
Keys and settings
KAITEN_API_TOKENsecret, required- Kaiten API token from Profile > API key.
KAITEN_WORKSPACE_SLUGoptional- Kaiten workspace slug. Required unless KAITEN_BASE_URL is set.
KAITEN_BASE_URLoptional- Full Kaiten API root for on-prem or custom domains. Required unless KAITEN_WORKSPACE_SLUG is set.
Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.
Export KAITEN_API_TOKEN and KAITEN_WORKSPACE_SLUG, then run the server with uvx kaiten-mcp --transport stdio, or add it to Claude Code with claude mcp add --transport stdio kaiten -- uv run kaiten-mcp --transport stdio.
Other ways from the author
uvx kaiten-mcp --transport stdioRequires KAITEN_API_TOKEN and KAITEN_WORKSPACE_SLUG in the environment.
This is third-party code. Review the repository files before installing.
What it does
The server connects Kaiten spaces, boards, columns and lanes to tasks: list spaces and boards, create and update cards, a compact filtered task list, moves between columns, comments and tags. It runs locally over stdio via uvx with no repository clone, or as a remote Streamable HTTP server in Docker or Kubernetes, where each team member passes their own Kaiten token in the request header. Responses default to key fields only, paginated at 20 items, to keep the model's context small, and payload size is checked by dedicated benchmarks.
Who it is for. For Kaiten teams that want both a personal local server and a shared remote one for several people.
Good fit when
- You want to connect Kaiten to Cursor or Claude Code with no repo clone, via uvx
- You need a shared team server on Docker or Kubernetes, where everyone passes their own token
- Context economy matters: short lists and structured logs
Not a fit when
- You need checklists or time tracking: these tools are not in the list
- You expect browser OAuth: the server deliberately uses a bearer token per request only
Example request
Show tasks on board X in Kaiten and move card 1234 to the In Progress columnLimitations
No checklist or time-tracking tools, the set is limited to spaces, boards and cards. Requires Python 3.12+ and uv to run. The remote HTTP mode has no built-in OAuth, only a bearer token in the header.
How to disable. Stop the process or remove the kaiten entry from .cursor/mcp.json or Claude Code's .mcp.json.
MCP
- Transport
- stdio, http
- Authentication
- API key
| Environment variables | |
|---|---|
| KAITEN_API_TOKEN required, secret | Bearer token from the Kaiten profile |
| KAITEN_WORKSPACE_SLUG required | Instance slug, e.g. acme for acme.kaiten.ru; KAITEN_BASE_URL can be used instead |
| KAITEN_BASE_URL | Full API root for an on-prem install |
| KAITEN_HOST | Bind address for HTTP mode, defaults to 127.0.0.1 |
| KAITEN_PORT | Port for HTTP mode, defaults to 8000 |
Security check
- Creates and updates cards on a real board
- In team mode the server is hosted separately, tokens are passed to its side
README in short
The README explains running via uvx with no clone, connecting in Cursor and Claude Code through ready .cursor/mcp.json and .mcp.json files, deploying a remote Streamable HTTP server on Docker and Kubernetes with a per-request token model, an environment variable table, the token-saving approach with 20-item pages and field trimming, structured stderr logging, and an FAQ on how it differs from other kaiten-mcp servers.
FAQ
Do I need to clone the repository?
No, uvx downloads the kaiten-mcp package from PyPI and runs it in an isolated environment.
Can the server be shared by the whole team?
Yes, the Streamable HTTP mode on Docker or Kubernetes, where each person passes their own Kaiten bearer token in the request header.
Related
A self-hosted knowledge base with block-level references and a built-in MCP server for connecting AI agents to your notes
A CLI for every Google Workspace API with JSON output and agent skills: Drive, Gmail, Calendar, Sheets and more
Local search over Markdown notes, docs and meeting transcripts: keywords, semantic search and reranking, with an MCP server
A task manager for AI-driven development: breaks a PRD into dependent tasks and guides the agent through them via MCP or CLI