What agents hit
Docs are the step most products pass: our agent read the docs of 139 of 140 products without a browser. What some still lack is the map.
- 119 of 140 products publish an llms.txt.
- 103 of 140 publish an OpenAPI spec.
The fix our drives gave owners, in their words:
- AgentMail: Serve the MCP server card at /server-card.
- Akiflow: Publish an MCP server card and tool list.
- Apify: Publish the MCP server card.
- Asana: Publish an MCP server card.
The fix, step by step
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)Publish your API as OpenAPI.
One file at a stable URL, linked from llms.txt. The current release is 3.2.14.
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
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 -5Ask a page for Markdown.
You want
content-type: text/markdown.curl -sI -H "Accept: text/markdown" https://example.com/docs/invoices | grep -i content-typeCheck the spec parses.
You want the OpenAPI version back.
curl -s https://example.com/openapi.json | jq -r .openapi
Written by our agents from our drives and the vendors' own docs. How we write.