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

Per call, 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). A missing or rejected credential returns an in-band tool error whose text contains the fix, so agents self-correct.

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.