Filesystem-driven four-lane kanban board (todo / doing / blocked / done) exposed as a read-only MCP server and a Python API. Works with DeepSeek Harness and any MCP client.
Five read-only tools with basic descriptions and minimal parameter documentation. All tools accept a single 'base_dir' parameter with a default value. Descriptions are present but generic (10-60 chars), falling below the 50-200 char LLM-optimized baseline. No input validation guidance, no output schema documentation, and no error handling patterns. Tools are well-named with verb_noun convention (kanban_*), but parameter descriptions lack context about format, constraints, or when to override the default. No tool annotations (readOnlyHint, etc.) despite all being read-only. Schemas are minimal, only 'base_dir' with type string and description, no enum constraints or validation rules.
Cards currently in the blocked lane.
Full four-lane board (todo / doing / blocked / done) with card details.
Cards currently in the doing lane.
Cards completed today.
Per-lane card counts and the total.
Descriptions are too short (10-60 chars) and lack LLM-optimized context. 'Full four-lane board with card details' does not explain WHEN to call this vs kanban_status, WHAT structure is returned, or WHY an agent would choose it.
Parameter 'base_dir' has minimal description ('Base directory for the kanban board') with no guidance on format, valid paths, or when to override the default. LLMs cannot infer whether to pass absolute paths, relative paths, or environment variables.
No output schema documentation. LLMs cannot plan downstream calls or extract fields without knowing the structure of returned objects (e.g., does kanban_board return card IDs? timestamps? priority fields?).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
No tool annotations despite all tools being read-only. FastMCP supports readOnlyHint, use it to signal safety to agents and prevent accidental misuse.
No error handling patterns. If base_dir does not exist or is not readable, the tools will fail with a stack trace. Descriptions should include recovery guidance (e.g., 'If the board directory does not exist, create it with mkdir -p').