# Docs AI agents can read: llms.txt, Markdown, OpenAPI

19 of 140 products we drove have no llms.txt. Add an llms.txt, Markdown twins of your pages, an OpenAPI spec and an MCP server card.

Source: https://agentdrives.com/fixes/docs-agents-can-read · Updated 2026-10-12 · Wall: Docs

Agents read your docs before they sign up. Give them a map, each page as Markdown, the API as a spec and your MCP server as a card.

## The numbers

From the drives of 140 products, 1–16 Oct 2026 (https://agentdrives.com/data/facts?via=md):

- Products without an llms.txt: 19 of 140
- Products without an OpenAPI spec: 37 of 140
- Products whose docs our agent read without a browser: 140 of 140

## What agents hit

Docs are the step most products pass: our agent read the docs of 140 of 140 products without a browser. What some still lack is the map.

- 121 of 140 products publish an llms.txt.
- 103 of 140 publish an OpenAPI spec.

The fix our drives gave owners, in their words:

- [AgentMail](https://agentdrives.com/tools/agentmail?via=md): Serve the MCP server card at /server-card.
- [Akiflow](https://agentdrives.com/tools/akiflow?via=md): Publish an MCP server card and tool list.
- [Apify](https://agentdrives.com/tools/apify?via=md): Serve the MCP server card at /server-card.
- [Asana](https://agentdrives.com/tools/asana?via=md): Publish an MCP server card.

## The fix, step by step

1. **Publish an llms.txt.** A Markdown file at `/llms.txt`, or under the path it covers: [1] the name of your product as the H1 (the only required part), [1] a line on what it does, then links to the pages that matter, sign-up and the API first. It is deliberately not a well-known URI. [1]

   ```
   # Example
   
   > Example sends invoices and collects payments.
   
   ## Start
   - [Sign up by API](https://example.com/docs/signup.md): an account and a key in two calls
   - [API reference](https://example.com/openapi.json): OpenAPI
   
   ## Docs
   - [Invoices](https://example.com/docs/invoices.md)
   ```

2. **Serve every page as Markdown too.** At the page's address with `.md` added, as page.html.md or page.md [1], linked from the page with `rel="alternate" type="text/markdown"`. [1] Answer `Accept: text/markdown` as well; [2] on Cloudflare, Markdown for Agents does it at the edge. [3]

3. **Publish your API as OpenAPI.** One file at a stable URL, linked from llms.txt. The current release is 3.2.1 [4].

4. **Describe your MCP server in a server card.** The card sits at `<streamable-http-url>/server-card` [5], and a domain lists its servers in `/.well-known/ai-catalog.json` [5].

5. **Keep the links working.** An agent follows links the way it reads: one at a time. A link to a page that moved costs it the answer.

## Check it yourself

1. **Fetch your llms.txt.** You want a 200 and Markdown that starts with your product's name.

   ```
   curl -s https://example.com/llms.txt | head -5
   ```

2. **Ask a page for Markdown.** You want `content-type: text/markdown`.

   ```
   curl -sI -H "Accept: text/markdown" https://example.com/docs/invoices | grep -i content-type
   ```

3. **Check the spec parses.** You want the OpenAPI version back.

   ```
   curl -s https://example.com/openapi.json | jq -r .openapi
   ```

## After the fix

Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).

## Questions

**Where do we start?**

With the llms.txt. It is one file, and it points agents to everything else.

**Markdown twins or Accept headers?**

Both. A `.md` address can be linked and cached; the Accept header serves agents that ask for Markdown on the page's own address.

## Sources

1. [The llms.txt proposal](https://llmstxt.org/)
2. [Markdown for Agents](https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/)
3. [Introducing Markdown for Agents](https://developers.cloudflare.com/changelog/post/2026-02-12-markdown-for-agents/)
4. [OpenAPI Specification versions](https://spec.openapis.org/oas/)
5. [MCP Server Card](https://raw.githubusercontent.com/modelcontextprotocol/experimental-ext-server-card/main/docs/discovery.md)

## More fixes

- [Let signed AI agents past your bot check](https://agentdrives.com/fixes/let-signed-agents-past-your-bot-check.md): The setting for Cloudflare, Vercel, Akamai, DataDome and HUMAN, and what to do about a check on the form.
- [Let AI agents sign up and get an API key](https://agentdrives.com/fixes/let-agents-sign-up-and-get-a-key.md): An API call that signs up and returns a limited key, and a claim step for the person.
- [MCP sign-in an AI agent can finish: OAuth and CIMD](https://agentdrives.com/fixes/mcp-sign-in-agents-can-finish.md): OAuth metadata, CIMD or DCR, and a way to approve without a browser on the agent's side.
- [Let AI agents start without a credit card](https://agentdrives.com/fixes/card-free-starts.md): A free plan or a trial without a card, an API key that works on it, and limits instead of a card.
- [Let AI agents pay you per call: x402 and MPP](https://agentdrives.com/fixes/let-agents-pay-per-call.md): x402 or MPP on a paid endpoint, your prices where agents read them, and plans an agent can buy by API or MCP.
