Contextual handoff MCP server: public spec/outcome/runbook formats and reference server
Three tools with explicit schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. handoff_to_user has a complex nested 'spec' parameter (object type) with no sub-field descriptions, forcing LLMs to infer structure. handoff_verify and handoff_runbooks lack output schema documentation. Descriptions are present (60-90 chars) but generic, they state WHAT but not WHEN or WHY. No error handling guidance visible in tool definitions. Tool names follow verb_noun pattern (good), but parameter naming lacks type suffixes (spec vs spec_object, goal vs goal_string).
Search runbooks by goal and return matching runbooks as a draft spec
Send a handoff to the user, blocking until the app answers with a decision
Verify a handoff spec without sending it, returning validation errors if any
handoff_to_user 'spec' parameter is an untyped object with no sub-field descriptions. LLMs cannot infer the structure of 'steps', 'context', or 'metadata' fields without inline documentation.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., what does handoff_runbooks return? A list of runbook objects? A spec draft?).
Tool descriptions lack WHEN/WHY context. 'Send a handoff to the user' does not explain when to use this vs handoff_verify, or what 'blocking until the app answers' means for agent planning.
Parameter 'goal' in handoff_runbooks has no format constraints or examples. LLMs may pass arbitrary strings; no guidance on expected goal keywords or search syntax.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2025-06-18+ | v2 |
No error handling guidance in tool definitions. If handoff_to_user times out or the app disconnects, what should the LLM do? Retry? Ask the user? This is undocumented.