Retinue provides 8 tools with complete input schemas and descriptions. Naming follows verb_noun convention (task_list, task_new, task_update). Descriptions are present and contextual (avg ~80 chars), exceeding the 20-char minimum. All parameters have type definitions and descriptions. However, output schemas are not documented in the visible code, the tool implementations return dicts but no schema is declared to the MCP client. Error handling is minimal; no recovery guidance or actionable error messages visible. The server lacks tool annotations (readOnlyHint, destructiveHint) despite clear risk classifications (READ_ONLY vs WRITE). Parameter descriptions could be more prescriptive about format/constraints (e.g., task_id format rules, priority enum values are declared but not explained in descriptions).
List cards held by this MCP server's configured agent identity.
List queued cards whose prerequisite cards are all done.
Make a held queued card wait for another card to finish.
Remove one finish-to-start prerequisite from a held queued card.
List task cards, optionally filtered by status and/or holder.
Create a queued card. The configured agent is recorded as creator.
Render the latest canonical two-line receipt for a card.
Output schemas not documented. Tools return dicts but MCP client has no schema definition for response structure. LLMs cannot plan downstream calls or extract fields reliably.
Tool annotations missing. task_new, task_dependency_add/remove, task_update are destructive (WRITE risk) but lack destructiveHint annotation. task_list, ready_work, my_tasks, task_receipt are read-only but lack readOnlyHint. Agents cannot distinguish safe from unsafe calls without reading descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Update a held card and return its canonical receipt.
Parameter descriptions lack format/constraint details. 'task_id' description does not explain format rules (no '/', '\\', '.', '..'). 'note' parameters have generic defaults ('task created through MCP', 'dependency added') but no guidance on what constitutes a receipt-quality note. Enums are declared but not explained in descriptions.
No error handling guidance. Code raises ProtocolError for invalid task_id or missing tasks, but no recovery hints are visible. LLMs receive raw errors with no actionable next steps.
task_update parameter 'status' is optional but semantically critical. No guidance on which status transitions are valid (e.g., can 'done' transition back to 'doing'?). Undocumented state machine rules invite invalid calls.