Skip to main content
The brain is the only source of tool schemas: clients read them from tools/list, and there is no client-side catalog. Wire names are dotted (workflow.status_and_next); if you see underscores (workflow_status_and_next, mcp_merv_workflow_status_and_next) that’s your client renaming them. Live JSON schemas come from TOOL_MANIFEST in merv/src/merv/brain/surface/tools/contracts.py. Internal tools are still listed by tools/list but flagged hidden: true. Feature gating removes families outright: storage tools when object storage is off, sandbox tools when sandboxes are off, and the two MLflow tools unless tracking is enabled (off by default). 54 tools: 43 public, 11 internal. A default deployment (storage on, tracking off) exposes 41 public tools; turning storage off removes 6 more. Almost every tool takes project_id (required).

Start here

The workflow.status_and_next envelope

Gate codes
  • Experiment: plan_required, design_review_required, execution_ready, results_report_required, logic_graph_required, experiment_review_required.
  • Reflection: reflection_roster_incomplete, reflections_complete, project_graph_required, reflection_doc_required, change_spec_required, reflection_review_required, consolidation_proposal_required, consolidation_review_required, central_advance_required.
  • Plus <review>_passed once a review passes.
next_action values
  • Experiment: write_and_submit_plan, submit_design_for_review, mark_ready_to_run, start_running, run_experiment_and_retain_results, write_and_submit_results_report, write_and_submit_logic_graph, submit_results_for_review, complete_experiment, retry_running, mark_experiment_failed, abandon_experiment.
  • Reflection: fan_out_reflection_subagents, submit_reflections, update_and_submit_project_graph, write_and_submit_reflection_doc, write_and_submit_change_spec, submit_reflection_artifacts, begin_consolidation, submit_consolidation_proposal, advance_central, wait_for_central_advance, wait_for_runner_publish, abandon_reflection.
  • At a review gate: launch_<role>_reviewer, wait_for_<role>_review — for design, experiment, reflection, consolidation.

Experiments

Artifacts

Claims and candidates

Reviews

Reflection and consolidation

Sandboxes

All take project_id; most accept experiment_id or sandbox_uid to pick the machine.

Storage, literature, feed

Off by default

mlflow.context, mlflow.finalize_run — served only when tracking is enabled.

Internal (listed, hidden)

project.list · project.get · project.update · experiment.list · experiment.get_state · claim.list · reflection.list · review.status · sandbox.health · storage.put_object · storage.complete_upload. Agents don’t need them; the UI and recovery paths do.