07 · Software · platform · Sep 2026

This site, as an API

Every page here is also a REST API and an MCP server, generated from the same proof ledger, so an agent can read me the way a person does.

The decision

One registry, three surfaces

I didn't want docs that drift from the code or an MCP server that drifts from the API. So there is one registry of endpoints. The REST routes, the OpenAPI document, the MCP tools and the docs page are all generated from it, and every value in every response comes from the same ledger the pages render from, with its source attached.

What I built

  • A versioned REST API with an OpenAPI 3.1 document, CORS for any origin, cache headers and ETags.
  • An MCP server over Streamable HTTP (JSON-RPC 2.0) with tools, resources and a prompt, so Claude or any MCP client can connect with one URL.
  • A docs page that runs every endpoint live, and a build gate that refuses to ship if any page or response references an unverified fact.

What was hard

Honesty at the API layer

A page can hide a fact behind a footnote; a JSON field can't. Private and unproven facts are filtered before the registry ever sees them, so no endpoint can leak what the pages don't show.

What I learned

  • Build the thing the reader will actually use. For a reviewer with a hundred applications, that is increasingly an agent.

Results

  • Live on this domain. Try it from the docs.