pikopod mcp serves pikopod over the Model Context Protocol on stdin and stdout, so an agent that just wrote or patched an integration can verify it against what the provider actually sends before opening a pull request. It reads the same pikopod.yaml, starts no listener and no daemon, and exits 2 when the configuration is missing or invalid.
Connect a client
Add pikopod to your MCP client’s server list. The--config flag is optional and defaults to ./pikopod.yaml in the working directory.
Verdicts
Every tool returns one verdict from a closed set, andCLEAN and UNVERIFIABLE never collapse. An agent proceeds on CLEAN and must be able to see that nothing was proven.
Every result is
{verdict, reason?, warmup?, data?, error?}. drift_events always carries a warmup block so the agent can see how much of the API it has actually observed, with the standing notice: only endpoints that received traffic through the agent are known; an endpoint with no traffic is invisible, and one still warming up cannot alert.
What the tools answer
The readers are the checks an agent cannot make by reading files.
The controls put a running sandbox (
pikopod up) into a state the caller’s own tests then meet. They act on a local fake and never on a provider: set_mode, clear_mode, arm_fault, clear_faults, emit_webhook.
Deliberately absent: fix (a model editing code with no human in the loop), import, chaos, ack, accept, and every reset. They stay human-operated commands.
The full argument schemas and verdict rules per tool are in the MCP tools reference.
A typical agent session
1
Check the contract the agent is coding against
spec_diff between the pinned spec and the provider’s current one. FINDINGS at ERR means the agent is about to integrate against a contract that already broke.2
Put the sandbox into the failure the code must survive
set_mode with name: "retry_storm" on the running sandbox, then run the project’s own tests against http://127.0.0.1:4600/<sandbox>.3
Confirm what the code actually sent
get_requests returns the sandbox’s request journal. A retry claim is provable here, because the journal records order and headers with identifiers tokenized.4
Ask whether production disagrees
drift_events and conformance on the upstream. If the answer is UNVERIFIABLE because warmup is incomplete, the agent knows exactly how many samples it has and how many the gate needs.5
Clean up
clear_mode and clear_faults so the next suite meets a clean sandbox. Modes are global to the sandbox and stay until cleared.