The current state. What this origin is, right now. Versioned, signed, fetched on first contact. Photograph.
name ·
version ·
protocolVersion ·
endpoints[] ·
did:web ·
sig (Ed25519)
Agent endpoints are described across MCP server cards, A2A registries, agents.json, llms.txt, and a half-dozen GitHub catalogs. They drift. They disagree. When an API mutates underneath an agent, the agent breaks silently. There is no robots.txt for telling agents the world has moved. This is that announcement layer — plus a public observatory of the existing ecosystem's disagreements.
MCP
A2A
ANP
OpenAPI
· not a competitor
/api/corpus/counts · respects robots.txt · schemas-only · opt-out at /api/corpus/optout
The current state. What this origin is, right now. Versioned, signed, fetched on first contact. Photograph.
name ·
version ·
protocolVersion ·
endpoints[] ·
did:web ·
sig (Ed25519)
The history. Append-only. Schema migrations, deprecations, canonical endpoint moves — every change announced, every entry signed. Testimony.
entry/migrated ·
entry/deprecated ·
entry/moved ·
since ·
sig (Ed25519)
Snapshot ≠ stream. The agent-card answers what is true now. The feed answers how did we get here, and what's ahead. Conflating them is why migrations break agents silently. Both are signed; both are required.
MCP and A2A solved how agents talk. Nothing solved how the world announces it changed. agent-feed sits beneath all of them — protocol-agnostic, bring-your-own-schema. We are not trying to be the agentic web. The web doesn't live in DNS; we don't either.
Run an MCP server, an A2A agent, or any service with a machine-readable surface? See how the public world describes you. Make your description authoritative.
https://example.com or a GitHub repo. The dashboard
fans out across every source we crawl.
bunx agent-feed sign with your did:web key.
agent-feed.xml. From the next crawl on,
your origin is authoritative.
# after step 02 — the dashboard hands you this $ bunx agent-feed init --from-corpus example.com # reviewing 3 observations · drafting agent-feed.xml $ bunx agent-feed sign --key did:web:example.com#k0 $ cp agent-feed.xml ./public/.well-known/ # done. on next crawl, all unsigned observations defer to you.
Schema drift breaks agents silently. The dashboard answers a single question fast: does the world agree about this endpoint, and is anyone authoritative?
moved entries with since timestamps.# in your agent's CI $ bunx agent-feed verify https://api.example.com origin api.example.com signed true // did:web:api.example.com last-entry 2026-04-26T11:02:00Z breaking-since your pin (2026-03-01): - /v1/orders deprecated 2026-04-12 + /v2/orders canonical 2026-04-12 # exit 1 — your agent will break. fix the pin.
draft-abdi-agent-feed-00/v1/orders
was deprecated three weeks ago, or that the canonical endpoint moved. That's
a stream — append-only, signed, with since
timestamps. The MCP SEP we filed is precisely about preserving this split.
/api/corpus/optout; the entry disappears on the
next crawl.