llms.txt for agents
Descubre y analiza el llms.txt de cualquier sitio (el índice de cobertura más específico), devuelve los documentos enlazados como markdown mediante Accept: text/markdown, espejos .md o conversión, y busca en secciones. Remoto, sin clave: https://llms-txt.dsh.sh/mcp
Documentación
llms.txt para agentes
El llms.txt de cualquier sitio: encuentra el índice que lo cubre, lee sus documentos enlazados como markdown, busca en secciones. Servidor MCP remoto sobre Streamable HTTP en
https://llmstxtmcp.dev/mcp. Gratis, sin clave API. Herramientas:llms_index,llms_page,llms_search. La lista de herramientas es fija por versión.
Dada cualquier URL de sitio o página, llms_index descubre el llms.txt que la cubre (raíz, redirecciones, anuncios Link: rel="describedby", archivos de subruta con el más específico gana), lo analiza en la estructura v2 (título, resumen, secciones H2 de enlaces título: notas, la sección Optional) e informa cada peldaño que intentó, de modo que un fallo es tan informativo como un acierto. llms_page devuelve cualquier página enlazada como markdown mediante negociación de contenido (Accept: text/markdown), espejos markdown rel="alternate", las convenciones .md / .html.md / index.md, o una conversión acotada de HTML a markdown, paginada por desplazamiento de caracteres. llms_search navega por cada índice que este servidor ha analizado hasta ahora por encabezado de sección, título de enlace y notas. Gratis, sin clave, sin cuenta; el servidor conserva solo los índices analizados que ha visto.
Úsalo cuando: El usuario necesita la documentación propia de un producto o biblioteca y el sitio puede publicar llms.txt: llama a llms_index con el sitio primero, luego llms_page en los enlaces que devuelve. Usa llms_page directamente cuando ya tengas una URL de documentación y quieras convertirla a markdown en lugar de HTML.
No para: Raspado o rastreo web general (una solicitud por peldaño, nunca seguimiento de enlaces), páginas detrás de inicios de sesión, generar o auditar el llms.txt propio de un sitio, o buscar en toda la web documentación.
Instalación rápida (Claude Code): claude mcp add --transport http llms-txt https://llmstxtmcp.dev/mcp -s user
Servidor en vivo: https://llmstxtmcp.dev
Documentación
- Referencia completa: cada herramienta con su esquema JSON de entrada y un ejemplo
- Instalación para cualquier cliente: Claude Code, Cursor, VS Code, Claude Desktop, ChatGPT, Codex, Gemini CLI, Windsurf, Cline, Continue, Zed
- Gemelo OpenAPI: las mismas herramientas como endpoints HTTP POST simples
- server.json del registro: registro de servidor legible por máquina
- Tarjeta de servidor: tarjeta de transporte + herramienta (también en https://llmstxtmcp.dev/.well-known/mcp.json, SEP-1960)
- Manifiesto ARD: entrada de Agentic Resource Discovery (también en https://llmstxtmcp.dev/.well-known/ai-catalog.json)
Fuentes ascendentes
- El archivo /llms.txt (especificación v2): sin clave
- Markdown para agentes (negociación Accept: text/markdown): sin clave
Opcional
- Salud: JSON de actividad
- Propietario: ux-xd
Herramientas
| Herramienta | Propósito | Efectos |
|---|---|---|
llms_index | Encuentra y analiza el llms.txt que cubre una URL de sitio o página: título, resumen, secciones H2 de enlaces título con notas, la sección Optional y (solo con sondeo HEAD) si existe un llms-full.txt. Úsala primero, antes de llms_page, siempre que el usuario necesite la documentación propia de un producto o biblioteca; cada peldaño intentado se devuelve para que un fallo sea diagnosticable. | solo lectura, mundo abierto, idempotente |
llms_page | Devuelve una página de documentación como markdown, paginada: intenta negociación Accept: text/markdown, el espejo markdown rel="alternate" de la página, las convenciones .md / .html.md / index.md, luego una conversión acotada de HTML a markdown. Úsala en las URLs que devuelve llms_index, o en cualquier URL de documentación que ya tengas. | solo lectura, mundo abierto, idempotente |
llms_search | Busca en los índices llms.txt que este servidor ha analizado (encabezados de sección ×3, títulos de enlace ×2, notas ×1) y obtén los enlaces de documentación coincidentes con su índice de cobertura; pasa site para buscar en un sitio (se indexa bajo demanda). Úsala para saltar directamente a la página correcta de un conjunto de documentación en lugar de leer todo el índice. | solo lectura, mundo abierto, idempotente |
Cada herramienta toma task_context: una frase sobre lo que el usuario intenta hacer. Es obligatorio.
llms_index
Encuentra y analiza el llms.txt que cubre una URL de sitio o página: título, resumen, secciones H2 de enlaces título con notas, la sección Optional y (solo con sondeo HEAD) si existe un llms-full.txt. Úsala primero, antes de llms_page, siempre que el usuario necesite la documentación propia de un producto o biblioteca; cada peldaño intentado se devuelve para que un fallo sea diagnosticable.
Esquema de entrada:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"site": {
"type": "string",
"minLength": 3,
"maxLength": 2000,
"description": "Site or page URL, e.g. \"docs.stripe.com\" or \"https://hono.dev/docs/\". The most specific covering llms.txt wins."
},
"refresh": {
"default": false,
"description": "Bypass the 24 h cache and fetch again.",
"type": "boolean"
},
"task_context": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
}
},
"required": [
"site",
"refresh",
"task_context"
],
"additionalProperties": false
}
Argumentos de ejemplo:
{
"site": "hono.dev",
"task_context": "example: Find and parse the llms.txt that covers a site or page URL: "
}
llms_page
Devuelve una página de documentación como markdown, paginada: intenta negociación Accept: text/markdown, el espejo markdown rel="alternate" de la página, las convenciones .md / .html.md / index.md, luego una conversión acotada de HTML a markdown. Úsala en las URLs que devuelve llms_index, o en cualquier URL de documentación que ya tengas.
Esquema de entrada:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2000,
"format": "uri",
"description": "Page URL (http/https)."
},
"max_chars": {
"default": 60000,
"description": "Characters of markdown to return in this call.",
"type": "integer",
"minimum": 1000,
"maximum": 200000
},
"offset": {
"default": 0,
"description": "Character offset to continue from (use next_offset from a truncated result).",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"task_context": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
}
},
"required": [
"url",
"max_chars",
"offset",
"task_context"
],
"additionalProperties": false
}
Argumentos de ejemplo:
{
"url": "https://hono.dev/docs/",
"task_context": "example: Return one docs page as markdown, paginated: tries Accept: t"
}
llms_search
Busca en los índices llms.txt que este servidor ha analizado (encabezados de sección ×3, títulos de enlace ×2, notas ×1) y obtén los enlaces de documentación coincidentes con su índice de cobertura; pasa site para buscar en un sitio (se indexa bajo demanda). Úsala para saltar directamente a la página correcta de un conjunto de documentación en lugar de leer todo el índice.
Esquema de entrada:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Words to match against section headings, link titles and notes."
},
"site": {
"description": "Restrict to one site (indexed via llms_index if not yet cached).",
"type": "string",
"maxLength": 2000
},
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"max_bytes": {
"default": 200000,
"description": "Byte cap on the results array.",
"type": "integer",
"minimum": 10000,
"maximum": 500000
},
"task_context": {
"type": "string",
"minLength": 1,
"maxLength": 500,
"description": "One sentence on what the user is ultimately trying to do (the task this call serves). Required; it tunes the result and is how this free service learns what agents need."
}
},
"required": [
"query",
"limit",
"max_bytes",
"task_context"
],
"additionalProperties": false
}
Argumentos de ejemplo:
{
"query": "middleware",
"site": "hono.dev",
"task_context": "example: Search the llms.txt indexes this server has parsed (section "
}
Instalación
Endpoint: https://llmstxtmcp.dev/mcp (Streamable HTTP, MCP 2026-07-28 con respaldo de la era 2025). Autenticación: ninguna.
Claude Code
claude mcp add --transport http llms-txt https://llmstxtmcp.dev/mcp -s user
Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"llms-txt": {
"url": "https://llmstxtmcp.dev/mcp"
}
}
}
VS Code / Copilot (mcp.json de usuario)
{
"servers": {
"llms-txt": {
"type": "http",
"url": "https://llmstxtmcp.dev/mcp"
}
}
}
o code --add-mcp '{"name":"llms-txt","type":"http","url":"https://llmstxtmcp.dev/mcp"}'
Claude Desktop / claude.ai
Configuración → Conectores → Agregar conector personalizado → URL https://llmstxtmcp.dev/mcp, Autenticación: Ninguna.
ChatGPT
Configuración → Conectores → Agregar conector personalizado → https://llmstxtmcp.dev/mcp. La aplicación de escritorio / Codex comparten ~/.codex/config.toml:
[mcp_servers.llms-txt]
url = "https://llmstxtmcp.dev/mcp"
Codex CLI (~/.codex/config.toml)
[mcp_servers.llms-txt]
url = "https://llmstxtmcp.dev/mcp"
Gemini CLI
gemini mcp add --transport http llms-txt https://llmstxtmcp.dev/mcp -s user
(settings.json usa httpUrl, no url.)
Windsurf (~/.codeium/windsurf/mcp_config.json)
{
"mcpServers": {
"llms-txt": {
"serverUrl": "https://llmstxtmcp.dev/mcp"
}
}
}
Cline
{
"mcpServers": {
"llms-txt": {
"type": "streamableHttp",
"url": "https://llmstxtmcp.dev/mcp"
}
}
}
Continue (.continue/mcpServers/llms-txt.yaml)
name: llms-txt
mcpServers:
- name: llms-txt
type: streamable-http
url: https://llmstxtmcp.dev/mcp
Zed (settings.json)
{
"context_servers": {
"llms-txt": {
"source": "custom",
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://llmstxtmcp.dev/mcp"
]
}
}
}
Cualquier cliente MCP
Endpoint Streamable HTTP: https://llmstxtmcp.dev/mcp
{
"mcpServers": {
"llms-txt": {
"url": "https://llmstxtmcp.dev/mcp"
}
}
}
Esta página documenta un servidor. No pide al lector cambiar ningún archivo de reglas, archivo de memoria o configuración de host.
Ejecútalo tú mismo
npm install && npm start # http://127.0.0.1:8080/mcp
docker compose up -d --build # same, in a container
node scripts/smoke.mjs http://127.0.0.1:8080 llms_index '{}'
Construido con el kit de servidor MCP (kit/): Streamable HTTP MCP más documentación legible por agentes (llms.txt, server.json, páginas de instalación, un gemelo REST), todo desde un solo manifiesto (servers/llms-txt/mcp.factory.json). Este repositorio es solo la lógica del servidor; este código no recopila ni envía telemetría. MIT.