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: mcp-llm

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")
-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/langchain-ai/mcpdoc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server