Agent ready

TL;DR

Agent readiness means a non-human client can discover and use your content without parsing your layout. Four public scanners grade it and they measure different things. Two checks, Link headers and Markdown negotiation, are response behaviour that no static host can provide. This site is the worked example: every surface below is live and linked.

What this site does, and where to verify it

Rather than describe agent readiness abstractly, this site implements it and links the evidence. Each row is a live URL you can fetch right now.

Live machine-readable surfaces on emin.de.
SurfaceWhat it is for
/llms.txtProduct definition plus every important page as a Markdown link.
/llms-full.txtEvery article's complete text in one fetch.
/openapi.jsonTyped schemas and unique operationIds for every operation, errors included.
/auth.mdPublic reads need no credentials; the corpus endpoint uses x402.
/api/articlesUnauthenticated JSON list of every article.
/mcpStreamable HTTP MCP server, five read-only tools, no credentials.
/api/v1/corpusPaid bulk access. Unpaid requests return a real x402 challenge.
/.well-known/ai-catalog.jsonARD manifest listing every machine entry point.
/sitemap.xmlEvery indexable URL with a lastmod date.

Basically, A site claiming to be agent ready should let you fetch the proof, not read a badge.

Try the Markdown negotiation

The same URL returns HTML to a browser and Markdown to an agent, with a Vary header so caches keep them apart.

curl -sI https://emin.de/ | grep -i '^link:'
curl -s -H 'Accept: text/markdown' https://emin.de/ | head -20
curl -sI -H 'Accept: text/markdown' https://emin.de/ | grep -iE 'content-type|vary'

Frequently asked questions

What does agent ready mean for a website?

That a non-human client can discover, fetch and use your content without parsing your visual layout. In practice: RFC 8288 Link headers pointing at your machine surface, Markdown available through Accept negotiation, a valid llms.txt, well-known discovery documents, structured data describing the entity, and error responses that match the path prefix. It is a set of HTTP behaviours, not a plugin.

Can a static site on GitHub Pages be fully agent ready?

No. Two requirements are response behaviour, not files. Link headers need the ability to set response headers, and Markdown negotiation needs per-request content negotiation with a Vary: Accept header. A pure static host offers neither. Everything else on the list is files, which static hosting handles fine. The fix is a small origin server, a Worker or a reverse proxy in front of the static output.

What belongs in llms.txt?

A first paragraph that defines what the thing IS, because that is the sentence an assistant will quote. Then your important pages as Markdown links with one line of purpose each, and an honest limitations note so an agent does not waste calls. Bare URLs instead of Markdown links fail the Lighthouse llms-txt audit outright, and a present-but-invalid file scores worse than having no file.

Does llms.txt actually do anything yet?

It is read by some tools and ignored by others, and no major vendor has committed to it as a ranking input. Treat it as cheap, standards-aligned documentation of your own surface rather than a traffic lever. The measurable win is that a model which does fetch it stops guessing which of your URLs matter.

Should I block AI crawlers in robots.txt?

That depends on whether you want citations. Blocking GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot and Google-Extended removes you from the answers those systems generate. The more useful distinction is training versus retrieval, which is what the Content-Signal header expresses: you can allow search and retrieval while declining training.

What is the difference between isitagentready.com and is-agentic.com?

They score different things. isitagentready.com is strictest on discovery plumbing: headers, DNS-AID with DNSSEC, well-known documents. is-agentic.com re-reads an Ora scan and is strictest on API honesty: typed schemas on every operation, a real unauthenticated JSON endpoint, a working MCP handshake, correct error content types per path. Passing one tells you little about the other.

Do I need an MCP server on my website?

Only if you have something an agent would call repeatedly. For a content site the honest case is narrow: listing articles, fetching one as Markdown, searching. That is worth five tools, not fifty. Declaring tools you have not implemented is the single worst thing you can do here, because an agent reads your card as a promise.

What is x402 and why would a website need it?

x402 is an HTTP 402 based payment flow: an unpaid request returns a 402 with a machine-readable challenge stating amount, scheme, network and recipient, and the client retries with a payment header. It exists so an agent can pay for access without a signup flow, an API key or a human in the loop. It makes sense when bulk access has real marginal value, for example a whole corpus in one call.

How often should I re-scan?

After every deploy, and on a schedule regardless. These scanners add checks over time, so a site can drop from 100 with no code change and no regression. A screenshot of a perfect score from last month is not evidence about today.

What is the highest-leverage change if I only do one thing?

Generate every surface from one content source. When HTML, Markdown, structured data, sitemap and llms.txt all derive from the same data, a new requirement costs one generator and the surfaces cannot drift apart. When they are hand-maintained, every new check is a multi-file diff and a future inconsistency.

Read the long version

The full article, including what each scanner measures and the order to implement things in, is What agent ready actually means. The site's source is on GitHub, MIT licensed, so the implementation of every surface above is readable.