Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Ouroboros

PYPI · OUROBOROS-AI

Pins an acceptance spec; the verify command and expected output never enter the success contract.

Available components

+6 this week 65 Trust /100

Last scanned (2 hours ago)

Scores higher than 65% of PyPI servers

Category Developer Tools

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security50
  • Malware scan not yet available for this package.Unverified
  • No known CVEs affecting this package version or its production dependencies.Pass
  • Runs hatchling.build at install time, a recognised build step with no custom scripting around it. View diagnostics → Pass
  • 3 of 29 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 1 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability77
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 10440 tokens (~261/item across 40 items; 36 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
  • Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (3% of tools); any adoption earns full credit.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "ouroboros_execute_seed" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 38 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 17 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 16 Oct 26 +16
    • Malware scan: unverified → pass ▲ security
  • 15 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 14 Oct 26 +16
    • Malware scan: unverified → pass ▲ security
  • 13 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 12 Oct 26 +19
    • Malware scan: unverified → pass ▲ security
  • 4 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
  • 3 Oct 26 +4
    • Stability: unverified → 0.27 ▲ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 17 Oct 2026 · Analysed pypi/ouroboros-ai@0.51.5

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem pypi
Reason No attestation published

Background: How many MCP packages publish verified provenance →

Install scripts 1 script
Hook Tier Command
build_backend allowlisted hatchling.build

Background: Why install scripts are a supply-chain risk →

Dependencies 29 packages
Packages resolved 29
Stale 3
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 36 exposed · ~10,095 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
ouroboros_ac_dashboard ~121

Display per-AC pass/fail compliance dashboard across generations. Shows which acceptance criteria passed, failed, or are flaky. Modes: 'summary' (default), 'full' (AC x Gen matrix), 'ac' (single AC history).

NameTypeReqDescription
ac_indexinteger–AC index (1-based) for 'ac' mode. Required when mode='ac'.
lineage_idstringyesID of the lineage to display
modestring–Display mode: 'summary' (default), 'full', or 'ac'

No output schema declared.

No examples provided.

ouroboros_ac_tree_hud ~113

Return a render-ready markdown snapshot of the live acceptance-criteria tree for an Ouroboros session.

NameTypeReqDescription
cursorinteger–Previous EventStore row ID cursor.
max_nodesinteger–Maximum tree nodes to render when view='tree'.
session_idstringyesSession ID to inspect.
viewstring–Verbosity: 'tree' (default) for the full AC tree, 'summary' for a short monitor, or 'compact' for one-line polling.

No output schema declared.

No examples provided.

ouroboros_auto ~565

Run full-quality ooo auto: automatically interview, generate an A-grade Seed, and start execution only after the A-grade gate passes. All loops are bounded.

NameTypeReqDescription
attach_executionstring–Attach an externally verified execution id to an unknown run handoff
attach_jobstring–Attach an externally verified job id to an unknown run handoff
attach_sessionstring–Attach an externally verified run session id to an unknown run handoff
attach_sourcestring–Source label for an attached run handle
commit_policystring–Checkpoint commit policy: ac_checkpoint, final_only, or none
complete_productboolean–When true, chain RUN → RALPH_HANDOFF after a successful run handoff so a single ouroboros_auto invocation iterates Ralph until QA passes, convergence, or a budget bound trips. Defaults to false (opt-…
cwdstring–Working directory
domainstring–Optional domain profile name (for example, coding)
efficiency_modestring–Execution efficiency policy: adaptive may use lower-cost child tiers with recovery escalation; quality_first keeps child ACs at the parent starting tier. When omitted on a fresh start, a configured e…
frugality_assurancestring–Frugality assurance: off, observe, or explicitly authorized strict. Defaults from efficiency_mode and is immutable on resume.
goalstring–Goal/task for ooo auto
max_interview_roundsinteger–Max interview rounds
max_repair_roundsinteger–Max repair rounds
pipeline_timeout_secondsnumber–Top-level pipeline deadline in seconds. Defaults to 7200s for new sessions. Range: 60-86400. Cannot be changed on resume; the deadline is preserved across process restarts.
reconcile_runboolean–Try to reconcile an unknown run handoff without starting a duplicate run
reconcile_sourcestring–Source label for run handoff reconciliation
resumestring–Auto session id to resume
skip_runboolean–Stop after A-grade Seed
user_preferencesobject–Caller-supplied user preferences keyed by ledger section name (e.g. runtime_context, constraints, non_goals). The Driver tags matching answers with [from-auto][user_preference] in the ledger. Keys mu…
worktree_policystring–Worktree isolation policy: auto, always, current, or none

No output schema declared.

No examples provided.

ouroboros_brownfield ~348

Manage brownfield repository registrations. Scan home directory for repos, register/query repos, or set the default brownfield context for PM interviews.

NameTypeReqDescription
actionstring–Action to perform: 'scan' to discover repos from ~/, 'register' to add a single repo, 'query' to list all repos or get default, 'set_default' to toggle a repo's default flag (supports multiple defaul…
default_onlyboolean–When true with 'query' action, return only the default repo instead of the full list. Defaults to false.
descstring–One-line description of the repository. Used with 'register'. Optional.
indicesstring–Comma-separated repo numbers from the scan list (e.g. '6,18,19'). Used with 'set_defaults' action to replace all defaults at once.
is_defaultboolean–For 'set_default' action: set to true to mark as default, false to unmark. Defaults to true.
limitinteger–Maximum number of rows to return for 'query' pagination. Omit for no limit.
namestring–Human-readable name for the repository. Used with 'register'. Defaults to directory name.
offsetinteger–Number of rows to skip for 'query' pagination. Defaults to 0.
pathstring–Absolute filesystem path of the repository. Required for 'register' and 'set_default' actions.
scan_rootstring–Existing directory to walk for the 'scan' action. Defaults to the current user's home directory.

No output schema declared.

No examples provided.

ouroboros_cancel_execution ~69

Cancel a running or paused Ouroboros execution. Validates that the execution exists and is not already in a terminal state (completed, failed, cancelled) before cancelling.

NameTypeReqDescription
execution_idstringyesThe execution/session ID to cancel
reasonstring–Reason for cancellation

No output schema declared.

No examples provided.

ouroboros_cancel_job ~33

Request cancellation for a background job.

NameTypeReqDescription
job_idstringyesJob ID returned by a start tool

No output schema declared.

No examples provided.

ouroboros_checklist_verify ~182

Verify that a Run artifact satisfies every acceptance criterion in a Seed. Returns a per-AC checklist (pass/fail with evidence and failure reasons) plus ready-to-use run_feedback strings the caller can inject into a re-run prompt. Does NOT automatically re-execute — the caller (Ralph, workflow, or human) decides.

NameTypeReqDescription
artifactstringyesThe Run output/artifact to verify against the seed's ACs
artifact_typestring–Type of artifact: code, docs, config. Default: code
seed_contentstringyesSeed YAML containing acceptance_criteria, goal, constraints. The seed's acceptance_criteria list is evaluated in full.
session_idstringyesThe execution session ID being verified
working_dirstring–Project working directory (for language auto-detection).

No output schema declared.

No examples provided.

ouroboros_evaluate ~308

Evaluate an Ouroboros execution session using the three-stage evaluation pipeline. Stage 1 performs mechanical verification (lint, build, test). Stage 2 performs semantic evaluation of AC compliance and goal alignment. Stage 3 runs multi-model consensus if triggered by uncertainty or manual request.

NameTypeReqDescription
acceptance_criteriaarray–Multiple acceptance criteria for checklist evaluation. When two or more items are provided, each AC is evaluated independently and the results are aggregated into a pass/fail checklist (#366). Overri…
acceptance_criterionstring–Specific acceptance criterion to evaluate against
artifactstringyesThe execution output/artifact to evaluate
artifact_typestring–Type of artifact: code, docs, config. Default: code
seed_contentstring–Original seed YAML for goal/constraints extraction
session_idstringyesThe execution session ID to evaluate
trigger_consensusboolean–Force Stage 3 consensus evaluation. Default: False
working_dirstring–Project root used to resolve Stage 1 mechanical verification commands and Stage 2 source-file visibility. Commands are read from .ouroboros/mechanical.toml; when the file is missing, the evaluator ma…

No output schema declared.

No examples provided.

ouroboros_evolve_rewind ~80

Rewind an evolutionary lineage to a specific generation. Truncates all generations after the target and emits a lineage.rewound event. The lineage can then continue evolving from the rewind point.

NameTypeReqDescription
lineage_idstringyesID of the lineage to rewind
to_generationintegeryesGeneration number to rewind to (inclusive)

No output schema declared.

No examples provided.

ouroboros_evolve_step ~537

Run exactly ONE generation of the evolutionary loop. For Gen 1: provide lineage_id and seed_content (YAML). For Gen 2+: provide lineage_id only (state reconstructed from events). Returns generation result, convergence signal, and next action (continue/converged/ontology_stable/stagnated/exhausted/failed). ontology_stable is a non-success handoff; rerun the same lineage with execute=true to perform Execute→Evaluate.

NameTypeReqDescription
auto_session_idstring–Optional auto session id for checkpoint commit metadata.
benchmark_controlboolean–Run a deliberate full-graph frugality control. Default: false. Requires execute=true, Gen 2+, an explicit Git project_dir, and a clean baseline; unavailable through plugin delegation.
checkpoint_attempted_ac_idsarray–Acceptance criteria already considered for checkpoint commits.
checkpoint_commitsarray–Existing checkpoint commit records for idempotency.
commit_policystring–Optional checkpoint commit policy for passed ACs.
conductor_decision_idstring–Selected conductor decision authorizing this successor generation.
conductor_directiveobject–Bounded corrective context for this successor generation.
executeboolean–Whether to run seed execution and evaluation. True (default): full pipeline with Execute→Validate→Evaluate. False: ontology-only evolution (fast, no execution).
execution_idstring–Optional execution id for checkpoint commit metadata.
lineage_idstringyesLineage ID to continue or new ID for Gen 1
parallelboolean–Whether to run ACs in parallel. True (default): parallel execution (fast, may cause import conflicts). False: sequential execution (slower, more stable code generation).
predecessor_execution_idstring–Execution or generation that this successor follows.
project_dirstring–Project root directory for validation (pytest collection check). If omitted, auto-detected from execution output or CWD.
recover_expired_claimboolean–Explicitly recover an expired lineage writer claim after confirming the prior owner process is dead. Default: false
seed_contentstring–Seed YAML text for Gen 1. Pass a YAML-formatted string (for example, newline-delimited 'goal: ...' fields), not JSON-shaped text or an object literal; some MCP clients may otherwise coerce the value…
skip_qaboolean–Skip post-execution QA evaluation. Default: false

No output schema declared.

No examples provided.

ouroboros_execute_seed ~463

Execute a seed (task specification) in Ouroboros. A seed defines a task to be executed with acceptance criteria. This is the handler for 'ooo run' commands — do NOT run 'ooo' in the shell; call this MCP tool instead.

NameTypeReqDescription
auto_evaluateboolean–Override execution.auto_evaluate for this call. When true, a completed background execute_seed run enqueues formal 3-stage evaluation as a separate bounded background job.
auto_evolveboolean–Override execution.auto_evolve for the chained evaluation. When true, an explicitly rejected evaluation starts a bounded Ralph continuation loop.
conductor_decision_idstring–Selected conductor decision receipt authorizing a fresh successor.
conductor_directiveobject–Bounded corrective context copied exactly from the selected conductor decision. Fresh successor executions only.
cwdstring–Working directory used to resolve relative seed paths.
efficiency_modestring–Execution efficiency policy. adaptive may start decomposed ACs on lower-cost tiers and escalate on recovery; quality_first keeps children at the parent starting tier. When omitted on a fresh start, a…
frugality_assurancestring–Frugality assurance: off, lightweight observe, or explicit strict baseline eligibility. Defaults from efficiency_mode; strict is never enabled implicitly.
max_iterationsinteger–Maximum number of execution iterations. Default: 10
model_tierstring–Model-tier routing: small/medium/large → frugal/standard/frontier execution tier (trusted decomposed children may run one tier below; retries escalate). Omit to preserve automatic runtime selection;…
predecessor_execution_idstring–Execution ID that the new successor follows.
seed_contentstring–Inline seed YAML content to execute.
seed_pathstring–Path to a seed YAML file. If the path does not exist, the value is treated as inline seed YAML.
session_idstring–Optional session ID to resume. If not provided, a new session is created.
skip_qaboolean–Skip post-execution QA evaluation. Default: false

No output schema declared.

No examples provided.

ouroboros_fetch_artifact ~78

Fetch and integrity-check a disposable Ouroboros artifact by the contract_id returned in an artifact envelope. For fan-out completion, continue from the synthesis in the returned `body`. This is an explicit read and never re-executes the originating work.

NameTypeReqDescription
contract_idstringyesThe contract_id from a disposable artifact envelope.

No output schema declared.

No examples provided.

ouroboros_generate_seed ~215

Generate an immutable Seed from a completed interview session. The seed contains structured requirements (goal, constraints, acceptance criteria) extracted from the interview conversation. Generation requires ambiguity_score <= 0.2 unless force=true is passed to deliberately bypass the gate.

NameTypeReqDescription
ambiguity_scorenumber–Ambiguity score for the interview (0.0 = clear, 1.0 = ambiguous). Required if interview didn't calculate it. Generation fails if > 0.2.
client_gatesarray–Client-side interview gates acknowledged before seed generation. Expected values include seed_ready_acceptance_guard and restate_goal_approved.
forceboolean–Bypass the ambiguity-score threshold and generate the seed even when ambiguity_score > 0.2. Mirrors the CLI 'Generate Seed anyway' opt-in: the real score is still recorded in seed metadata for proven…
session_idstringyesInterview session ID to convert to a seed

No output schema declared.

No examples provided.

ouroboros_interview ~388

Interactive interview for requirement clarification. Start a new interview with initial_context, resume with session_id, or record an answer to the current question. In plugin mode, returns a delegation receipt (status=delegated_to_subagent) and the interview executes in an OpenCode Task pane — the real session_id is returned there.

NameTypeReqDescription
answerstring–Response to the current interview question
confused_termsarray–Explicit domain terms the user says they do not understand. Queued on the start turn and applied only after the first answer.
cwdstring–Working directory for brownfield auto-detection. Defaults to the current working directory if not provided.
initial_contextstring–Initial context to start a new interview session
interview_idstring–Optional caller-supplied id for a brand-new interview. Must match the server format 'interview_<16 lowercase hex>' and must NOT collide with an existing interview file. Only valid for the start actio…
last_questionstring–The question text from the previous child session's response. In plugin mode each dispatch creates a new child session whose questions are not automatically persisted server-side. Pass the child's la…
referencesarray–Bounded user-provided reference cues. Each object requires reference_id, label, and origin; url/excerpt are optional.
session_idstring–Session ID to resume an existing interview

No output schema declared.

No examples provided.

ouroboros_job_result ~36

Get the final output for a completed background job.

NameTypeReqDescription
job_idstringyesJob ID returned by a start tool

No output schema declared.

No examples provided.

ouroboros_job_status ~57

Get the latest summary for a background Ouroboros job.

NameTypeReqDescription
job_idstringyesJob ID returned by a start tool
viewstring–'full' (default), 'summary', or 'compact'.

No output schema declared.

No examples provided.

ouroboros_job_wait ~249

Wait briefly for a background job to change state. Useful for conversational polling after a start command.

NameTypeReqDescription
cursorinteger–Previous cursor from job_status or job_wait
job_idstringyesJob ID returned by a start tool
streamstring–'progress' (default) watches job/execution progress; 'linked' also streams linked session, lineage, and subagent events.
timeout_secondsinteger–Maximum seconds to wait for a change. Defaults to 0 so the tool returns an immediate snapshot and never holds the MCP client open unless the caller explicitly asks for long-polling. Values above 5 ar…
viewstring–'full' (default), 'summary', or 'compact'.
wait_forstring–'raw' (default) returns on any job event, preserving existing behavior; 'ac_change' waits for AC/Sub-AC/phase progress or terminal status; 'attention_or_ac_change' additionally wakes for Synapse deli…

No output schema declared.

No examples provided.

ouroboros_lateral_think ~275

Generate alternative thinking approaches using lateral thinking personas. Use this tool when stuck on a problem to get fresh perspectives from different thinking modes: hacker (unconventional workarounds), researcher (seeks information), simplifier (reduces complexity), architect (restructures approach), or contrarian (challenges assumptions). Set persona='all' (or pass personas=['hacker','architect',...]) to fan out to MULTIPLE personas in parallel — each runs in its own Task pane with an independent LLM context (no cross-contamination).

NameTypeReqDescription
current_approachstringyesWhat has been tried so far that isn't working
failed_attemptsarray–Previous failed approaches to avoid repeating
personastring–Single persona (hacker, researcher, simplifier, architect, contrarian) OR 'all' to dispatch ALL 5 personas in parallel as separate Task panes.
personasarray–Explicit list of personas to dispatch in parallel. Takes precedence over 'persona' arg. Example: ['hacker','contrarian','architect']. Each runs in its own parallel Task pane.
problem_contextstringyesDescription of the stuck situation or problem
stagnation_patternstring–Detected stagnation pattern used to suggest a persona when persona is omitted.

No output schema declared.

No examples provided.

ouroboros_lineage_status ~48

Query the current state of an evolutionary lineage. Returns generation count, status, ontology evolution, and convergence progress.

NameTypeReqDescription
lineage_idstringyesID of the lineage to query

No output schema declared.

No examples provided.

ouroboros_measure_drift ~148

Measure drift from the original seed goal. Calculates goal deviation score using weighted components: goal drift (50%), constraint drift (30%), ontology drift (20%). Returns drift metrics, analysis, and suggestions if drift exceeds threshold.

NameTypeReqDescription
constraint_violationsarray–Known constraint violations (e.g., ['Missing tests', 'Wrong language'])
current_conceptsarray–Concepts present in the current output (for ontology drift)
current_outputstringyesCurrent execution output to measure drift against the seed goal
seed_contentstringyesOriginal seed YAML content for drift calculation
session_idstringyesThe execution session ID to measure drift for

No output schema declared.

No examples provided.

ouroboros_pm_interview ~348

PM interview for product requirements gathering. Start with initial_context, continue with session_id + answer, or generate PM seed with action='generate'. In plugin mode, returns a delegation receipt (status=delegated_to_subagent) and the PM interview executes in an OpenCode Task pane — the real session_id is returned there.

NameTypeReqDescription
actionstring–Action to perform. Auto-detected from parameter presence when omitted: initial_context → 'start', session_id + answer → 'resume'. Use 'generate' explicitly to produce PM seed from completed interview.
answerstring–PM's response to the current interview question
cwdstring–Working directory for PM document output. Defaults to current working directory. Brownfield context is loaded from DB (is_default=true).
initial_contextstring–Initial product description to start a new PM interview
last_questionstring–The question this answer is answering, when the server is not already holding it unanswered. In plugin mode each dispatch creates a new child session whose questions are not persisted server-side, so…
selected_reposarray–List of repository paths selected for brownfield context (2-step start: returned by step 1, sent back in step 2). All repos are assigned role=main. When provided with initial_context, starts the inte…
session_idstring–Session ID to resume an existing PM interview

No output schema declared.

No examples provided.

ouroboros_project_status ~110

Resolve a project identity and rebuild its complete read-only run status from persisted Ouroboros session events. Identity conflicts, projection failures, and limits below the complete population return no partial record.

NameTypeReqDescription
limitinteger–Complete-run safety cap. The query fails instead of truncating when the matching population exceeds this value.
project_dirstring–Project or workspace directory. Defaults to the MCP server caller directory captured at startup.
workspacestring–Optional canonical project-relative workspace filter.
NameTypeReqDescription
project_idstringyes–
project_rootstringyes–
run_countintegeryes–
runsarrayyes–
schema_versioninteger––
workspace_path–––

No examples provided.

ouroboros_qa ~248

General-purpose QA verdict for any artifact type. Evaluates code, API responses, documents, screenshots, or custom artifacts against a quality bar. Returns structured verdict with score, differences, and actionable suggestions. Designed for iterative loop usage.

NameTypeReqDescription
artifactstringyesThe artifact content to evaluate (code, text, JSON, etc.)
artifact_typestring–Type of artifact: code, api_response, document, screenshot, test_output, custom. Default: code
iteration_historyarray–Previous iteration results for loop context (JSON array).
pass_thresholdnumber–Score threshold for pass verdict (0.0-1.0). Default: 0.80
qa_session_idstring–QA session ID for multi-iteration tracking. If omitted, a new session is created.
quality_barstringyesNatural language description of what 'pass' means. E.g., 'All public functions must have type hints and docstrings.'
referencestring–Optional reference artifact for comparison (expected output, target schema, reference description).
seed_contentstring–Optional seed YAML for additional context (goal, constraints).

No output schema declared.

No examples provided.

ouroboros_query_events ~116

Query the event history for an Ouroboros session. Returns a list of events matching the specified criteria.

NameTypeReqDescription
event_typestring–Filter by event type (e.g., 'execution', 'evaluation', 'error')
limitinteger–Maximum number of events to return. Default: 50
offsetinteger–Number of events to skip for pagination. Default: 0
session_idstring–Filter events by session ID. If not provided, returns events across all sessions.

No output schema declared.

No examples provided.

ouroboros_query_projection ~138

Build a read-only Run/Stage/Step projection from persisted Ouroboros events for a session or execution aggregate.

NameTypeReqDescription
execution_idstring–Optional execution aggregate ID. When session_id is also provided, this narrows related session-event lookup.
limitinteger–Optional safety cap for related events. If the run has more events than this cap, the tool fails instead of returning a partial projection.
seed_idstring–Optional seed ID override. If omitted, the handler derives one from events and falls back to the queried ID.
session_idstring–Optional orchestrator session ID to project.

No output schema declared.

No examples provided.

ouroboros_ralph ~752

Start a first-class Ralph loop in the background. The loop repeatedly runs evolve_step until QA passes, convergence is reached, a terminal evolution action occurs, cancellation is requested, or max_generations is reached. In non-plugin runtimes, returns a job_id immediately for ouroboros_job_status, ouroboros_job_wait, ouroboros_job_result, and ouroboros_cancel_job. In OpenCode plugin mode, returns job_id=None and delegates the loop to the plugin child session.

NameTypeReqDescription
auto_session_idstring–Optional auto session id used for checkpoint commit metadata.
checkpoint_attempted_ac_idsarray–Acceptance criteria already considered for checkpoint commits.
checkpoint_commitsarray–Existing checkpoint commit records forwarded to evolve_step.
commit_policystring–Optional checkpoint commit policy forwarded to evolve_step.
conductor_decision_idstring–Selected conductor decision authorizing one successor generation.
conductor_directiveobject–Deterministic non-relaxing directive for one successor generation.
executeboolean–Whether each generation should execute and evaluate. Default: true.
execution_idstring–Optional execution id used for checkpoint commit metadata.
grade_regression_windowinteger–Number of trailing iterations whose non-None grades must strictly decrease to stop with stop_reason='grade_regressing'. Default: 2. Range: 2-10. Values < 2 are rejected because strict-decrease requir…
lineage_idstringyesLineage ID to start or continue.
max_generationsinteger–Maximum generations to run before stopping. Default: 10. Range: 1-10.
max_total_secondsnumber–Total wall-clock budget for the entire Ralph loop in seconds. In the in-process runner this is enforced by RalphLoopRunner: checked at the top of every iteration BEFORE launching evolve_step, and on…
oscillation_windowinteger–Number of trailing iterations whose findings_hash must match (and QA must not have passed) to stop with stop_reason='oscillation_detected'. Default: 3. Range: 2-10. Values < 2 are rejected because a…
parallelboolean–Whether each generation may execute ACs in parallel. Default: true.
per_iteration_timeout_secondsnumber–Per-iteration wall-clock bound in seconds. In-process runtime: hard-enforced via asyncio.timeout, the loop stops with stop_reason='iteration_timeout' on expiry. OpenCode plugin runtime: advisory boun…
predecessor_execution_idstring–Execution or generation that this successor follows.
project_dirstring–Project root forwarded to each evolve_step generation.
seed_contentstring–Seed YAML content for generation 1. Omit for continuation.
skip_qaboolean–Skip post-execution QA. Default: false.

No output schema declared.

No examples provided.

ouroboros_record_conductor_decision ~316

Record an audited Active Conductor decision. Record phase=selected before an action, then completed, failed, or declined after the outcome. Mutating successors require engine_ownership_state=closed.

NameTypeReqDescription
action_argumentsobject–Action arguments; only a digest and bounded key list are persisted.
actor_modestring–Host policy mode; required for selected.
attention_event_idstring–Source attention relay/event ID; required for selected.
conductor_directiveobject–Optional bounded corrective successor directive.
decision_idstringyesStable idempotent decision ID.
engine_ownership_statestring–Authoritative ownership state from the attention envelope.
evidence_event_idsarray–Bounded evidence event IDs; required for selected.
phasestringyesDecision phase.
predecessor_execution_idstring–Execution that the selected successor will follow.
result_receiptstring–Bounded outcome receipt or failure/decline reason for terminal phases.
root_job_idstring–Root job used for the two-successor budget.
selected_actionstring–Selected menu action; required for selected.
selected_effectstring–Action effect class; required for selected.
successor_execution_idstring–New execution ID returned by a completed successor action.
user_approval_event_idstring–Required approval receipt for specification changes.
verification_summarystring–Short read-only verifier conclusion; required for selected.

No output schema declared.

No examples provided.

ouroboros_session_signal ~476

Send one audited Ouroboros Synapse intent signal to an exact active AC session attempt. Shipped runtime adapters currently advertise and apply only inform and after_turn; direct requested modes require the selected exact attempt to advertise that mode. redirect and replace remain reserved, capability-gated advertised/effective modes; no shipped adapter currently advertises or applies either directly. redirect nevertheless remains a valid requested mode on one explicit fallback path: fallback_mode=after_turn must be present and that exact attempt must advertise after_turn, which becomes the effective queued mode. All other unsupported requests fail closed, including redirect without that fallback and replace without its capabilities. Query ouroboros_session_signal_targets for the selected exact attempt's live capabilities before sending. A queued result does not mean the signal was applied.

NameTypeReqDescription
contract_effectstring–Whether this preserves the approved shared contract or changes the goal, ACs, constraints, or non-goals.
expected_contract_versioninteger–Optional shared execution-contract generation guard.
expected_execution_idstringyesExecution generation guard.
expires_atstring–Optional timezone-aware ISO-8601 expiry.
fallback_modestring–Explicit redirect-only fallback; after_turn is the sole valid value and is used only when the selected attempt advertises after_turn.
idempotency_keystringyesStable key for this exact execution/scope/attempt intent.
messagestringyesBounded additive implementation intent; no secrets or transcripts.
modestringyesRequested Synapse delivery mode. For the direct path, the exact attempt must advertise the requested mode in ouroboros_session_signal_targets. For the sole fallback path, redirect may be requested wh…
reasonstringyesShort user-visible rationale.
sourcestringyesAudited source authority.
target_session_attempt_idstringyesExact runtime attempt ID; stale attempts fail closed.
target_session_scope_idstringyesStable logical AC session scope ID.
user_approval_event_idstring–Required approval receipt for replace mode.

No output schema declared.

No examples provided.

ouroboros_session_signal_targets ~146

List exact active AC attempts and each attempt's live SessionSignal capabilities for one execution before sending a signal. Advertised modes are valid direct requested modes for that exact attempt. One explicit fallback path is also valid: redirect may be requested while omitted from discovery only with fallback_mode=after_turn when after_turn is advertised, and the effective queued mode is after_turn. Shipped adapters currently do not advertise or effect redirect or replace; other unsupported requests fail closed. Match the user's intent to AC content, and ask only when multiple candidates remain genuinely ambiguous.

NameTypeReqDescription
execution_idstringyesExecution ID returned by run/auto/evolve/ralph start or its job observer.

No output schema declared.

No examples provided.

ouroboros_session_status ~47

Get the status of an Ouroboros session. Returns information about the current phase, progress, and any errors.

NameTypeReqDescription
session_idstringyesThe session ID to query

No output schema declared.

No examples provided.

ouroboros_start_auto ~583

Start ooo auto in the background and return auto_session_id + job_id immediately. Resume with the returned auto_session_id; poll with ouroboros_job_status / ouroboros_job_wait and read final state via ouroboros_job_result.

NameTypeReqDescription
attach_executionstring–Attach an externally verified execution id to an unknown run handoff
attach_jobstring–Attach an externally verified job id to an unknown run handoff
attach_sessionstring–Attach an externally verified run session id to an unknown run handoff
attach_sourcestring–Source label for an attached run handle
commit_policystring–Checkpoint commit policy: ac_checkpoint, final_only, or none
complete_productboolean–When true, chain RUN → RALPH_HANDOFF after a successful run handoff so a single ouroboros_auto invocation iterates Ralph until QA passes, convergence, or a budget bound trips. Defaults to false (opt-…
cwdstring–Working directory
domainstring–Optional domain profile name (for example, coding)
efficiency_modestring–Execution efficiency policy: adaptive may use lower-cost child tiers with recovery escalation; quality_first keeps child ACs at the parent starting tier. When omitted on a fresh start, a configured e…
frugality_assurancestring–Frugality assurance: off, observe, or explicitly authorized strict. Defaults from efficiency_mode and is immutable on resume.
goalstring–Goal/task for ooo auto
max_interview_roundsinteger–Max interview rounds
max_repair_roundsinteger–Max repair rounds
pipeline_timeout_secondsnumber–Top-level pipeline deadline in seconds. Defaults to 7200s for new sessions. Range: 60-86400. Cannot be changed on resume; the deadline is preserved across process restarts.
reconcile_runboolean–Try to reconcile an unknown run handoff without starting a duplicate run
reconcile_sourcestring–Source label for run handoff reconciliation
resumestring–Auto session id to resume
skip_runboolean–Stop after A-grade Seed
user_preferencesobject–Caller-supplied user preferences keyed by ledger section name (e.g. runtime_context, constraints, non_goals). The Driver tags matching answers with [from-auto][user_preference] in the ledger. Keys mu…
worktree_policystring–Worktree isolation policy: auto, always, current, or none

No output schema declared.

No examples provided.

ouroboros_start_evaluate ~420

Start an evaluation in the background and return a job ID immediately. Use this instead of ouroboros_evaluate when the three-stage pipeline (mechanical + semantic + optional consensus) is expected to exceed the MCP client tool-call timeout. Poll with ouroboros_job_status / ouroboros_job_wait and read the verdict via ouroboros_job_result. In plugin mode with auto_evolve disabled, evaluation is delegated to an OpenCode Task pane and job_id is None. With auto_evolve enabled, the parent keeps evaluation pollable so a rejection can start Ralph.

NameTypeReqDescription
acceptance_criteriaarray–Multiple acceptance criteria for checklist evaluation. When two or more items are provided, each AC is evaluated independently and the results are aggregated into a pass/fail checklist (#366). Overri…
acceptance_criterionstring–Specific acceptance criterion to evaluate against
artifactstringyesThe execution output/artifact to evaluate
artifact_typestring–Type of artifact: code, docs, config. Default: code
auto_evolveboolean–Override execution.auto_evolve for this background call. When true, an explicitly rejected formal evaluation starts a bounded Ralph continuation loop.
seed_contentstring–Original seed YAML for goal/constraints extraction
seed_handoff_idstring–Opaque parent-owned Seed handle for plugin evaluation
session_idstringyesThe execution session ID to evaluate
trigger_consensusboolean–Force Stage 3 consensus evaluation. Default: False
working_dirstring–Project root used to resolve Stage 1 mechanical verification commands and Stage 2 source-file visibility. Commands are read from .ouroboros/mechanical.toml; when the file is missing, the evaluator ma…

No output schema declared.

No examples provided.

ouroboros_start_evolve_step ~502

Start one evolve_step generation in the background and return a job ID immediately for later status checks. In plugin mode, evolution is delegated to an OpenCode Task pane and job_id is None — results appear in the Task pane instead of being pollable via job_status/job_result.

NameTypeReqDescription
auto_session_idstring–Optional auto session id for checkpoint commit metadata.
benchmark_controlboolean–Run a deliberate full-graph frugality control. Default: false. Requires execute=true, Gen 2+, an explicit Git project_dir, and a clean baseline; unavailable through plugin delegation.
checkpoint_attempted_ac_idsarray–Acceptance criteria already considered for checkpoint commits.
checkpoint_commitsarray–Existing checkpoint commit records for idempotency.
commit_policystring–Optional checkpoint commit policy for passed ACs.
conductor_decision_idstring–Selected conductor decision authorizing this successor generation.
conductor_directiveobject–Bounded corrective context for this successor generation.
executeboolean–Whether to run seed execution and evaluation. True (default): full pipeline with Execute→Validate→Evaluate. False: ontology-only evolution (fast, no execution).
execution_idstring–Optional execution id for checkpoint commit metadata.
lineage_idstringyesLineage ID to continue or new ID for Gen 1
parallelboolean–Whether to run ACs in parallel. True (default): parallel execution (fast, may cause import conflicts). False: sequential execution (slower, more stable code generation).
predecessor_execution_idstring–Execution or generation that this successor follows.
project_dirstring–Project root directory for validation (pytest collection check). If omitted, auto-detected from execution output or CWD.
recover_expired_claimboolean–Explicitly recover an expired lineage writer claim after confirming the prior owner process is dead. Default: false
seed_contentstring–Seed YAML text for Gen 1. Pass a YAML-formatted string (for example, newline-delimited 'goal: ...' fields), not JSON-shaped text or an object literal; some MCP clients may otherwise coerce the value…
skip_qaboolean–Skip post-execution QA evaluation. Default: false

No output schema declared.

No examples provided.

ouroboros_start_execute_seed ~562

Start a seed execution in the background and return a job ID immediately. Use ouroboros_ac_tree_hud for live progress snapshots and ouroboros_job_result for terminal output. In plugin mode, execution is delegated to an OpenCode Task pane and job_id is None — results appear in the Task pane instead of being pollable via job_status/job_result. This is the handler for 'ooo run' commands — do NOT run 'ooo' in the shell; call this MCP tool instead.

NameTypeReqDescription
auto_evaluateboolean–Override execution.auto_evaluate for this call. When true, a completed background execute_seed run enqueues formal 3-stage evaluation as a separate bounded background job.
auto_evolveboolean–Override execution.auto_evolve for the chained evaluation. When true, an explicitly rejected evaluation starts a bounded Ralph continuation loop.
conductor_decision_idstring–Selected conductor decision receipt authorizing a fresh successor.
conductor_directiveobject–Bounded corrective context copied exactly from the selected conductor decision. Fresh successor executions only.
cwdstring–Working directory used to resolve relative seed paths.
efficiency_modestring–Execution efficiency policy. adaptive may start decomposed ACs on lower-cost tiers and escalate on recovery; quality_first keeps children at the parent starting tier. When omitted on a fresh start, a…
frugality_assurancestring–Frugality assurance: off, lightweight observe, or explicit strict baseline eligibility. Defaults from efficiency_mode; strict is never enabled implicitly.
idempotency_keystring–Optional process-local idempotency key. A second call with the same key returns the same execution metadata and does NOT enqueue a new execution. Map TTL is process lifetime — not persistent across s…
max_iterationsinteger–Maximum number of execution iterations. Default: 10
model_tierstring–Model-tier routing: small/medium/large → frugal/standard/frontier execution tier (trusted decomposed children may run one tier below; retries escalate). Omit to preserve automatic runtime selection;…
predecessor_execution_idstring–Execution ID that the new successor follows.
seed_contentstring–Inline seed YAML content to execute.
seed_pathstring–Path to a seed YAML file. If the path does not exist, the value is treated as inline seed YAML.
session_idstring–Optional session ID to resume. If not provided, a new session is created.
skip_qaboolean–Skip post-execution QA evaluation. Default: false

No output schema declared.

No examples provided.

ouroboros_start_ralph ~748

Fire-and-forget alias for ouroboros_ralph. Starts the same runtime-owned Ralph loop. In non-plugin runtimes, returns a job_id immediately for ouroboros_job_status, ouroboros_job_wait, ouroboros_job_result, and ouroboros_cancel_job. In OpenCode plugin mode, delegates to a plugin child session and returns job_id=None with status='delegated_to_plugin'; results are not pollable via job_status/job_result.

NameTypeReqDescription
auto_session_idstring–Optional auto session id used for checkpoint commit metadata.
checkpoint_attempted_ac_idsarray–Acceptance criteria already considered for checkpoint commits.
checkpoint_commitsarray–Existing checkpoint commit records forwarded to evolve_step.
commit_policystring–Optional checkpoint commit policy forwarded to evolve_step.
conductor_decision_idstring–Selected conductor decision authorizing one successor generation.
conductor_directiveobject–Deterministic non-relaxing directive for one successor generation.
executeboolean–Whether each generation should execute and evaluate. Default: true.
execution_idstring–Optional execution id used for checkpoint commit metadata.
grade_regression_windowinteger–Number of trailing iterations whose non-None grades must strictly decrease to stop with stop_reason='grade_regressing'. Default: 2. Range: 2-10. Values < 2 are rejected because strict-decrease requir…
lineage_idstringyesLineage ID to start or continue.
max_generationsinteger–Maximum generations to run before stopping. Default: 10. Range: 1-10.
max_total_secondsnumber–Total wall-clock budget for the entire Ralph loop in seconds. In the in-process runner this is enforced by RalphLoopRunner: checked at the top of every iteration BEFORE launching evolve_step, and on…
oscillation_windowinteger–Number of trailing iterations whose findings_hash must match (and QA must not have passed) to stop with stop_reason='oscillation_detected'. Default: 3. Range: 2-10. Values < 2 are rejected because a…
parallelboolean–Whether each generation may execute ACs in parallel. Default: true.
per_iteration_timeout_secondsnumber–Per-iteration wall-clock bound in seconds. In-process runtime: hard-enforced via asyncio.timeout, the loop stops with stop_reason='iteration_timeout' on expiry. OpenCode plugin runtime: advisory boun…
predecessor_execution_idstring–Execution or generation that this successor follows.
project_dirstring–Project root forwarded to each evolve_step generation.
seed_contentstring–Seed YAML content for generation 1. Omit for continuation.
skip_qaboolean–Skip post-execution QA. Default: false.

No output schema declared.

No examples provided.

ouroboros_submit_fanout_results ~270

Submit correlated results from a subagent fan-out back to Ouroboros. After spawning the advisory/persona/investigation subagents declared by a prior tool's `meta` (which stamped a `fanout_id` and a `result_correlation_key`), call this tool with one {key, content} per child output — `key` is the value of the correlation field for that child. A child you could not spawn at all is exactly {key, undispatched: true}; never invent output. Missing required keys return `status=partial`; retry with EVERY lane. A complete submission returns a bounded disposable artifact envelope; fetch its body with the MCP tool `ouroboros_fetch_artifact`.

NameTypeReqDescription
correlation_keystring–The result_correlation_key from the originating meta (e.g. 'context.persona' or 'code_facts').
fanout_idstringyesThe fanout_id stamped into the originating tool's meta.
resultsarrayyesCorrelated child outputs: objects with a 'key' (the correlation value) and a 'content' (the child result), or 'undispatched': true when the child never ran.
session_idstring–Interview/lateral session id the fan-out belongs to.

No output schema declared.

No examples provided.

Install

How do I install the Ouroboros MCP server?

Ouroboros runs locally as a PyPI package, launched with uvx ouroboros-ai. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

pypi · ouroboros-ai

# add to Claude Code
claude mcp add q00-ouroboros -- uvx ouroboros-ai
Common questions

What is the Ouroboros MCP server?

Ouroboros is an MCP server listed in the public MCP registry as io.github.Q00/ouroboros. Pins an acceptance spec; the verify command and expected output never enter the success contract. This page covers its PyPI package (ouroboros-ai).

Is the Ouroboros MCP server safe to use?

Ouroboros scores 65 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 17 October 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Ouroboros MCP server expose?

Ouroboros exposes 36 tools: ouroboros_execute_seed, ouroboros_start_execute_seed, ouroboros_auto, ouroboros_start_auto, ouroboros_session_status, and 31 more. Their descriptions and schemas cost roughly 10,095 tokens of context every time the server is loaded.

Is the Ouroboros MCP server still maintained?

Ouroboros is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Ouroboros MCP server under?

Ouroboros declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.