Local MCP server driving the Claude Code CLI (resume-per-turn). Exposes pipelines defined in `.claude/pipelines.json` via `run_pipeline` over local HTTP. Each pipeline is a sequence of skills driven turn-by-turn as fresh `claude -p` subprocesses.
Two tools with reasonable descriptions and partial schemas. run_pipeline has a complex, well-documented input schema covering multiple invocation modes (fresh run, resume, polling). list_pipelines is minimal but appropriate for a discovery tool. However, output schemas are entirely undocumented, LLMs cannot plan downstream actions without knowing what fields to expect. Parameter descriptions are present but lack actionable constraints (e.g., no guidance on valid pipeline names, session ID format, or expected response structure). Error handling is implicit in the description ('running', 'need_input', 'done', 'error' states) but not formalized as structured error responses. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite run_pipeline being a WRITE operation.
List all available pipelines from `.claude/pipelines.json` and their metadata. Returns pipeline names, descriptions, and input/output schemas.
Run a pipeline or continue a paused session. Executes a named pipeline from `.claude/pipelines.json` or resumes an existing session with a user response. Returns a snapshot of the job state: running (keep polling), need_input (relay questions to user), done (deliverables ready), or error (run failed).
Output schemas completely undocumented. LLMs cannot infer what fields run_pipeline returns (e.g., job state structure, deliverables format, error details). Forces agents to guess or fail on response parsing.
run_pipeline lacks tool annotations. Despite WRITE risk classification, no destructiveHint or idempotentHint declared. Agents cannot determine if retrying a paused session is safe or if it risks duplicate execution.
Parameter constraints missing. 'pipeline_name' accepts any string; no enum of valid pipelines or guidance to call list_pipelines first. 'session_id' format undocumented. 'response' (user input) has no length/format constraints.
Error handling not formalized. Description mentions 'error' state but does not specify error response structure, recovery guidance, or how to distinguish retryable vs. fatal failures.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
list_pipelines description is generic (60 chars). Does not explain when to call it, what 'metadata' includes, or how to use returned schemas to validate run_pipeline inputs.