By stillfrozen
Kaiten project management integration — access boards, cards, sprints, and backlog analytics from Kaiten directly in Cowork
Analyze backlog on a Kaiten board — card counts by column, blockers, workload by member, overdue items. Use when the user asks about backlog health, workload, bottlenecks, or board analytics.
Get detailed structure of a Kaiten board — columns, lanes, WIP limits. Use when the user asks about a specific board's structure or layout.
List all spaces and boards from Kaiten. Use when the user asks about their Kaiten boards, spaces, or wants to see available boards.
Get full details of a Kaiten card — description, comments, checklists, blockers, children, history. Use when the user asks about a specific card or task.
List and search cards on a Kaiten board with filtering. Use when the user asks about cards, tasks, or items on a board.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Remote MCP server that connects Claude to Kaiten project management. Deploy your own instance, add it as a custom connector in Claude, and work with your boards, cards, sprints, and backlog directly from chat.
| Tool | Description |
|---|---|
list-boards | List all spaces and boards, optionally filter by name |
get-board | Board structure: columns with types and WIP limits, subcolumns, lanes |
list-cards | Cards with flexible filters: board, column, lane, member, owner, sprint, tags, state, dates, overdue, ASAP, text search |
search-cards | Search cards across all boards by text query |
get-card | Full card details: description, comments, checklists, blockers, children, parents, external links, files, time logs, custom properties, location history |
get-card-blockers | Detailed blocker info: reason, blocking card, released status, due date |
get-card-time-logs | Time tracking logs: who spent how much time, on which date, with what role |
get-card-external-links | External links attached to a card |
list-sprints | Sprints with filtering by active status, velocity, committed points |
get-sprint-cards | Cards in a specific sprint |
get-current-user | Currently authenticated user info |
backlog-analytics | Board analytics: distribution by column, blockers, workload, aging, due dates |
Go to your Kaiten profile page Settings > API keys > create a new token.
Your Kaiten host is the full domain from your browser URL bar, e.g. mycompany.kaiten.ru.
KAITEN_HOST=mycompany.kaiten.ru
KAITEN_TOKEN=your-kaiten-api-token
OAUTH_CLIENT_ID=kaiten-claude
OAUTH_CLIENT_SECRET=generate-a-long-random-string
OWNER_PASSWORD=set-a-strong-password
OAUTH_REDIRECT_URIS=https://claude.ai/api/mcp/auth_callback
PORT=3000
Generate
OAUTH_CLIENT_SECRETwith:openssl rand -hex 32Generate
OWNER_PASSWORDwith:openssl rand -base64 24(or pick a long passphrase you can remember — you'll type it each time you reconnect Claude).
OAUTH_REDIRECT_URISis a comma-separated whitelist of allowed OAuth callback URIs. For Claude custom connectors, usehttps://claude.ai/api/mcp/auth_callback. If Claude shows a different URI during the authorize flow, add it here and redeploy.Raw Editor quirk: Railway stores values literally, including any surrounding quotes you paste. The server defensively strips a matching pair of outer single/double quotes from every env var, so both
KAITEN_HOST=mycompany.kaiten.ruandKAITEN_HOST="mycompany.kaiten.ru"work. Unquoted form is still recommended (fewer surprises in downstream tooling).The server will refuse to start if any of
OAUTH_CLIENT_ID,OAUTH_CLIENT_SECRET,OWNER_PASSWORD,OAUTH_REDIRECT_URIS,KAITEN_HOST, orKAITEN_TOKENis missing. This is intentional — it prevents an accidentally-misconfigured instance from running with authentication disabled.
https://your-domain.up.railway.app/health — should return {"status":"ok"}Kaitenhttps://your-domain.up.railway.app/mcpOAUTH_CLIENT_ID (e.g. kaiten-claude)OAUTH_CLIENT_SECRETOWNER_PASSWORD on the consent page, then click Authorize — you'll be redirected back to ClaudeDone! Now in any Claude chat, you can ask things like:
The repo includes render.yaml for one-click deploy on Render. Same environment variables apply.
git clone https://github.com/Stillfrozen/kaiten-connector.git
cd kaiten-connector
npm install
npm run build
# Local dev (unauthenticated — explicit opt-in)
ALLOW_UNAUTHENTICATED=1 \
KAITEN_HOST=mycompany.kaiten.ru \
KAITEN_TOKEN=your-token \
npm start
For development with auto-reload:
npx claudepluginhub stillfrozen/kaiten-connector --plugin kaiten-connectorKaiten project management integration — access boards, cards, sprints, and backlog analytics from Kaiten directly in Cowork
Kaiten board automation tools
Markdown-based Kanban board managed by Claude Code. Cards live as .md files — no database, no server.
Complete JIRA automation suite with 14 specialized skills - issue management, agile workflows, time tracking, service management, bulk operations, and more
Persistent Kanban board workflow with TodoWrite sync and SessionStart resume
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.