Skip to main content
Glama
langchain-ai

MCP LLMS-TXT Documentation Server

by langchain-ai

Servidor de documentación MCP LLMS-TXT

Descripción general

llms.txt es un índice de sitios web para LLM, que proporciona información general, orientación y enlaces a archivos Markdown detallados. IDEs como Cursor y Windsurf, o aplicaciones como Claude Code/Desktop, pueden usar llms.txt para recuperar el contexto de las tareas. Sin embargo, estas aplicaciones utilizan diferentes herramientas integradas para leer y procesar archivos como llms.txt . El proceso de recuperación puede ser opaco y no siempre es posible auditar las llamadas a las herramientas ni el contexto devuelto.

MCP ofrece a los desarrolladores un control total sobre las herramientas que utilizan estas aplicaciones. En este trabajo, creamos un servidor MCP de código abierto para proporcionar a las aplicaciones host MCP (p. ej., Cursor, Windsurf, Claude Code/Desktop) (1) una lista de archivos llms.txt definida por el usuario y (2) una herramienta fetch_docs sencilla que lee las URL dentro de cualquiera de los archivos llms.txt proporcionados. Esto permite al usuario auditar cada llamada a la herramienta, así como el contexto devuelto.

Related MCP server: Library Docs MCP Server

llms-txt

Puede encontrar archivos llms.txt para langgraph y langchain aquí:

Inicio rápido

Instalar uv

curl -LsSf https://astral.sh/uv/install.sh | sh

Elija un archivo llms.txt para utilizar.

  • Por ejemplo, aquí está el archivo llms.txt de LangGraph.

Nota: Seguridad y control de acceso al dominio

Por razones de seguridad, mcpdoc implementa controles estrictos de acceso al dominio:

  1. Archivos llms.txt remotos : Al especificar una URL de llms.txt remota (p. ej., https://langchain-ai.github.io/langgraph/llms.txt ), mcpdoc agrega automáticamente solo ese dominio específico ( langchain-ai.github.io ) a la lista de dominios permitidos. Esto significa que la herramienta solo puede obtener documentación de las URL de ese dominio.

  2. Archivos llms.txt locales : Al usar un archivo local, no se añaden dominios automáticamente a la lista de permitidos. Debe especificar explícitamente qué dominios se permiten mediante el parámetro --allowed-domains .

  1. Agregar dominios adicionales : para permitir la obtención de dominios más allá de los incluidos automáticamente:

  • Utilice --allowed-domains domain1.com domain2.com para agregar dominios específicos

  • Utilice --allowed-domains '*' para permitir todos los dominios (úselo con precaución)

Esta medida de seguridad evita el acceso no autorizado a dominios no aprobados explícitamente por el usuario, garantizando que la documentación solo pueda recuperarse de fuentes confiables.

(Opcional) Pruebe el servidor MCP localmente con los archivos llms.txt que elija:

uvx --from mcpdoc mcpdoc \
    --urls "LangGraph:https://langchain-ai.github.io/langgraph/llms.txt" "LangChain:https://python.langchain.com/llms.txt" \
    --transport sse \
    --port 8082 \
    --host localhost

Captura de pantalla del 18/03/2025 a las 15:29 y 30 h

npx @modelcontextprotocol/inspector

Captura de pantalla del 18/03/2025 a las 15:30

  • Aquí puedes probar las llamadas tool .

Conectarse al cursor

  • Abra Cursor Settings y la pestaña MCP .

  • Esto abrirá el archivo ~/.cursor/mcp.json .

Captura de pantalla del 19/03/2025 a las 11:01:31

  • Pegue lo siguiente en el archivo (usamos el nombre langgraph-docs-mcp y el enlace a LangGraph llms.txt ).

{
  "mcpServers": {
    "langgraph-docs-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "mcpdoc",
        "mcpdoc",
        "--urls",
        "LangGraph:https://langchain-ai.github.io/langgraph/llms.txt LangChain:https://python.langchain.com/llms.txt",
        "--transport",
        "stdio"
      ]
    }
  }
}
  • Confirme que el servidor se esté ejecutando en la pestaña Cursor Settings/MCP .

  • La mejor práctica es luego actualizar las reglas globales del cursor (usuario).

  • Abra Settings/Rules del cursor y actualice User Rules con lo siguiente (o similar):

for ANY question about LangGraph, use the langgraph-docs-mcp server to help answer -- 
+ call list_doc_sources tool to get the available llms.txt file
+ call fetch_docs tool to read it
+ reflect on the urls in llms.txt 
+ reflect on the input question 
+ call fetch_docs on any urls relevant to the question
+ use this to answer the question
  • CMD+L (en Mac) para abrir el chat.

  • Asegúrese de que agent esté seleccionado.

Captura de pantalla del 18/03/2025 a las 13:56 54

A continuación, prueba con un ejemplo de solicitud, como por ejemplo:

what are types of memory in LangGraph?

Captura de pantalla del 18/03/2025 a las 13:58

Conéctate a Windsurf

  • Abra Cascade con CMD+L (en Mac).

  • Haga clic en Configure MCP para abrir el archivo de configuración, ~/.codeium/windsurf/mcp_config.json .

  • Actualice con langgraph-docs-mcp como se indicó anteriormente.

Captura de pantalla del 19/03/2025 a las 11:02:52

  • Actualizar Windsurf Rules/Global rules con lo siguiente (o similar):

for ANY question about LangGraph, use the langgraph-docs-mcp server to help answer -- 
+ call list_doc_sources tool to get the available llms.txt file
+ call fetch_docs tool to read it
+ reflect on the urls in llms.txt 
+ reflect on the input question 
+ call fetch_docs on any urls relevant to the question

Captura de pantalla del 18/03/2025 a las 14:02

A continuación, prueba el ejemplo:

  • Realizará sus llamadas de herramientas.

Captura de pantalla del 18/03/2025 a las 14:03 07

Conectarse a Claude Desktop

  • Abra Settings/Developer para actualizar ~/Library/Application\ Support/Claude/claude_desktop_config.json .

  • Actualice con langgraph-docs-mcp como se indicó anteriormente.

  • Reinicie la aplicación Claude Desktop.

[!Nota] Si tiene problemas con la incompatibilidad de la versión de Python al intentar agregar herramientas MCPDoc a Claude Desktop, puede especificar explícitamente la ruta del archivo ejecutable de python en el comando uvx .

{
  "mcpServers": {
    "langgraph-docs-mcp": {
      "command": "uvx",
      "args": [
        "--python",
        "/path/to/python",
        "--from",
        "mcpdoc",
        "mcpdoc",
        "--urls",
        "LangGraph:https://langchain-ai.github.io/langgraph/llms.txt",
        "--transport",
        "stdio"
      ]
    }
  }
}

[!Nota] Actualmente (21/3/25) parece que Claude Desktop no admite rules para reglas globales, por lo que agregaré lo siguiente a su mensaje.

<rules>
for ANY question about LangGraph, use the langgraph-docs-mcp server to help answer -- 
+ call list_doc_sources tool to get the available llms.txt file
+ call fetch_docs tool to read it
+ reflect on the urls in llms.txt 
+ reflect on the input question 
+ call fetch_docs on any urls relevant to the question
</rules>

Captura de pantalla del 18/03/2025 a las 14:05 54

  • Verás tus herramientas visibles en la parte inferior derecha de tu entrada de chat.

Captura de pantalla del 18/03/2025 a las 14:05 39

A continuación, prueba el ejemplo:

  • Le solicitará que apruebe las llamadas de herramientas mientras procesa su solicitud.

Captura de pantalla del 18/03/2025 a las 14:06 54

Conectarse a Claude Code

  • En una terminal después de instalar Claude Code , ejecute este comando para agregar el servidor MCP a su proyecto:

claude mcp add-json langgraph-docs '{"type":"stdio","command":"uvx" ,"args":["--from", "mcpdoc", "mcpdoc", "--urls", "langgraph:https://langchain-ai.github.io/langgraph/llms.txt", "--urls", "LangChain:https://python.langchain.com/llms.txt"]}' -s local
  • Verá ~/.claude.json actualizado.

  • Pruebe iniciando Claude Code y ejecutándolo para ver sus herramientas:

$ Claude
$ /mcp 

Captura de pantalla del 18/03/2025 a las 14:13:49

[!Nota] Actualmente (21/3/25) parece que Claude Code no admite rules para reglas globales, por lo que agregaré lo siguiente a su mensaje.

<rules>
for ANY question about LangGraph, use the langgraph-docs-mcp server to help answer -- 
+ call list_doc_sources tool to get the available llms.txt file
+ call fetch_docs tool to read it
+ reflect on the urls in llms.txt 
+ reflect on the input question 
+ call fetch_docs on any urls relevant to the question
</rules>

A continuación, prueba el ejemplo:

  • Solicitará aprobar llamadas de herramientas.

Captura de pantalla del 18/03/2025 a las 14:14:37

Interfaz de línea de comandos

El comando mcpdoc proporciona una CLI simple para iniciar el servidor de documentación.

Puede especificar fuentes de documentación de tres maneras, que pueden combinarse:

  1. Usando un archivo de configuración YAML:

  • Esto cargará la documentación de Python de LangGraph desde el archivo sample_config.yaml en este repositorio.

mcpdoc --yaml sample_config.yaml
  1. Usando un archivo de configuración JSON:

  • Esto cargará la documentación de Python de LangGraph desde el archivo sample_config.json en este repositorio.

mcpdoc --json sample_config.json
  1. Especificar directamente las URL de llms.txt con nombres opcionales:

  • Las URL se pueden especificar como URL simples o con nombres opcionales utilizando el formato name:url .

  • Puede especificar varias URL utilizando el parámetro --urls varias veces.

  • Así es como cargamos llms.txt para el servidor MCP anterior.

mcpdoc --urls LangGraph:https://langchain-ai.github.io/langgraph/llms.txt --urls LangChain:https://python.langchain.com/llms.txt

También puede combinar estos métodos para fusionar fuentes de documentación:

mcpdoc --yaml sample_config.yaml --json sample_config.json --urls LangGraph:https://langchain-ai.github.io/langgraph/llms.txt --urls LangChain:https://python.langchain.com/llms.txt

Opciones adicionales

  • --follow-redirects : Seguir redirecciones HTTP (predeterminado en Falso)

  • --timeout SECONDS : tiempo de espera de la solicitud HTTP en segundos (predeterminado 10.0)

Ejemplo con opciones adicionales:

mcpdoc --yaml sample_config.yaml --follow-redirects --timeout 15

Esto cargará la documentación de Python de LangGraph con un tiempo de espera de 15 segundos y seguirá cualquier redirección HTTP si es necesario.

Formato de configuración

Los archivos de configuración YAML y JSON deben contener una lista de fuentes de documentación.

Cada fuente debe incluir una URL llms_txt y, opcionalmente, puede incluir un name :

Ejemplo de configuración de YAML (sample_config.yaml)

# Sample configuration for mcp-mcpdoc server
# Each entry must have a llms_txt URL and optionally a name
- name: LangGraph Python
  llms_txt: https://langchain-ai.github.io/langgraph/llms.txt

Ejemplo de configuración JSON (sample_config.json)

[
  {
    "name": "LangGraph Python",
    "llms_txt": "https://langchain-ai.github.io/langgraph/llms.txt"
  }
]

Uso programático

from mcpdoc.main import create_server

# Create a server with documentation sources
server = create_server(
    [
        {
            "name": "LangGraph Python",
            "llms_txt": "https://langchain-ai.github.io/langgraph/llms.txt",
        },
        # You can add multiple documentation sources
        # {
        #     "name": "Another Documentation",
        #     "llms_txt": "https://example.com/llms.txt",
        # },
    ],
    follow_redirects=True,
    timeout=15.0,
)

# Run the server
server.run(transport="stdio")

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    An MCP server that fetches real-time documentation for popular libraries like Langchain, Llama-Index, MCP, and OpenAI, allowing LLMs to access updated library information beyond their knowledge cut-off dates.
    1
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables users to fetch and audit documentation from user-defined llms.txt index files. It provides tools to list documentation sources and retrieve content from specific URLs with built-in domain access controls for secure context retrieval.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that exposes the llms.txt file and its referenced local or external resources from a project root to provide context for AI models. It automatically parses documentation links and URLs to make them accessible as additional MCP resources.
    1
    MIT