MCP Kanban Board Server for Claude Agent Teams collaboration — workflow engine for a single Claude session
The server provides 13 well-named tools with clear verb-noun patterns (init_project, add_agent, create_plan, etc.) covering a complete Kanban workflow. However, there are significant gaps in schema documentation and parameter descriptions. Tool descriptions are present and reasonably clear (mostly 50-150 chars), but many parameter descriptions are minimal (10-30 chars), and output schemas are not explicitly documented in the code. Input schemas are visible and properly typed, but parameter descriptions need expansion to meet LLM optimization standards. Error handling uses a custom KanbanError class but lacks recovery guidance in descriptions. Overall, the server demonstrates solid naming conventions and basic structure but falls short of production-grade documentation standards due to insufficient parameter details and missing output schema documentation.
프로젝트에 에이전트를 추가합니다. role: PM, Developer, Reviewer, Tester, Designer
카드에 진행사항 메모를 추가합니다. note_type: progress, blocker, handoff, review
작업을 에이전트에게 할당합니다. 에이전트가 해당 task의 프로젝트 소속인지 서버에서 검증합니다.
프로젝트(project_id) 하위에 플랜(의도 + 경계)을 생성합니다. goal/scope_in/scope_out은 인터뷰 결과.
새 칸반 카드를 생성합니다. 초기 상태는 Backlog. priority: Low, Medium, High, Critical. description: 첫 줄은 작업 요약, 이후 레이블(관련/API/설정/참고)로 구분. plan_id/position: 플랜에 소속시키고 플랜 내 순서 지정(생략 시 미분류)
작업에 블로커를 설정하거나 해제합니다. is_blocked=true 시 reason 필수.
칸반보드의 상태별 작업 목록을 조회합니다.
Output schemas not documented. Tools like get_plan, get_board, get_task_detail, get_project_status return dict[str, Any] with no schema documentation visible. LLMs cannot plan downstream tool calls or extract fields without knowing response structure.
Minimal parameter descriptions. Many parameters have 10-30 character descriptions ('Project ID', 'Plan ID', 'Task ID', 'Agent ID') that lack actionable context. Descriptions should explain format, constraints, and when the parameter is required vs optional.
Enum values for 'role' (PM, Developer, Reviewer, Tester, Designer) and 'status' (Backlog, Todo, InProgress, Review, Done, Rejected) are documented in descriptions but not enforced as schema enums. Schema should declare allowed_values explicitly so LLMs know valid options without parsing text.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
플랜 상세를 반환합니다. 파생 상태(planned/active/completed/blocked)와 태스크 목록 포함.
프로젝트 전체 통계, 에이전트별 워크로드, 블로커를 요약합니다.
카드 상세 정보를 전체 노트 포함하여 조회합니다.
이 레포의 프로젝트를 준비합니다 (레포당 1회, get-or-create). 같은 이름이 있으면 재사용.
프로젝트(project_id)별 플랜 목록 + 각 플랜의 파생 상태를 반환합니다.
카드 상태를 변경합니다. 서버가 전이 규칙을 검증합니다. status: Backlog, Todo, InProgress, Review, Done, Rejected
Missing output schema documentation prevents agents from understanding response structure. No documentation visible for fields returned by get_plan, get_board, list_plans, get_task_detail, or get_project_status. Agents cannot reason about downstream field extraction.
Error handling lacks recovery guidance. KanbanError is caught and converted to dict, but error responses do not suggest next steps. E.g., 'Project not found. Try init_project() first.' or 'Agent not found in project. Call add_agent() to add agents.' are missing.
Conflicting parameter defaults and semantics in 'create_task'. The description states 'initial state is Backlog', but the function default for 'priority' is 'Medium' without stating that description is optional. Also, 'position' parameter affects order within a plan but behavior if plan_id is omitted is unclear.
No explicit documentation of idempotency. Tools like 'update_task_status' and 'assign_task' accept 'expected_version' for optimistic locking, but it is not stated whether retrying with the same parameters is safe or if version mismatch will be communicated clearly.
Parameter naming inconsistency: 'assignee_id' in create_task but also 'creator_agent_id' passed internally; 'agent_id' used elsewhere for performers. Mixing 'assignee_id', 'agent_id', and 'creator_agent_id' across tools and descriptions increases ambiguity.