Agent-readable documentation: llms.txt, MCP, and why docs are becoming infrastructure

For most of the web's life, documentation was content: pages a human navigated, read, and closed. The reader is changing. A growing share of your docs traffic is now an AI agent — answering a question, writing code against your API, or trying to keep its own knowledge current. That reader doesn't want a styled page. It wants clean, structured, machine-addressable knowledge.

Two standards have emerged to serve that reader: llms.txt and MCP. They solve different halves of the problem, and together they mark a shift from docs as content to docs as infrastructure.

llms.txt: a clean front door for reading

llms.txt is a proposed convention: a markdown file at the root of your site (/llms.txt) that gives an LLM a curated, link-rich map of your documentation — the important pages, in plain markdown, without the nav bars, cookie banners, and JavaScript that pollute a scraped HTML page. Some sites also publish llms-full.txt, a single concatenated dump of the whole doc set for a model to ingest in one shot.

The point is legibility. An LLM landing on your rendered docs site has to reverse-engineer structure from markup. llms.txt hands it the structure directly: here are the sections, here's what each link is, here's the canonical text. It's the robots.txt/sitemap instinct, repurposed for models instead of crawlers.

What llms.txt is not: it's read-only, it's a snapshot, and it's pull-based. The model reads what you published. There's no way for it to ask a follow-up query, get fresh results, or write anything back.

MCP: a live, two-way interface

The Model Context Protocol (MCP) covers what llms.txt can't. Instead of a static file, MCP exposes your docs as a server with typed tools an agent calls at runtime: search, get_page, and — crucially — write tools like create_page and update_page. It's live (results reflect the current state, not last build), it's queryable (the agent searches for exactly what it needs instead of ingesting everything), and it's bidirectional (the agent can contribute, under enforced permissions).

A useful way to hold the two:

llms.txt MCP
Shape Static markdown file Live server, typed tools
Direction Read-only Read and write
Freshness As of last publish Current, on every call
Access pattern Ingest the map Query for what's needed
Auth/scopes None (public) Per-tool, enforced

They're complementary, not competing. llms.txt is a great low-effort win for public docs discoverability. MCP is what you reach for when agents need to work with your knowledge, not just read a copy of it.

Why this makes docs infrastructure

When the consumer of your docs is a system, your docs inherit the expectations of a system:

That's the category shift: documentation is moving from a content discipline to an infrastructure discipline. You version it, you monitor its coverage, you expose it over protocols, and you treat staleness as a defect.

Where tela sits

tela is built for the agent-as-reader world from the data model up. A few pieces line up directly with the above:

What to do about it

If you maintain docs:

  1. Publish an llms.txt for public docs — it's cheap and helps today.
  2. Expose an MCP server if agents need live or write access to your knowledge.
  3. Treat your source format as an interface — keep it canonical and structured, not locked in a format only your renderer understands.
  4. Measure freshness. Coverage and drift checks turn "are our docs current?" from a guess into a signal.

The reader changed. Docs that stay readable-by-machines — clean source, live protocol, real permissions — become infrastructure the rest of your AI stack can build on. Docs that don't get scraped, badly, by everyone.