Skip to main content
Glama
nedgar8

Kaiten MCP Server

by nedgar8

kaiten-mcp-server

MCP server exposing four Kaiten (kaiten.ru) operations as tools:

  • list_tasks — list/filter cards (board, column, space, text query, archived)

  • move_task — move a card to a given board/column/lane

  • set_responsible — set a card's responsible person (owner_id)

  • add_comment — add a comment to a card

Built on the Kaiten REST API.

Setup

uv sync

Set credentials as env vars:

export KAITEN_DOMAIN=mycompany        # -> https://mycompany.kaiten.ru/api/latest
# or set the full URL directly:
# export KAITEN_BASE_URL=https://mycompany.kaiten.ru/api/latest
export KAITEN_API_TOKEN=ksh_xxx       # from Kaiten user settings -> API tokens

Related MCP server: kaiten-mcp

Run

uv run kaiten-mcp-server

Runs over stdio, ready to be wired into any MCP client.

Wire into Claude Code / Claude Desktop

Add to your MCP config (e.g. claude_desktop_config.json or .mcp.json):

{
  "mcpServers": {
    "kaiten": {
      "command": "uv",
      "args": ["--directory", "/home/corfmann/PycharmProjects/kaiten-mcp-server", "run", "kaiten-mcp-server"],
      "env": {
        "KAITEN_DOMAIN": "mycompany",
        "KAITEN_API_TOKEN": "ksh_xxx"
      }
    }
  }
}

Notes

  • list_tasks returns a trimmed summary of each card (id, title, board/column/lane, owner, archived, due_date) to keep responses compact; extend _summarize_card in server.py if you need more fields.

  • Kaiten has no dedicated "responsible" field on the card-members endpoint — the responsible person is the card's owner_id, set via PATCH /cards/{id}, which is what set_responsible uses.

Available Tools

7 tools
add_commentA

Add a comment to a Kaiten task.

Args: card_id: ID of the card to comment on. text: Comment text (max 4096 characters).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes
card_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the comment text length limit (4096 characters), but does not mention permissions, reversibility, return values, or side effects. The action itself is accurately described, but significant behavioral context is missing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a one-line purpose followed by two parameter explanations. Every sentence adds value, with no filler or repetition of schema titles.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity, the presence of an output schema, and the clear parameter descriptions, the description covers the essentials. It does not discuss usage edge cases, but for a simple add-comment operation this is a minor gap rather than a critical omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no per-parameter descriptions (0% coverage), so the description compensates by explaining card_id as the target card and text as the comment content with a length limit. This adds the necessary meaning for both required arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('Add') and names the resource ('a comment to a Kaiten task'). It clearly differentiates from sibling tools like list_tasks or create_task by specifying the action of adding a comment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit when-to-use or when-not-to-use guidance, nor does it mention alternative tools. The usage is implied by the straightforward action, but the description relies on the tool name and sibling context rather than stating it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_taskA

Create a new Kaiten task (card) on a given board.

Args: title: Card title. board_id: Board to create the card on. column_id: Column to create it in (optional; defaults to the board's first column). lane_id: Lane to create it in (optional). description: Card description (optional). owner_id: User ID to set as responsible person (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
lane_idNo
board_idYes
owner_idNo
column_idNo
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does mention that column_id defaults to the board's first column, which is a useful behavioral detail. However, it does not disclose permissions, reversibility, or side effects beyond creation. This is a moderate amount of transparency for a create operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description begins with a single clear purpose sentence followed by a compact, well-formatted parameter list. Every line provides necessary information with no fluff or redundancy, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All 6 parameters are described with semantics, including optionality and defaults. Required parameters (title, board_id) are evident from the context and schema. The presence of an output schema means return values do not need to be explained in the description. The tool is fully specified for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, but the description compensates fully by explaining each parameter in plain language: 'Card title', 'Board to create the card on', 'Column to create it in (optional; defaults to the board's first column)', etc. This adds meaning well beyond the schema's bare titles and types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Create a new Kaiten task (card) on a given board', which clearly specifies the verb (create), resource (Kaiten task/card), and scope (on a given board). This distinguishes it from siblings like move_task, set_responsible, and add_comment, which perform different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating 'Create a new Kaiten task', but provides no explicit guidance on when to use this tool versus alternatives (e.g., move_task for moving existing cards). It does not mention exclusions or alternative tools, so the agent must infer suitability from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_boardsA

List Kaiten boards, optionally scoped to a single space.

Args: space_id: If given, only return boards in this space; otherwise return boards across all spaces you have access to.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It does disclose the space-scoping behavior and that it returns across accessible spaces. But it doesn't mention return format, sorting, or whether it includes archived boards. For a simple list tool, this is acceptable but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences plus an Args note. No redundancy, front-loaded purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation with one optional parameter and an existing output schema, the description is sufficient for understanding purpose and usage. It could mention permissions, but 'boards you have access to' covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explicitly explains the only parameter, space_id, including its effect (filtering to a space) and default behavior. Since the schema provides no descriptions, this is essential and well-handled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and resource ('Kaiten boards') and clarifies optional scoping by space, which distinguishes it from sibling tools like list_columns and list_tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains the optional space_id behavior and states the default scope (all accessible boards). However, it doesn't explicitly mention when to choose this tool over list_columns/list_tasks, though these are different resources. Some guidance on exclusions might be missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_columnsA

List the columns on a given Kaiten board.

Args: board_id: Board to list columns for.

ParametersJSON Schema
NameRequiredDescriptionDefault
board_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. The verb 'List' implies a read-only operation, but the description does not explicitly state that it avoids modifications, nor does it mention permissions or potential errors. It is minimally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence followed by a concise Args section. It is front-loaded with the action and includes necessary parameter context without any wasted words, making it appropriately sized and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with an output schema, the description adequately covers the purpose and parameter meaning. It does not need to explain return values due to the output schema, and it avoids over-specifying for a straightforward list operation. Minor gaps like edge cases or prerequisites are acceptable here.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage for its single parameter. However, the description compensates with an Args block explaining 'board_id: Board to list columns for,' which adds meaning beyond the schema's bare integer type. It fully covers the parameter's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'List the columns on a given Kaiten board,' using a specific verb and resource. It clearly distinguishes from sibling tools like list_tasks and list_boards by specifying it operates on columns for a given board.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It simply states the action, leaving the usage context implied rather than clearly defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tasksA

List Kaiten tasks (cards), optionally filtered by board, column, space, or text search.

Args: board_id: Only return cards on this board. column_id: Only return cards in this column. space_id: Only return cards in this space. query: Free-text search over card titles/descriptions. archived: If set, filter to archived (True) or active (False) cards. limit: Max cards to return (capped at 100).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
archivedNo
board_idNo
space_idNo
column_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the burden. It discloses the 100-card cap, filter semantics for archived (True/False), and clarifies query scope. It does not cover permissions or error behavior, but these are less critical for a read-oriented list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One-sentence purpose followed by a compact Args list. No filler; each line adds value. The structure is front-loaded and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, return values need not be described. The description fully covers the tool's purpose and all six parameters, with only a minor gap in explicit usage vs alternatives, but sibling names make context clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description's Args section explains every parameter's meaning, including default and cap. This far exceeds the schema's bare type/name information and fully compensates for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List Kaiten tasks (cards), optionally filtered by board, column, space, or text search' with a specific verb and resource. It distinguishes itself from sibling list tools (list_columns, list_boards) and action tools (create_task, move_task, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage when retrieving tasks with optional filters, and sibling tools are clearly different actions. It does not explicitly state when not to use or name alternatives, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move_taskA

Move a Kaiten task (card) to a given board (and optionally a specific column/lane).

Args: card_id: ID of the card to move. board_id: Destination board ID. column_id: Destination column ID on that board (optional). lane_id: Destination lane ID on that board (optional).

ParametersJSON Schema
NameRequiredDescriptionDefault
card_idYes
lane_idNo
board_idYes
column_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It states the action but does not mention side effects, required permissions, failure modes, or whether the move is reversible. This leaves significant ambiguity for a mutating operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief with a clear lead sentence and an Args list. Each sentence contributes, though the Args list could be considered somewhat redundant with the schema, but it adds explanatory value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is relatively simple with four parameters and an output schema, but the description lacks behavioral details and usage guidance, making it minimally adequate rather than fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning by explaining each parameter: card_id identifies the card, board_id is the destination board, and column_id/lane_id are optional location specifiers on that board. This clarifies the schema's bare integer fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Move', the resource 'Kaiten task (card)', and the destination (board, optionally column/lane). This distinguishes it from sibling tools like create_task or set_responsible.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for moving existing tasks but does not explicitly state when to use this over alternatives or any exclusions. No alternative tools are mentioned, so guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_responsibleA

Set the responsible person (owner) for a Kaiten task.

Args: card_id: ID of the card to update. user_id: Kaiten user ID to set as the card's responsible person.

ParametersJSON Schema
NameRequiredDescriptionDefault
card_idYes
user_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states the action and arguments, with no mention of side effects (e.g., overwriting existing owner), required permissions, error behavior, or idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a concise args list, front-loaded with the action. It contains no unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple and both parameters are described, but behavioral specifics (e.g., whether the existing owner is replaced, constraints on user_id) are omitted. The output schema may cover return values, but edge cases are not addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema only provides parameter names and types (integer). The description adds meaning by describing card_id as the 'ID of the card to update' and user_id as the 'Kaiten user ID' to set, compensating for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Set') and identifies the resource ('responsible person for a Kaiten task'). This clearly distinguishes it from sibling tools like list_columns, create_task, and move_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. Because it is the only tool for assigning ownership, usage is implied, but no when-not guidance or alternative tool mentions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct resource and action: list_columns, list_tasks, and list_boards are clearly separated read operations, while create_task, move_task, set_responsible, and add_comment cover distinct mutations. No two tools have overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (list_*, create_, move_, set_, add_) using lowercase with underscores. The convention is uniform and predictable across the entire set.

Tool Count5/5

With 7 tools, the server is well-scoped for a Kanban/board management domain. Each tool serves a clear core function without redundancy or bloat, fitting comfortably within the ideal 3-15 range.

Completeness3/5

The surface covers board/column/task listing, task creation, movement, commenting, and responsible-party assignment. However, there is no update tool for task title/description, no delete or archive operation (despite an archived filter existing), and no direct get-task-by-id, leaving notable lifecycle gaps.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for integrating Kaiten API with Claude Desktop, enabling management of cards, comments, spaces, and boards with advanced features like verbosity control, response format selection, and auto-truncation.
    20
    30
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for interacting with Kaiten project management through its REST API. Enables managing spaces, boards, cards, comments, checklists, tags, and time logs.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for Kaiten project management, providing 63 tools for managing cards, comments, checklists, time tracking, and more. Enables AI assistants to interact with Kaiten workspaces through natural language.
    35
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for managing Kaiten tasks through AI agents like Claude, enabling task retrieval, creation, updating, and time logging.
    644
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nedgar8/kaiten-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server