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.
{"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:timeoutSeconds with whatever arrived; afterEvent deduplicates across calls.
Tool-by-tool reference, including input fields and the
orca://openapi resource: orca mcp.