Expose validated Shadow Threads artifact, revision, execution, and replay tools.
Shadow Threads MCP has 8 tools with complete input schemas and descriptions, but quality is uneven. All tools follow verb_noun naming (shadow_*) and have parameter descriptions. However, descriptions are terse (avg ~60 chars, well below the 194-char baseline), lack context on WHEN to use each tool, and omit recovery guidance. Output schemas are not documented, LLMs cannot predict what fields to expect. No tool annotations (readOnlyHint/destructiveHint) despite clear risk distinctions (3 WRITE, 5 READ_ONLY). Error handling is absent from visible code. Parameters lack enums, ranges, and format constraints. The server is STDIO-only, which is a hard transport cap.
Capture an artifact with schema, package ID, payload, and optional references
Create a revision with artifacts and metadata
Retrieve an artifact by package ID and bundle hash
Retrieve an execution by ID
Retrieve a revision by hash
List revisions for a package with optional limit
Record an execution with provider, model, artifacts, and status
Descriptions are terse (avg ~60 chars) and lack context. 'Capture an artifact with schema, package ID, payload, and optional references' does not explain WHEN to call this vs other tools, what happens to the artifact, or what the LLM should expect next. Baseline is 194 chars with WHAT/WHEN/WHY.
Output schemas are not documented. LLMs cannot predict what fields shadow_get_artifact, shadow_get_revision, or shadow_get_execution return. This forces agents to guess or fail on downstream tool calls that depend on returned IDs.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). Three tools are WRITE (shadow_capture_artifact, shadow_create_revision, shadow_record_execution, shadow_replay_execution) but LLMs cannot distinguish them from READ_ONLY tools without annotations. This violates current MCP spec (2026-07-28).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Replay an execution by ID
Parameters lack enums, ranges, and format constraints. 'role' in artifact references accepts free-form strings (no enum). 'status' in shadow_record_execution is unconstrained. LLMs will hallucinate invalid values; no validation guidance in descriptions.
No error handling or recovery guidance visible in tool definitions. If shadow_get_artifact fails (artifact not found), LLMs have no guidance on what to do next. No actionable error messages, no retry classification, no alternatives.