Skip to main content
orca mcp serve runs an MCP server on stdio that exposes Orca’s control plane to any MCP client. It ships inside the orca CLI, so there is nothing extra to install and it reuses the CLI’s stored credentials.
Other clients register {"command": "orca", "args": ["mcp", "serve"]} (JSON) or the TOML equivalent.

Auth resolution

Auth is resolved once, lazily, on the first tool call, checking in order: the CLI’s --context selection, then ORCA_API_KEY and ORCA_API_URL environment variables, then the active context in ~/.config/orca/config.json (written by orca login). The resulting client is cached for the life of the orca mcp serve process. A missing or rejected credential is reported fresh on every call, since nothing was cached, and its in-band tool error states the fix.

Tools

One resource: orca://openapi, the live OpenAPI spec (also public at https://api.orcapods.ai/api/openapi.yaml), which documents everything api_request can reach.

Behavior contract

  • Results are compact JSON, capped near 50KB and 100 events per call, with truncation always announced in the payload. Narrow requests (limit, prefix, maxBytes) to page through the rest.
  • Failures are in-band MCP error results whose text states the fix (for example Run: orca login (or set ORCA_API_KEY)), never silent.
  • The server writes nothing to stdout except JSON-RPC; diagnostics go to stderr.

Following runs

MCP tools are request and response, so streaming is modeled as a long-poll loop:
Each call returns as soon as the run finishes, or after timeoutSeconds with whatever arrived; afterEvent deduplicates across calls.
Tool-by-tool reference, including input fields and the orca://openapi resource: orca mcp.

Next

The tools above are the how. Build it with your coding agent is the what: the loop a session runs with them, and the table that says which kind of defect belongs in which file.
Last modified on September 6, 2026