Exposes project/task management tools and resources via Model Context Protocol. Supports project management, task organization, comments, labels, and activity logging with a Kanban board interface.
Kanban MCP demonstrates competent baseline tool definitions with consistent naming patterns and generally clear descriptions. All 14 tools are explicitly registered with names, descriptions, and Zod schemas in src/mcp-server/index.ts. However, several dimension gaps limit the score: (1) Parameter descriptions lack depth, they state what the field is but rarely when to use it or how it chains to other tools. (2) Output schemas are inferred from database records but not formally documented in responses. (3) Error handling is minimal, tools return generic 'not found' or success messages without recovery guidance. (4) Tool descriptions lack dependency hints or context on common usage patterns. (5) No batch operations despite agents calling create_task and add_comment in loops. The server follows basic tool patterns but falls short of LLM-optimized design, descriptions average ~50 chars, well below the 194-char baseline for A-grade tools.
Add a comment to a task
Create a new project
Create a new task in a project
Delete a project and all its tasks
Delete a task
Get dashboard summary with project and task statistics
Get details of a specific project
Output schemas are not documented. Tools return JSON serialized database records, but LLMs cannot infer response structure. Missing: what fields are returned? Which are relevant to agents? How should they chain results to downstream tools?
Parameter descriptions lack actionable constraints and context. Examples: dueDate accepts 'ISO 8601' but no guidance on format ('YYYY-MM-DD' vs 'YYYY-MM-DDTHH:mm:ssZ'), title length, priority default behavior, or when to use parentTaskId.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Get details of a specific task including comments
List all projects with task counts
List tasks for a project, optionally filtered by status or priority
Move a task to a different column or position
Search tasks by title or description
Update an existing project
Update a task's fields (title, description, status, priority, assignee, due date)
Error handling is minimal. Tools return 'Project not found' but no recovery guidance. Missing: 'If you only have a name, call search_tasks()' or 'Available projects: proj-1, proj-2'. LLMs cannot self-correct without suggestions.
No pagination support on list_tasks and search_tasks. Agents iterating over projects calling list_tasks on each could trigger context overflow. Missing: limit, offset, next_cursor, total_count parameters and guidance.
Destructive operations (delete_project, delete_task) lack confirmation or dry-run patterns. No mechanism to prevent accidental deletions. Agents should confirm before irreversible actions.
Ambiguous tool naming: move_task and update_task both modify tasks. LLMs may choose the wrong one. Descriptions clarify but naming alone should disambiguate (e.g., 'update_task_status' vs 'update_task').
No batch operations. Common workflows (create multiple tasks, add labels to many tasks) require sequential tool calls. Missing: create_tasks (array), add_comments_bulk, etc. to reduce latency and token waste.
Tool descriptions are below baseline. Average ~50-70 chars vs. 194-char baseline for A-grade tools. Descriptions like 'List all projects with task counts' lack WHEN, WHY, and dependency context that guide LLM planning.
Tool descriptions lack state-change clarity. create_project, update_project, delete_project, etc. should explicitly state 'This modifies data' so agents understand retry semantics and audit implications.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The MCP spec supports these to help clients understand tool risk. All WRITE and DESTRUCTIVE tools should be annotated.