MCP server exposing a task board as tools for AI agents to queue and inspect work via stdio transport
Agent-task-board defines 6 tools with complete input schemas and descriptions. Naming follows verb_noun convention (add_task, list_tasks, claim_next, report_result, move_task, get_board). Descriptions are present but brief (avg ~80 chars, below the 194-char baseline). All parameters have type definitions and most have descriptions, but several lack detail on constraints, valid ranges, or error recovery guidance. Output schemas are not documented, LLMs cannot predict response structure. Error handling returns generic messages without recovery hints. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear read/write semantics.
Queue a task for an AI agent. The prompt is the instructions the agent will run.
Atomically claim the oldest queued task (optionally by agent/tag), moving it to Running.
Get a summary of the board: task counts per lane and total.
List tasks, optionally filtered by lane (queued/running/review/done).
Move a task to a different lane.
Report an agent's result for a task and advance it (default → Review).
Output schemas not documented. LLMs cannot predict response structure (e.g., add_task returns {queued, title, agent, status} but this is not declared in tool definition). Agents must infer output format from examples, increasing hallucination risk.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). add_task, claim_next, report_result, and move_task are destructive writes but lack destructiveHint. list_tasks and get_board are read-only but lack readOnlyHint. LLMs cannot distinguish safe from risky operations.
Error handling returns generic 'Error: <message>' without recovery guidance. E.g., if claim_next finds no queued tasks, it returns {claimed: null}, LLM cannot infer whether to retry, check a different status, or ask the user.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Parameter descriptions lack constraint details. 'agent' in add_task and claim_next has no format guidance (e.g., 'e.g. Claude Code or Cursor'). 'tags' array has no length/item limits. 'worker' in claim_next has no enum or validation hint.
Descriptions are below baseline (avg 80 chars vs 194-char baseline). get_board (47 chars), move_task (42 chars), claim_next (82 chars) lack context on when to use them vs similar tools or what they return.