# llms.txt vs llms-full.txt vs AGENTS.md vs SKILL.md vs MCP server card: which file does which job

> llms.txt lists pages for agents. llms-full.txt, AGENTS.md, SKILL.md, a server card and robots.txt do other jobs. Who reads each, where it lives, what we check.

- Source: /learn/llms-txt-vs-agents-md-vs-skill-md
- Updated: 2026-11-01
- Reading time: 7 minutes
- Tags: llms.txt, AGENTS.md, agent skills, MCP, robots.txt

---
These files have different readers. `robots.txt` is read by crawlers, and `llms.txt` and `llms-full.txt` by agents that read a site's content. `AGENTS.md` is read by coding agents inside a repository, and `SKILL.md` by agents that load a procedure for a task. An MCP server card is read by a client before it connects to a server.

AgenticWebScore checks 5 of the 6 in some form. It dropped `AGENTS.md` in rubric v0.8.

## Which file does which job?

| File | Job | Read by | Lives at | Scanner check |
| --- | --- | --- | --- | --- |
| `robots.txt` | Says which URLs a crawler may fetch | Crawlers that follow RFC 9309 | `/robots.txt`, top level of the host | [robots.txt](/checks/robots-txt): scored, essential, holds level 2 |
| `llms.txt` | Lists the pages an agent should read | Agents and documentation tools that choose to. Google Search does not | `/llms.txt` or a subpath | [llms-txt](/checks/llms-txt): scored convention, holds no level |
| `llms-full.txt` | Holds the text of those pages in one file | Documentation tools and agents that choose to | Beside `llms.txt`, by convention | [llms-full](/checks/llms-full): scored convention, asked once `llms.txt` is in use |
| `AGENTS.md` | Gives a coding agent a project's instructions | Coding agents working in the repository | Repository root, and nested directories | None. Removed in v0.8 |
| `SKILL.md` | Packages the instructions for one task | Agent runtimes that support skills | A skill folder. On a site, listed in `/.well-known/agent-skills/index.json` | [agent-skills](/checks/agent-skills): unscored. Reads the index, not the skill |
| MCP server card | States where a remote server is and which versions it speaks | MCP clients and registries, before they connect | Any unreserved URI, listed in an AI catalog | [mcp-card](/checks/mcp-card): unscored. [mcp-server](/checks/mcp-server) is scored and gates levels 4 and 5 |

This site serves each of these paths, and its skills index lists 59 `skill-md` artifacts. The commands below print the status and type of each path as of 31 October 2026.

```sh
SITE=https://agenticwebscore.com
for p in /robots.txt /llms.txt /llms-full.txt /AGENTS.md /.well-known/agent-skills/index.json /.well-known/mcp/server-card.json; do
  printf '%-40s' "$p"; curl -sS -o /dev/null -w '%{http_code} %{content_type}\n' "$SITE$p"
done
```

```text
/robots.txt                             200 text/plain; charset=utf-8
/llms.txt                               200 text/plain; charset=utf-8
/llms-full.txt                          200 text/plain; charset=utf-8
/AGENTS.md                              200 text/markdown; charset=utf-8
/.well-known/agent-skills/index.json    200 application/json; charset=utf-8
/.well-known/mcp/server-card.json       200 application/json; charset=utf-8
```

## What is the difference between llms.txt and llms-full.txt?

`llms.txt` is the index. The [llmstxt.org proposal](https://llmstxt.org/) defines it and does not mention `llms-full.txt`: I searched the page for the name and found no match.

[Mintlify](https://www.mintlify.com/docs/ai/llmstxt), a documentation host, documents both. It describes `llms.txt` as a markdown map of links. It describes `llms-full.txt` as the whole documentation site in one file, with each page's title, source URL, description and content.

Real files differ by orders of magnitude. On 31 October 2026, Resend's `/llms-full.txt` was 9.7 KB. Vercel's `/docs/llms-full.txt` was 11.8 MB, Anthropic's was 49.3 MB and Cloudflare Developers' was 69.7 MB. Files of tens of megabytes suit a tool that indexes or searches them, not an agent that reads the file whole.

The [llms-full check](/checks/llms-full) is asked once `/llms.txt` is in use. Present needs a text file of at least 150 words that is not mostly links. GitHub's `/llms-full.txt` is a byte-for-byte copy of its `/llms.txt`, so it reads as a list of links.

The check requests `/llms-full.txt` at the root only. Vercel keeps its file under `/docs/`, so the check does not read it, and the root path answered 404 on 31 October 2026.

For the formats and examples, see [what llms.txt is](/learn/llms-txt-guide) and [6 real llms.txt files](/learn/llms-txt-examples).

## What is the difference between llms.txt and AGENTS.md?

[AGENTS.md](https://agents.md) calls itself "a README for agents". It holds project instructions for coding agents, such as how to build and test. It goes at the root of the repository, nested files may sit in subprojects, and the nearest one wins. It has no required fields.

The Agentic AI Foundation, under the Linux Foundation, stewards the format. Its page lists coding agents such as Codex, Cursor and Gemini CLI.

So `llms.txt` is for the agent that reads your site, and `AGENTS.md` is for the agent that changes your code. They overlap in practice. Stripe's `llms.txt` carries a section of instructions to agents, and Vercel's has one on how agents should use its platform.

### Why did the scanner drop AGENTS.md?

Rubric v0.8 removed the `agents-md` check on 19 October 2026, with 8 other checks. The [methodology page](/methodology#removed) gives the reason: AGENTS.md is a file for coding agents at a repository root, and no reader requests it from a website. The format's own page says to create it at the root of the repository. It says nothing about serving it over HTTP.

This site still serves `/AGENTS.md`, as a brief on how an agent uses the scanner. That is our choice, and no check reads it.

## What is the difference between llms.txt and SKILL.md?

A skill is a folder with a `SKILL.md` file. The [Agent Skills specification](https://agentskills.io/specification) gives the file YAML frontmatter and then markdown instructions. The frontmatter needs a `name` of up to 64 characters, in lowercase letters, digits and hyphens. It also needs a `description` of up to 1,024 characters.

Agents load the name and description at startup and read the rest only when a task matches. Anthropic developed the format and released it as an open standard.

`llms.txt` tells an agent what to read, and a skill tells it how to do something. To publish skills on a site, Cloudflare's [draft RFC](https://github.com/cloudflare/agent-skills-discovery-rfc), version 0.2.0 and updated on 12 March 2026, puts an index at `/.well-known/agent-skills/index.json`. Each entry has a `name`, a `type` of `skill-md` or `archive`, a `description`, a `url` and a `sha256` digest. The draft has already renamed its path once, from `/.well-known/skills/`.

The [agent-skills check](/checks/agent-skills) is unscored. It reads the index at 3 paths, the current one and 2 older ones. It requests up to 10 same-origin artifacts and compares each with its digest, but it does not read a skill's frontmatter. Resend's `llms.txt` links its skills index and 5 `SKILL.md` files, so the 2 files work together.

## What is the difference between llms.txt and an MCP server card?

MCP is a protocol, not a file. A server speaks JSON-RPC 2.0 and offers resources, prompts and tools to a client, according to the [specification overview](https://modelcontextprotocol.io/specification/latest). A text file cannot give an agent a callable tool. A server can.

A server card describes a remote server before a client connects. [SEP-2127](https://modelcontextprotocol.io/seps/2127-mcp-server-cards), an extension with Final status, defines it as static metadata: the server's identity, its remote endpoints and the protocol versions it supports. It leaves out tools, resources and prompts on purpose, because a server's lists can vary by user and session. A card can sit at any unreserved URI, and an AI catalog at `/.well-known/ai-catalog.json` can list it.

The [mcp-server check](/checks/mcp-server) is scored and essential. It opens one session, lists the tools and calls none, and it is a gate for levels 4 and 5. The [mcp-card check](/checks/mcp-card) is unscored. [Testing an MCP server with curl](/learn/test-mcp-server-curl) shows the handshake.

The files point at each other in practice. Anthropic's `llms.txt` names its docs MCP server and the server's card. Resend's links its remote MCP server and an MCP discovery file.

## What is the difference between llms.txt and robots.txt?

[RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html) puts `/robots.txt` at the top level of the host. It says "These rules are not a form of access authorization." A 4xx answer makes the file unavailable, and a crawler may then fetch anything. A 5xx answer makes it unreachable, and a crawler must then assume everything is disallowed.

`llms.txt` allows and denies nothing, so adding it changes nothing about what a crawler may fetch. Google's [guide to its generative AI features](https://developers.google.com/search/docs/fundamentals/ai-optimization-guide), updated on 10 July 2026, says Google Search does not use `llms.txt` files. Rules for named AI crawlers belong in `robots.txt`: see [blocking AI crawlers](/learn/ai-crawler-blocking) and [Content-Signal](/learn/content-signal-robots-txt).

## Which of these files should your site publish?

- **`robots.txt`:** yes. It is the one web standard of the 6, an essential check, and a gate for level 2.
- **`llms.txt`:** optional and cheap. It is a scored convention of weight 1 with no level, and Google Search ignores it.
- **`llms-full.txt`:** only for a bounded body of documentation, and only beside an `llms.txt` that links it.
- **A skills index:** only if you have procedures an agent should follow. The draft path has moved once.
- **A server card:** only if you run a remote MCP server.
- **`AGENTS.md`:** put it in your repository, where its readers look.

To check the 2 llms files on your domain, use the [llms.txt checker](/tools/llms-txt-checker). To see how the rest read, [scan your site](/scan).
