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í:
Biblioteca | llms.txt |
LangGraph Python | |
LangGraph JS | |
LangChain Python | |
LangChain JS |
Inicio rápido
Instalar uv
Consulte la documentación oficial de uv para conocer otras formas de instalar
uv.
curl -LsSf https://astral.sh/uv/install.sh | shElija un archivo llms.txt para utilizar.
Por ejemplo, aquí está el archivo
llms.txtde LangGraph.
Nota: Seguridad y control de acceso al dominio
Por razones de seguridad, mcpdoc implementa controles estrictos de acceso al dominio:
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.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.
Agregar dominios adicionales : para permitir la obtención de dominios más allá de los incluidos automáticamente:
Utilice
--allowed-domains domain1.com domain2.compara agregar dominios específicosUtilice
--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 localhostEsto debería ejecutarse en: http://localhost:8082
Ejecute el inspector MCP y conéctese al servidor en ejecución:
npx @modelcontextprotocol/inspectorAquí puedes probar las llamadas
tool.
Conectarse al cursor
Abra
Cursor Settingsy la pestañaMCP.Esto abrirá el archivo
~/.cursor/mcp.json.
Pegue lo siguiente en el archivo (usamos el nombre
langgraph-docs-mcpy el enlace a LangGraphllms.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/Rulesdel cursor y actualiceUser Rulescon 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 questionCMD+L(en Mac) para abrir el chat.Asegúrese de que
agentesté 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 MCPpara abrir el archivo de configuración,~/.codeium/windsurf/mcp_config.json.Actualice con
langgraph-docs-mcpcomo se indicó anteriormente.
Actualizar
Windsurf Rules/Global rulescon 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 questionA continuación, prueba el ejemplo:
Realizará sus llamadas de herramientas.
Conectarse a Claude Desktop
Abra
Settings/Developerpara actualizar~/Library/Application\ Support/Claude/claude_desktop_config.json.Actualice con
langgraph-docs-mcpcomo 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
pythonen el comandouvx.{ "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
rulespara 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 localVerá
~/.claude.jsonactualizado.Pruebe iniciando Claude Code y ejecutándolo para ver sus herramientas:
$ Claude
$ /mcp [!Nota] Actualmente (21/3/25) parece que Claude Code no admite
rulespara 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:
Usando un archivo de configuración YAML:
Esto cargará la documentación de Python de LangGraph desde el archivo
sample_config.yamlen este repositorio.
mcpdoc --yaml sample_config.yamlUsando un archivo de configuración JSON:
Esto cargará la documentación de Python de LangGraph desde el archivo
sample_config.jsonen este repositorio.
mcpdoc --json sample_config.jsonEspecificar 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
--urlsvarias veces.Así es como cargamos
llms.txtpara el servidor MCP anterior.
mcpdoc --urls LangGraph:https://langchain-ai.github.io/langgraph/llms.txt --urls LangChain:https://python.langchain.com/llms.txtTambié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.txtOpciones 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 15Esto 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.txtEjemplo 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")This server cannot be installed
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.