orcho-mcp
Model Context Protocol server for Orcho.
Exposes orcho's runtime to MCP-aware clients (Claude Code, Cursor, Zed, and other MCP-speaking tools) over stdio. It lets clients drive Orcho as a production harness and control plane for agentic software delivery: act, observe, decide, inspect, and resume without raw log scraping.
📖 Documentation: docs.orcho.dev
An AI client (here Claude Code) driving a run through this server —
orcho_run_start → orcho_run_watch → orcho_run_evidence → verdict, all
typed, no log scraping. Real session; the run is mock=True. Interactive
version: docs.orcho.dev.
Status: public alpha. Core control-loop surfaces are available:
- Act:
orcho_run_start/orcho_run_resume/orcho_run_cancelwith L4-test-pinned semantics (process-group signal handling, supervisor-owned restart-recovery, race-aware cancel).- Observe:
orcho_run_statusanswers "What is happening / what should I do next?";orcho_run_historyandorcho_run_events_tailare read-only, polling-friendly context.- Route:
orcho_run_diagnoseandorcho_workspace_pending_decisionsclassify the continuation subject and visible decision work.- Decision support:
orcho_handoff_advice/orcho_delivery_gateexplain sanctioned choices without applying them.- Decide:
orcho_phase_handoff_decideresolves runtime-published phase-handoff actions;orcho_delivery_gate/orcho_delivery_decideexpose and resolve post-release delivery or correction. Decision tools never invent actions and never spawn a pipeline process.- Inspect:
orcho_run_evidenceanswers "What happened / what proves it?";orcho_run_diffanswers "What changed?"- Measure:
orcho_run_metricsanswers "How much did it consume?" with tokens, duration, phase breakdown, and cost-reference fields when available.Live progress:
orcho_run_watchemits orderednotifications/progresswhen the MCP request carries aprogressToken. Clients that don't carry one pollorcho_run_status/orcho_run_events_tailagainst the same run state.
Install
Choose an install path:
| Path | Use when | Command |
|---|---|---|
Native CLI with pipx |
You want orcho and orcho-mcp available from the shell. |
pipx install orcho |
| Docker | You want the MCP server and agent CLIs isolated inside a container. | docker pull ghcr.io/symphos-ai/orcho |
| Direct MCP dependency | You intentionally want only this package in a virtualenv, CI image, devcontainer, or custom image. | python -m pip install orcho-mcp |
If pipx is missing, install it first. On macOS with Homebrew:
brew install pipx
pipx ensurepath
exec zsh -l
For Linux or Windows, use the official pipx installation guide.
Recommended CLI install
Use the orcho distribution when you want both the Orcho commands and the MCP
server available from your shell. Since orcho 0.1.1 the server ships by
default — no extra needed. pipx keeps the command set isolated from the
current project or Python environment.
pipx install orcho
orcho-mcp --help
Since orcho 0.1.1 this includes the MCP server by default. The [mcp] and
[all] extras remain as no-op aliases.
Containerized MCP server
Use Docker when an MCP client should start an isolated server over stdio:
docker run --rm -i \
-v /path/to/my-workspace:/workspace \
-v ~/.orcho-auth:/agent-auth:ro \
-e ORCHO_WORKSPACE=/workspace/workspace-orchestrator \
ghcr.io/symphos-ai/orcho \
orcho-mcp
Inside that server, projects live under /workspace/<project-name>. The
orcho Docker docs
cover one-time credential bootstrap and custom project toolchains.
Direct MCP package install
Use pip when you intentionally want orcho-mcp in the active virtual
environment, CI image, devcontainer, or Docker image.
python -m pip install orcho-mcp
This pulls orcho-core (the engine), the official mcp Python SDK, and the runtime pieces orcho-mcp depends on.
Create a workspace
Orcho writes run state into an Orcho workspace. Start by pointing it at the folder that groups your project repos:
orcho workspace init ~/www/my-workspace
The command creates ~/www/my-workspace/workspace-orchestrator/,
including .orcho/ settings and extension-point guides, and prints the
MCP config snippet for that workspace. To write the snippet directly
into a project-local MCP config:
ORCHO_MCP_COMMAND="$(command -v orcho-mcp)"
orcho workspace init ~/www/my-workspace \
--mcp-config ~/www/my-workspace/.mcp.json \
--mcp-server-name orcho-my-workspace \
--orcho-mcp-command "$ORCHO_MCP_COMMAND"
ORCHO_MCP_COMMAND must point to the command your MCP client can run.
For packaged installs this is normally orcho-mcp. For source installs,
use the absolute path inside the Orcho environment, for example
/Users/me/orcho-preview/orcho-core/.venv/bin/orcho-mcp.
Each MCP server process owns one workspace through ORCHO_WORKSPACE.
For multiple workspaces, add multiple MCP server entries.
Register with an MCP-aware client
Each client has its own MCP registry/config format. Use
docs/mcp_client_setup.md for copy-paste
instructions for Codex CLI/app, Claude Code, Gemini CLI, the Claude app,
and Antigravity.
What's inside
npx @modelcontextprotocol/inspector orcho-mcp
Opens a web UI on localhost showing every registered tool, resource, and prompt with full JSON schemas — Anthropic's official Inspector ≈ Swagger UI for MCP.
A static catalogue is also committed at docs/mcp_schema.json — the same shape, snapshotted in CI.
Control loop
The full contract — starting, observing, resuming, cancelling, deciding, and inspecting runs through the MCP wire — lives in docs/run_lifecycle.md. The complete multi-axis decision graph is documented in docs/architecture/control_state_machine.md. Tool docstrings stay terse; those files are the long-form references.
Tool naming is consistent: every run-lifecycle tool is orcho_run_<verb>. State-transition and inspection tools sit beside that group with their own names:
| Group | Tools |
|---|---|
| Act | orcho_run_start, orcho_run_resume, orcho_run_cancel |
| Observe | orcho_run_status, orcho_run_live_status, orcho_run_watch, orcho_run_events_summary, orcho_run_events_tail, orcho_run_history |
| Route | orcho_run_diagnose, orcho_workspace_pending_decisions |
| Decision support | orcho_handoff_advice, orcho_delivery_gate |
| Decide | orcho_phase_handoff_decide, orcho_delivery_decide |
| Inspect | orcho_run_evidence, orcho_run_diff |
| Measure | orcho_run_metrics |
When choosing a read tool, start from the question:
| Question | MCP tool |
|---|---|
| What is happening / what should I do next? | orcho_run_status |
| What happened / what proves it? | orcho_run_evidence |
| How much did it consume? | orcho_run_metrics |
| What changed? | orcho_run_diff |
For an end-to-end walkthrough of the full control loop with code, see docs/control_loop_walkthrough.md.
Current public-alpha boundaries
orcho_run_live_statusis a bounded mono-run card. Cross runs use the broader status, event, evidence, and sub-run projections.orcho_workspace_pending_decisionscurrently aggregates phase handoffs; it is not a universal inbox for every delivery and cross-gate decision.- a CLI-started or otherwise foreign run can be fully inspected, but mutation
is refused as
inspect_onlywhen this MCP server does not own its supervisor record. - core owns the lifecycle and allowed actions. The MCP layer projects that state; it does not create a second state machine.
Architecture
orcho-mcp is one of the public Orcho runtime packages:
orcho-core— pipeline runtime + CLI (Apache-2.0).orcho-mcp— MCP server, this repo (Apache-2.0).
The post-v1 cross-MCP consumer roadmap (orcho-as-MCP-client — pipeline agents calling external GitHub / Linear / Slack MCP servers) is documented in orcho-core/docs/plans/2026-05-06-cross-mcp-orchestration.md.
For contributor-facing architecture and test guidance:
docs/architecture/control_state_machine.mdmaps core lifecycle state, MCP projections, pending decisions, delivery, continuation lineage, and the typed tool edge for each supported transition.docs/architecture/mcp_boundaries.mddescribes the package boundaries enforced by the architecture tests.docs/architecture/observation_delivery.mddefines the durable replay contract for MCP observation and notification use.docs/testing.mdexplains the test philosophy, layer model, fixture style, and verification commands.
License
Apache-2.0. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orcho_mcp-0.5.0.tar.gz.
File metadata
- Download URL: orcho_mcp-0.5.0.tar.gz
- Upload date:
- Size: 272.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc14d7219f6e5402c7ec61769224100dd8ceac739f2858dc1358542bbb1a9ea0
|
|
| MD5 |
64826911146c4714744b9c0cc43c8868
|
|
| BLAKE2b-256 |
7355d9288ae9c40df2dc4a4b73771217409c249fd0b68c7cd8461807f1047863
|
Provenance
The following attestation bundles were made for orcho_mcp-0.5.0.tar.gz:
Publisher:
release.yml on symphos-ai/orcho-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orcho_mcp-0.5.0.tar.gz -
Subject digest:
cc14d7219f6e5402c7ec61769224100dd8ceac739f2858dc1358542bbb1a9ea0 - Sigstore transparency entry: 2225321206
- Sigstore integration time:
-
Permalink:
symphos-ai/orcho-mcp@7679a5090c88da5d87844c2ada9ec6f0c2d51c9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/symphos-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7679a5090c88da5d87844c2ada9ec6f0c2d51c9b -
Trigger Event:
push
-
Statement type:
File details
Details for the file orcho_mcp-0.5.0-py3-none-any.whl.
File metadata
- Download URL: orcho_mcp-0.5.0-py3-none-any.whl
- Upload date:
- Size: 312.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5b5396fe940d30d2fa7cb921d812f6ecc94832958817155236c655a3b6d7da9
|
|
| MD5 |
b4a5f8fb1be50c651eb10386e6f88ca5
|
|
| BLAKE2b-256 |
9dc865255aab4cf76d25308f94374d7468766502c8fad609adaaed8862d22936
|
Provenance
The following attestation bundles were made for orcho_mcp-0.5.0-py3-none-any.whl:
Publisher:
release.yml on symphos-ai/orcho-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orcho_mcp-0.5.0-py3-none-any.whl -
Subject digest:
f5b5396fe940d30d2fa7cb921d812f6ecc94832958817155236c655a3b6d7da9 - Sigstore transparency entry: 2225321812
- Sigstore integration time:
-
Permalink:
symphos-ai/orcho-mcp@7679a5090c88da5d87844c2ada9ec6f0c2d51c9b -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/symphos-ai
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@7679a5090c88da5d87844c2ada9ec6f0c2d51c9b -
Trigger Event:
push
-
Statement type: