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

Fuentes ascendentes

Opcional

Herramientas

HerramientaPropósitoEfectos
llms_indexEncuentra 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_pageDevuelve 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_searchBusca 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.