kaiten-mcp-server (vsaranyuk/kaiten-mcp-server) is an MCP server listed on the M8ven Trust Index. It scores 50 out of 100, grade D. It declares 26 tools. No publisher has claimed this listing.

D
Caution
50/100

kaiten-mcp-server

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.

Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

vsaranyuk

Source: Glama

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
⚠️
Known vulnerabilities in dependencies: 14 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
🔐
You'll be asked for 1 credential: KAITEN_API_TOKEN
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes26 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

kaiten_get_card

Retrieve complete information about a Kaiten card by its ID, including subtasks, blocking status, and relationships. PURPOSE: Get comprehensive card details after discovering the card via kaiten_search_cards or from a URL. Use this when you need full information including description, owner, board

kaiten_create_card

Create a new card on a Kaiten board with specified properties. Supports idempotency for safe retries. PURPOSE: Create new task cards with title, description, owner, due date, and board placement. Use after discovering board structure via kaiten_list_boards, kaiten_list_columns, kaiten_list_lanes, a

kaiten_update_card

Update existing card fields. Only modifies specified fields, leaving others unchanged. Supports idempotency. PURPOSE: Modify card properties including title, description, state, board position (column/lane), assignment, dates, and flags. Use kaiten_get_card first to see current state before updatin

kaiten_delete_card

⚠️ DESTRUCTIVE: Permanently delete a card. Cannot be undone. Use with extreme caution. PURPOSE: Permanently remove a card from Kaiten. This is an irreversible operation - once deleted, the card and all its data (comments, history, attachments, relationships) are gone forever. Consider archiving (co

kaiten_get_card_comments

Get all comments for a card, including author info and timestamps. Returns complete comment thread. PURPOSE: Retrieve full comment history and discussion thread for a card. Use to review feedback, track decisions, or analyze communication. Comments appear in Kaiten card history and support markdown

kaiten_create_comment

Add a new comment to a card. Supports markdown formatting and appears in card activity history. Supports idempotency. PURPOSE: Post feedback, ask questions, provide updates, or document decisions on a card. Comments are visible to all card participants and appear in Kaiten card history chronologica

kaiten_update_comment

Edit an existing comment on a card. Supports markdown. Can only edit your own comments. Supports idempotency. PURPOSE: Fix typos, add information, or clarify existing comments. Preserves comment ID and creation date, updates modified timestamp. Essential for maintaining accurate discussion threads.

kaiten_delete_comment

Delete comment

kaiten_search_cards

Search for Kaiten cards with flexible filtering and pagination. Returns compact format optimized for context economy. PURPOSE: Find cards matching specific criteria across boards and spaces. Use this as your primary discovery tool before performing operations on cards. Searches default space by def

kaiten_get_space_cards

Get all cards from a specific space with pagination. Returns compact format optimized for context economy. PURPOSE: Retrieve cards from a space when you need all/recent cards without complex filtering. For filtered search, use kaiten_search_cards instead. PARAMETERS: - space_id (required): The spa

kaiten_get_board_cards

Get all cards from a specific board with pagination. Returns compact format optimized for context economy. PURPOSE: Retrieve cards from a board when you need all/recent cards without complex filtering. For filtered search, use kaiten_search_cards instead. PARAMETERS: - board_id (required): The boa

kaiten_list_spaces

List all Kaiten spaces (workspaces) accessible to your API token. Top-level organization structure. PURPOSE: Discover available spaces to get space_id for board operations. Spaces are top-level containers that group boards, users, and projects. Use this for workspace discovery, especially when KAIT

kaiten_get_space

Get space details by ID. PURPOSE: Retrieve comprehensive information about a specific Kaiten space. PARAMETERS: - space_id (required): Space ID. Positive integer. How to find: Use kaiten_list_spaces to discover space_id - format (optional): Response format - 'json' or 'markdown' (default) • Us

kaiten_list_boards

List all boards in a space. Essential discovery tool for finding board_id before card operations. PURPOSE: Discover available boards in your workspace to get board_id for creating/searching cards. First step in board structure discovery workflow. Uses cached results (5 min TTL) for performance. PA

kaiten_get_board

Get board details by ID. PURPOSE: Retrieve comprehensive information about a specific Kaiten board. PARAMETERS: - board_id (required): Board ID. Positive integer. How to find: Use kaiten_list_boards to discover board_id - format (optional): Response format - 'json' or 'markdown' (default) • Us

kaiten_list_columns

List all columns (workflow stages) for a board. Required before creating/moving cards to get valid column_id. PURPOSE: Discover board columns (stages like "Backlog", "In Progress", "Done") to place cards correctly. Columns represent workflow stages and are required for precise card placement. Use b

kaiten_list_lanes

List board lanes (swimlanes) for vertical card grouping. Optional but useful for complex board organization. PURPOSE: Discover lane IDs for creating/moving cards with vertical categorization. Lanes (swimlanes) provide secondary grouping orthogonal to columns, useful for team separation, priority le

kaiten_list_types

List card types available on a board. Types categorize cards by nature of work (Task, Bug, Feature, etc.). PURPOSE: Discover valid type_id values for creating/updating cards. Card types categorize work by nature (implementation task, bug fix, feature request, etc.), help with filtering and reportin

kaiten_get_current_user

Get information about the currently authenticated user (you) based on the API token. PURPOSE: Verify API token is working, check your permissions, get your user_id for filtering "my cards", or confirm account details. Quick health check for API authentication. PARAMETERS: None RETURNS: Simplified

kaiten_list_users

Search for Kaiten users by name or email with server-side filtering. CRITICAL: Kaiten stores names in LATIN characters only. PURPOSE: Find user_id to assign cards, filter by owner, or search by member. Essential preprocessing step before any user-related operations. Server supports efficient server

kaiten_cache_invalidate_spaces

Invalidate spaces cache

kaiten_cache_invalidate_boards

Invalidate boards cache

kaiten_cache_invalidate_users

Invalidate users cache

kaiten_cache_invalidate_all

Invalidate all caches

kaiten_get_status

Get server status (cache/queue/config/metrics)

kaiten_set_log_level

Change logging config at runtime

// known CVEs in dependencies14 high5 medium11 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

high@modelcontextprotocol/sdk@1.20.0GHSA-345p-7cg4-v4c7

@modelcontextprotocol/sdk has cross-client data leak via shared server/transport instance reuse

high@modelcontextprotocol/sdk@1.20.0GHSA-8r9q-7v3j-jr4g

Anthropic's MCP TypeScript SDK has a ReDoS vulnerability

high@modelcontextprotocol/sdk@1.20.0GHSA-w48q-cv73-mx4w

Model Context Protocol (MCP) TypeScript SDK does not enable DNS rebinding protection by default

highaxios@1.12.2GHSA-35jp-ww65-95wh

axios Vulnerable to Full Man-in-the-Middle via Prototype Pollution Gadget in `config.proxy`

highaxios@1.12.2GHSA-3g43-6gmg-66jw

axios Vulnerable to Credential Theft and Response Hijacking via Prototype Pollution Gadget in Config Merge

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configDOTENV_CONFIG_QUIET
🔐 secretKAITEN_API_TOKENyour_api_token_here
configKAITEN_API_URL"": "https://your-domain.kaiten.ru/api/latest",
configKAITEN_CACHE_TTL_SECONDS300 # Время жизни кеша в секундах (0 = выкл.)
configKAITEN_DEFAULT_SPACE_ID12345 # Ваш основной space_id
configKAITEN_LOG_ENABLED
configKAITEN_LOG_FILE_ENABLED
configKAITEN_LOG_FILE_PATH./logs/kaiten-mcp.log
configKAITEN_LOG_LEVEL
configKAITEN_LOG_MCP_ENABLED
configKAITEN_LOG_METRICSПри включенных метриках (=true) используйте kaiten_get_status для просмотра:
configKAITEN_LOG_REQUESTS
configKAITEN_MAX_CONCURRENT_REQUESTS5 # Макс. одновременных запросов (1-20)
configKAITEN_REQUEST_TIMEOUT_MS10000 # Таймаут запроса в мс (1-60000)
// quality suggestions

Tool annotations

8/26 tools have annotations

Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.

All four hints declared on every tool

26/26 tools missing one or more hints — kaiten_get_card (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); kaiten_create_card (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); kaiten_update_card (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +23 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

License file

No license file

Add a LICENSE file (MIT, Apache-2.0, etc.).

Tests exist

No test files found

Add tests that exercise each declared tool.

Secrets not logged

1 secret value sent to console.log

Redact or omit secret values from log output.

Production dependencies are patched

0 critical, 14 high severity in production deps — @modelcontextprotocol/sdk@1.20.0 (high), @modelcontextprotocol/sdk@1.20.0 (high)

Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.

Dependency freshness

1/8 production deps stale: axios-retry@2024-08-02 (2y)

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 6 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/vsaranyuk/kaiten-mcp-server?variant=verified)](https://m8ven.ai/mcp/vsaranyuk/kaiten-mcp-server)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 3ac91854baffe98dfcf8ae783412ad38b82c3a56
code hash: 63d2ddf117f55857508e26ca4c15c2501644b2110facc045a3389599bd3e90cf
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client