MCP LLMS-TXT Documentation Server

Official

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Integrates with Windsurf (by Codeium) to provide document context retrieval through the llms.txt protocol.

  • Provides access to LangGraph documentation through its llms.txt file, enabling contextual information retrieval for development tasks.

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.

llms-txt

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

Bibliotecallms.txt
LangGraph Pythonhttps://langchain-ai.github.io/langgraph/llms.txt
LangGraph JShttps://langchain-ai.github.io/langgraphjs/llms.txt
LangChain Pythonhttps://python.langchain.com/llms.txt
LangChain JShttps://js.langchain.com/llms.txt

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

npx @modelcontextprotocol/inspector

  • Aquí puedes probar las llamadas tool .

Conectarse al cursor

  • Abra Cursor Settings y la pestaña MCP .
  • Esto abrirá el archivo ~/.cursor/mcp.json .

  • 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.

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

what are types of memory in LangGraph?

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.

  • 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

A continuación, prueba el ejemplo:

  • Realizará sus llamadas de herramientas.

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>

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

A continuación, prueba el ejemplo:

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

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

[!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.

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

Un servidor MCP que proporciona herramientas para cargar y obtener documentación de cualquier fuente llms.txt, brindando a los usuarios control total sobre la recuperación de contexto para LLM en agentes y aplicaciones IDE.

  1. Overview
    1. llms-txt
      1. Quickstart
        1. Install uv
        2. Choose an llms.txt file to use.
        3. (Optional) Test the MCP server locally with your llms.txt file(s) of choice:
        4. Connect to Cursor
        5. Connect to Windsurf
        6. Connect to Claude Desktop
        7. Connect to Claude Code
      2. Command-line Interface
        1. Additional Options
          1. Configuration Format
            1. YAML Configuration Example (sample_config.yaml)
            2. JSON Configuration Example (sample_config.json)
          2. Programmatic Usage
            ID: 655da7rcrv