The stdio shim: spectra mcp --agent NAME, signing with the agent's key issue #9 closed: completed andymccall opened this · 1 comment
andymccall set labels feature ·
andymccall set milestone Sprint 1 ·
andymccall edited ·
andymccall edited ·
andymccall referenced by change eb675dfa5e18 on main ·
Done: spectra mcp --agent NAME finds the agent's home in the ledger (or --home), refuses a home holding another agent's key, signs each request with the agent's key and forwards it over the socket. It negotiates 2025-11-25/2025-06-18/2025-03-26 with its client and passes 2026-07-28 requests through, handles each request concurrently (a ping is answered while a wait is in flight), writes nothing but JSON-RPC to stdout, and answers 'Is spectra serve running?' when the daemon is down. tests/cli_mcp.rs drives it over pipes. Connecting the real Claude Code, Antigravity and Kimi clients needs Andy's MCP configuration and accounts, so it is part of the acceptance run (issue #13).
andymccall closed ·
andymccall referenced by change 62d35f1dd866 on main ·
spectra mcp --agent NAME: a stdio MCP server that signs each request with the agent's key from its ownOXY_HOME(issue #4) and forwards it to the daemon over the Unix socket (spec §15.1, §8.5). It is the standard way in for every client: the configuration is one line with nothing secret in it, and every event the agent causes carries its signature. Speaks revisions 2025-11-25, 2025-06-18 and 2025-03-26, asoxy mcpdoes. Nothing on stdout but protocol.Done when
tests/cli_mcp.rsdrives the shim over pipes the way oxygen's does, and Claude Code, Antigravity and Kimi Code each connect through it (claude mcp add spectra -- spectra mcp --agent NAME). After issue #8.