odnashestaia/mcp_server
If you are the rightful owner of mcp_server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Kaiten MCP Server is a tool designed to manage Kaiten's Spaces, Boards, and Cards using CRUD operations, with support for MCP Inspector and an integrated mini-client.
Kaiten MCP Server
MCP-ΡΠ΅ΡΠ²Π΅Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Kaiten (Spaces, Boards, Cards): CRUD-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, Π·Π°ΠΏΡΡΠΊ ΠΏΠΎ STDIO, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° MCP Inspector ΠΈ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΈΠ½ΠΈ-ΠΊΠ»ΠΈΠ΅Π½Ρ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
Python 3.11 ΠΈΠ»ΠΈ 3.12 uv (ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²/ΡΠ°Π½Π½Π΅Ρ)
- Linux/macOS:
curl -Ls https://astral.sh/uv/install.sh | sh
- Windows PowerShell:
irm https://astral.sh/uv/install.ps1 | iex
ΠΡΠΎΠ΅ΠΊΡ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ, ΡΡΠΎ Π·Π°ΠΏΡΡΠΊ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Ρ PYTHONPATH, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ src.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΠ°ΠΉΠ» .env Π² ΠΊΠΎΡΠ½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ»ΠΈ ΡΠΊΡΠΏΠΎΡΡΠΈΡΡΠΉΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ Π²ΡΡΡΠ½ΡΡ. .env.example
KAITEN_BASE_URL=https://nikolay1979laptop.kaiten.ru/api/v1
KAITEN_API_TOKEN=00000000000000000000000000000000
RPS_LIMIT=5
REQUEST_TIMEOUT=20
LOG_LEVEL=INFO
PYTHONPATH=src
ΠΠ½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°. Π£ΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΠΎΠΊΠ΅Π½ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠΉ URL Π²Π°ΡΠ΅Π³ΠΎ Kaiten.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ
uv sync
ΠΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ lock-ΡΠ°ΠΉΠ»Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° Π»Π΅ΡΡ ΡΠ΅ΡΠ΅Π· uv run.
ΠΠ°ΠΏΡΡΠΊ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ
npx @modelcontextprotocol/inspector
ΠΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΠ²Π΅Ρ ΡΠ»ΡΡΠ°Π΅Ρ STDIO Π² ΡΠΎΡΠΌΠ°ΡΠ΅ MCP.
ΠΡΠ·ΠΎΠ² ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²
MCP Inspector (STDIO):
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
- Transport Type: STDIO
- Command: uv
- Arguments: run -m server.server serve
ΠΠ°Π»Π΅Π΅ Π½Π°ΠΆΠΌΠΈΡΠ΅ Connect. Π tools Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π² ΠΏΠΎΠ»Π΅ Arguments (Π·Π°ΠΏΡΠΎΡ) ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ JSON Ρ Π²Π΅ΡΡ Π½ΠΈΠΌ ΠΊΠ»ΡΡΠΎΠΌ params.
ΠΡΠΈΠΌΠ΅ΡΡ JSON Π΄Π»Ρ Inspector.
Spaces:
{"params": {}}
{"params": {"space_id": "1001"}}
{"params": {"title": "ΠΠΎΠ²ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ", "external_id": 9001}}
{"params": {"space_id": 1001, "title": "ΠΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΠΎΠ΅", "allowed_card_type_ids": [1,2], "external_id": 9002}}
{"params": {"space_id": "1001"}}
Boards:
{"params": {"space_id": "1001", "cursor": null, "limit": 50}}
{"params": {"space_id": "1001", "board_id": "2001"}}
{"params": {
"space_id": "1001",
"title": "ΠΠΎΠ²Π°Ρ Π΄ΠΎΡΠΊΠ°",
"description": "ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅",
"lanes": [ {"title": "Lane A"} ],
"columns": [ {"title": "To Do", "type": 1}, {"title": "Doing", "type": 2}, {"title": "Done", "type": 3} ]
}}
{"params": {"space_id": "1001", "board_id": "2001", "title": "ΠΠΎΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ ΠΈΠΌΡ", "description": "ΠΠΏΠ΄Π΅ΠΉΡ"}}
{"params": {"space_id": "1001", "board_id": "2001"}}
Cards:
{"params": {"board_id": "2001", "cursor": null, "limit": 50}}
{"params": {"card_id": "3001"}}
{"params": {
"title": "ΠΠΎΡ Π½ΠΎΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ°",
"board_id": 2001,
"description": "ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ",
"lane_id": 1782805,
"column_id": 5051439,
"asap": false,
"due_date_time_present": false,
"properties": {}
}}
{"params": {"card_id": 3001, "title": "ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΎ", "description": "ΠΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡ"}}
{"params": {"card_id": 3001}}
ΠΠ°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΎΡΠΈΠ±ΠΊΠ° Invalid request parameters ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ΠΌ ΠΎΠ±ΡΡΡΠΊΠΈ {"params": ...}.
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΈΠ½ΠΈ-ΠΊΠ»ΠΈΠ΅Π½Ρ
Π‘Π΅ΡΠ²Π΅ΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΌΠΈΠ½ΠΈ-ΠΊΠ»ΠΈΠ΅Π½Ρ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎ STDIO.
ΠΠΎΠΊΠ°Π·Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²:
uv run -m server.server client-list --cmd "uv run -m server.server serve"
ΠΡΠ·Π²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ (Linux/macOS):
uv run -m server.server client-call --cmd "uv run -m server.server serve" spaces_list "{}"
uv run -m server.server client-call --cmd "uv run -m server.server serve" spaces_get '{"space_id":"1001"}'
uv run -m server.server client-call --cmd "uv run -m server.server serve" cards_create '{"title":"ΠΠΎΡ Π½ΠΎΠ²Π°Ρ Π·Π°Π΄Π°ΡΠ°","board_id":2001,"description":"ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅"}'
ΠΡΠ·Π²Π°ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ (Windows PowerShell):
uv run -m server.server client-call --cmd "uv run -m server.server serve" spaces_list "{}"
uv run -m server.server client-call --cmd "uv run -m server.server serve" spaces_get "{\"space_id\":\"1001\"}"
ΠΠΈΠ½ΠΈ-ΠΊΠ»ΠΈΠ΅Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² {"params": ...}, Π΅ΡΠ»ΠΈ Π²Π΅ΡΡ Π½ΠΈΠΉ ΠΊΠ»ΡΡ Π½Π΅ ΡΠΊΠ°Π·Π°Π½. Π€Π»Π°Π³ --no-wrap ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ Π°Π²ΡΠΎΠΎΠ±ΡΡΡΠΊΡ.
ΠΡΠΈΠΌΠ΅ΡΡ ΡΡΠΏΠ΅ΡΠ½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π² CRUD
ΠΠΈΠΆΠ΅ ΡΠ΅ΠΏΠΎΡΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ΅ΡΠ΅Π· Inspector ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈ-ΠΊΠ»ΠΈΠ΅Π½Ρ.
Spaces
- Create: spaces_create β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ id Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°.
- Get: spaces_get Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ id.
- Update: spaces_update, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² title ΠΈΠ»ΠΈ allowed_card_type_ids.
- List: spaces_list, ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΠ°Π³ΠΈΠ½Π°ΡΠΈΠ΅ΠΉ.
- Delete: spaces_delete ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π² ΡΠΏΠΈΡΠΊΠ΅.
- ΠΠΆΠΈΠ΄Π°Π΅ΠΌΡΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ β ΠΎΡΠ²Π΅ΡΡ ΡΠΎ ΡΡΠ°ΡΡΡΠΎΠΌ ok ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ Π² Π²ΡΠ΄Π°ΡΠ΅.
Boards
- Create: boards_create Π²Π½ΡΡΡΠΈ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ space_id, Ρ columns ΠΈ lanes.
- Get: boards_get ΠΏΠΎ board_id.
- List: boards_list ΠΏΠΎ space_id.
- Update: boards_update (title ΠΈ/ΠΈΠ»ΠΈ description).
- Delete: boards_delete ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π² boards_list.
Cards
- Create: cards_create ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Ρ title ΠΈ board_id; ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ lane_id, column_id, description.
- Get: cards_get ΠΏΠΎ card_id.
- List: cards_list ΠΏΠΎ board_id ΠΈΠ»ΠΈ space_id.
- Update: cards_update (title, description).
- Delete: cards_delete ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅.