Catch breaking tool schemas before release.
Compare a saved contract with a candidate. Fail CI when inputs become narrower or outputs stop meeting the saved guarantee. Run locally. No tool calls, accounts, or customer uploads.
node src/cli.mjs fixtures/additive.json --human ContractCanary: PASS Adapter: json-schema
A pass has a precise scope.
Structural compatibility in a documented JSON Schema subset. Required fields, types, enums, object properties, arrays and bounds are checked. Unsupported keywords, missing schemas and malformed input return UNKNOWN, not PASS.
Open the labeled additive fixture receipt · Read the local CLI guide · Privacy
MCP snapshot adapter
Use saved tools/list captures with inputSchema and outputSchema. ContractCanary never connects to an MCP server or invokes its tools. Missing outputSchema is unknown. Authentication, behavior and side effects are outside this check.