Spec-first AI development workflow engine that pins acceptance specs and orchestrates AI-driven code generation, evaluation, and evolution workflows across multiple LLM runtimes (Claude Code, Claude CLI, Codex, OpenCode, etc.)
This MCP server exposes 32 tools with significant quality gaps. While all tools have names, descriptions, and parameter schemas are present, the descriptions are generic and often lack actionable context for LLM tool selection. Parameter descriptions are minimal (typically 1-3 words). The tool composition shows concerning patterns: multiple tools doing nearly identical things (e.g., ouroboros_execute_seed vs ouroboros_start_execute_seed, ouroboros_evaluate vs ouroboros_start_evaluate), unclear distinctions between synchronous and asynchronous variants, and no documented output schemas. Error handling is not visible in the source provided. The server does not leverage tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite many tools being clearly read-only or destructive. Tool names sometimes use 'and' patterns (lateral_think + submit_fanout_results) that hint at multi-step concerns. Overall, this reads like a domain-specific tool collection that was auto-generated or ported without careful LLM-optimization of descriptions and parameter clarity.
Display the acceptance criteria tree HUD (heads-up display) for visual session state
Run the full auto pipeline (interview → seed generation → execution) synchronously to completion
Manage brownfield repository registration and defaults for multi-repo projects
Cancel a running execution session
Cancel a running background job by job ID
Verify a checklist of acceptance criteria and return pass/fail status
Evaluate the current execution state against the acceptance criteria (synchronously)
Paired synchronous/asynchronous tools with no clear disambiguation. Tools like (ouroboros_execute_seed, ouroboros_start_execute_seed) and (ouroboros_evaluate, ouroboros_start_evaluate) create confusion: when should an LLM pick which? The naming convention 'start_' is not self-documenting. Descriptions do not explain the trade-off (latency vs. fire-and-forget vs. blocking vs. non-blocking).
Parameter descriptions are minimal (1 - 3 words) and lack context. Examples: 'Session identifier', 'Job identifier', 'Evolution lineage identifier', 'Artifact identifier' repeat across 20+ tools without explaining what a session, job, or lineage actually represents, when to obtain them, or how they relate to other parameters. LLMs cannot determine tool purpose from these labels alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
Rewind an evolution lineage to a previous generation
Run one step of the evolution algorithm synchronously to generate improvements
Execute a seed (specification with acceptance test) synchronously and apply generated changes to the workspace
Fetch an artifact (generated file, report, etc.) from a session or execution
Generate a new seed (specification with acceptance test) from scratch or from existing code
Run an interactive interview to gather context and requirements from the user
Retrieve the result of a completed background job
Query the status of a background job by job ID
Wait for a background job to complete with optional timeout
Launch a subagent to think laterally and explore alternative solutions
Query the status and history of an evolution lineage
Measure how far the current code has drifted from the original seed specification
Run a specialized product management interview for gathering requirements
Query the overall project status including all sessions and lineages
Run quality assurance checks and generate QA reports
Query events from the event store for a session or execution
Query the event store projection (materialized view) for a session
Run the Ralph phase (reflection and learning) synchronously within evolution
Query the current status of an execution session
Start the auto pipeline as a background job that enqueues an interview, seed generation, and execution
Start an evaluation as a background job
Start one step of the evolution algorithm as a background job
Start a background seed execution job that runs asynchronously
Start the Ralph phase as a background job
Submit results from parallel subagent fanout execution back to parent session
No output schemas documented. The provided source shows only input schemas; no tool response structure, field names, data types, or pagination guidance is visible. Without knowing what fields a tool returns, LLMs cannot chain tools reliably or extract required IDs for downstream calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications. Many tools are marked READ_ONLY or WRITE, but the server does not emit tool annotations to signal this to clients. This prevents agents from understanding which tools are safe to retry and which are irreversible.
Opaque domain terminology ('seed', 'lineage', 'ralph', 'ac_tree') without explanation in tool or parameter descriptions. Users do not know what these mean. Descriptions should include one-sentence definitional context (e.g., 'A seed is a specification file paired with acceptance tests.').
Tool 'ouroboros_ralph' and 'ouroboros_start_ralph' use an acronym with no definition. 'Ralph' is not a clear action verb. The description '(Reflection and learning)' is buried in the tool summary and does not appear in the tool description field visible to LLMs.
Tool 'ouroboros_brownfield' uses vague action verb 'manage' and has an 'action' parameter with no enum constraint or description of valid values. What actions are allowed? (scan, list, default, etc.) are mentioned in the parameter description but not enforced as enums, inviting invalid inputs from LLMs.
No error handling guidance visible. No tool response indicates what errors can occur, what they mean, or how to recover. Error responses (if any) are not documented, preventing agents from implementing retry logic or fallback strategies.
Tool 'ouroboros_ac_tree_hud' is unclear: 'Display the acceptance criteria tree HUD'. What does 'display' mean in the context of an MCP server? Does it return a string, a structured object, or an image reference? No output schema is documented.
Tools 'ouroboros_lateral_think' and 'ouroboros_submit_fanout_results' hint at a multi-step agent orchestration pattern (subagent fanout) but do not document how they interact, what contract governs results, or how the parent session coordinates with subagents. This is an undocumented dependency.