MCP
o8 ships an MCP server first, an IDE second — any agent that speaks MCP can drive an o8 fleet through the same governance layer.
o8 ships an MCP server first, an IDE second. The desktop app, the mobile inbox, and the orchestrator's own tools are all clients of the same operator MCP server — and so is anything else that speaks the protocol. Claude Desktop, a terminal Claude Code session, Cursor, a third-party agent: each can drive an o8 fleet through the same governance layer that protects you on your phone.
We don't need to be everyone's editor. We need to be everyone's control plane.
What an agent can do through it
The server exposes o8's real operations as tools, grouped by what they do:
- Chat, status & approvals — read the orchestrator's live state, send a message into a session, pull history, and resolve the diff waiting at the approval gate (
o8_status,o8_send,o8_history,o8_approve,o8_reject). - Mission dispatch — the create → dispatch → status → review → approve sequence: the same calls the desktop runs when you dispatch a packet by hand. The spine is
create_mission→dispatch_mission→get_mission_status→submit_review→approve_and_merge, with related controls for tailing, diffing, and retrying. - Webview control — screenshot, snapshot, click, type, read, navigate, and wait on the actual installed app. An external agent can write tests, reproduce a regression, and verify a UI fix landed in the real build (
o8_view_screenshot,o8_view_click,o8_view_read, and the rest). - The Brain — ask a question and get cited facts back, or contribute an observation. Any connected agent inherits your organizational memory the moment it connects (
cortex_ask,cortex_propose_observation).
How it connects
o8 runs the operator MCP server as a local stdio process — bundled inside the signed app, no separate clone or install. Wire it into a client from Settings → MCP ("install for Claude Desktop"), which writes the client's config (merge-preserving, with a timestamped backup) to point at the bundled server. A Claude Code session opened in your repo picks it up automatically. Everything stays on the loopback — no network port is exposed.
Not a bypass
An external agent driving o8 over MCP is bound by the same gates as the operator. The server calls the same internal APIs the desktop calls, behind the same loopback + token guard. A third-party agent's dispatch_mission still produces a packet the orchestrator reviews before it reaches your inbox; o8_approve still logs an event carrying the client's identifier, so you know which agent approved. Adding an MCP client is the same posture as adding a device to your network — it can do what the protocol allows, no more.