LLMs go stale. Schemas drift. Agents don't error — they silently make valid-but-wrong calls. canondb tracks the current schema and classifies every breaking change, so agents call the truth.
We pre-track a curated set of the tools agents actually call, normalize every schema, and do the thing raw changelogs don't: say who a change breaks.
Each source is re-fetched on a schedule.
Every response carries fetched_at and a stale flag — we never
serve stale data as current.
Each change is classified, not just detected.
Query it over REST, let agents consult it at call-time over MCP, or browse the public Git feed. Same corpus, three surfaces.
Public, no key required — the current normalized schema and recent classified changes for every tracked source.
# list everything we track curl https://canondb.dev/sources # current schema for a source (+ fetched_at, stale) curl https://canondb.dev/sources/mcp-tools:deepwiki/current # recent breaking changes curl "https://canondb.dev/sources/mcp-tools:deepwiki/changes?severity=breaking_strict"
Point an agent at https://canondb.dev/mcp (Streamable HTTP). Mid-task it can
ask "has this tool's schema drifted since I last synced?" before it calls.
# tools list_sources get_current get_changes check_drift # connect (bearer-gated) npx @modelcontextprotocol/inspector # → https://canondb.dev/mcp
Curated, not point-it-anywhere. Want one added? Ask below.
Tell us which server or API to add, or that you want a webhook when a schema breaks. This shapes what we build next.