llms.txt for agents

Descobre e analisa o llms.txt de qualquer site (índice de cobertura mais específico), retorna documentos vinculados como markdown via Accept: text/markdown, espelhos .md ou conversão, e pesquisa seções. Remoto, sem chave: https://llms-txt.dsh.sh/mcp

Documentação

llms.txt para agentes

O llms.txt de qualquer site: encontre o índice abrangente, leia seus documentos vinculados como markdown, pesquise seções. Servidor MCP remoto via Streamable HTTP em https://llmstxtmcp.dev/mcp. Gratuito, sem chave de API. Ferramentas: llms_index, llms_page, llms_search. A lista de ferramentas é fixa por versão.

Dada qualquer URL de site ou página, llms_index descobre o llms.txt que a cobre (raiz, redirecionamentos, anúncios Link: rel="describedby", arquivos de subcaminho com mais-específico-vence), analisa-o na estrutura v2 (título, resumo, seções H2 de título: notas de links, a seção Optional) e relata cada degrau que tentou, de modo que uma falha é tão informativa quanto um acerto. llms_page retorna qualquer página vinculada como markdown por negociação de conteúdo (Accept: text/markdown), espelhos markdown rel="alternate", as convenções .md / .html.md / index.md, ou uma conversão limitada de HTML para markdown, paginada por deslocamento de caractere. llms_search navega em todos os índices que este servidor já analisou por título de seção, título de link e notas. Gratuito, sem chave, sem conta; o servidor mantém apenas os índices analisados que já viu.

Use quando: O usuário precisa da documentação de um produto ou biblioteca e o site pode publicar llms.txt: chame llms_index com o site primeiro, depois llms_page nos links que ele retorna. Use llms_page diretamente quando você já tiver uma URL de documentação e quiser ela como markdown em vez de HTML.

Não use para: Raspagem ou rastreamento geral da web (uma busca por degrau, nunca seguindo links), páginas atrás de logins, gerar ou auditar o llms.txt de um site, ou pesquisar toda a web por documentação.

Instalação rápida (Claude Code): claude mcp add --transport http llms-txt https://llmstxtmcp.dev/mcp -s user

Servidor ao vivo: https://llmstxtmcp.dev

Documentação

Upstreams

Opcional

Ferramentas

FerramentaPropósitoEfeitos
llms_indexEncontra e analisa o llms.txt que cobre uma URL de site ou página: título, resumo, seções H2 de título links com notas, a seção Optional e (apenas com sondagem HEAD) se um llms-full.txt existe. Use primeiro, antes de llms_page, sempre que o usuário precisar da documentação de um produto ou biblioteca; cada degrau tentado é retornado para que uma falha seja diagnosticável.somente leitura, mundo aberto, idempotente
llms_pageRetorna uma página de documentação como markdown, paginada: tenta negociação Accept: text/markdown, o espelho markdown rel="alternate" da página, as convenções .md / .html.md / index.md, depois uma conversão limitada de HTML para markdown. Use nas URLs que llms_index retorna, ou em qualquer URL de documentação que você já tiver.somente leitura, mundo aberto, idempotente
llms_searchPesquisa os índices llms.txt que este servidor analisou (títulos de seção ×3, títulos de link ×2, notas ×1) e obtém os links de documentação correspondentes com seu índice abrangente; passe site para pesquisar um único site (ele é indexado sob demanda). Use para ir direto à página certa de um conjunto de documentação em vez de ler o índice inteiro.somente leitura, mundo aberto, idempotente

Toda ferramenta aceita task_context: uma frase sobre o que o usuário está tentando fazer. É obrigatório.

llms_index

Encontra e analisa o llms.txt que cobre uma URL de site ou página: título, resumo, seções H2 de título links com notas, a seção Optional e (apenas com sondagem HEAD) se um llms-full.txt existe. Use primeiro, antes de llms_page, sempre que o usuário precisar da documentação de um produto ou biblioteca; cada degrau tentado é retornado para que uma falha seja diagnosticável.

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
}

Exemplo de argumentos:

{
  "site": "hono.dev",
  "task_context": "example: Find and parse the llms.txt that covers a site or page URL: "
}

llms_page

Retorna uma página de documentação como markdown, paginada: tenta negociação Accept: text/markdown, o espelho markdown rel="alternate" da página, as convenções .md / .html.md / index.md, depois uma conversão limitada de HTML para markdown. Use nas URLs que llms_index retorna, ou em qualquer URL de documentação que você já tiver.

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
}

Exemplo de argumentos:

{
  "url": "https://hono.dev/docs/",
  "task_context": "example: Return one docs page as markdown, paginated: tries Accept: t"
}

llms_search

Pesquisa os índices llms.txt que este servidor analisou (títulos de seção ×3, títulos de link ×2, notas ×1) e obtém os links de documentação correspondentes com seu índice abrangente; passe site para pesquisar um único site (ele é indexado sob demanda). Use para ir direto à página certa de um conjunto de documentação em vez de ler o índice inteiro.

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
}

Exemplo de argumentos:

{
  "query": "middleware",
  "site": "hono.dev",
  "task_context": "example: Search the llms.txt indexes this server has parsed (section "
}

Instalação

Endpoint: https://llmstxtmcp.dev/mcp (Streamable HTTP, MCP 2026-07-28 com fallback da era 2025). Autenticação: nenhuma.

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 do usuário)

{
  "servers": {
    "llms-txt": {
      "type": "http",
      "url": "https://llmstxtmcp.dev/mcp"
    }
  }
}

ou code --add-mcp '{"name":"llms-txt","type":"http","url":"https://llmstxtmcp.dev/mcp"}'

Claude Desktop / claude.ai

Configurações → Conectores → Adicionar conector personalizado → URL https://llmstxtmcp.dev/mcp, Autenticação: Nenhuma.

ChatGPT

Configurações → Conectores → Adicionar conector personalizado → https://llmstxtmcp.dev/mcp. O aplicativo de desktop / Codex compartilham ~/.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, não 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"
      ]
    }
  }
}

Qualquer cliente MCP

Endpoint Streamable HTTP: https://llmstxtmcp.dev/mcp

{
  "mcpServers": {
    "llms-txt": {
      "url": "https://llmstxtmcp.dev/mcp"
    }
  }
}

Esta página documenta um servidor. Ela não pede ao leitor para alterar nenhum arquivo de regras, arquivo de memória ou configuração de host.

Execute você mesmo

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 '{}'

Construído com o kit de servidor MCP (kit/): Streamable HTTP MCP mais documentação legível por agente (llms.txt, server.json, páginas de instalação, um gêmeo REST), tudo a partir de um único manifesto (servers/llms-txt/mcp.factory.json). Este repositório é apenas a lógica do servidor; nenhuma telemetria é coletada ou enviada por este código. MIT.