mcpdoc

GitHub
978 119 简单 1 次阅读 昨天MIT视频Agent语言模型
AI 解读 由 AI 自动生成,仅供参考

mcpdoc 是一款专为开发者设计的开源工具,旨在将 LLM 文档索引(llms.txt)高效集成到 Cursor、Windsurf 或 Claude Code 等智能开发环境中。它的核心作用是充当一个中间服务器,让 IDE 能够通过标准的模型上下文协议(MCP)精准获取项目所需的背景知识和详细文档链接。

过去,各类 AI 编程助手在读取 llms.txt 文件时往往依赖各自内置且不透明的机制,用户难以审计其具体调用了哪些文件或返回了何种上下文。mcpdoc 彻底解决了这一痛点,赋予开发者对文档检索过程的完全控制权。通过它,用户可以自定义文档源列表,并利用统一的 fetch_docs 工具按需抓取内容,确保每一次数据获取都清晰可见、安全可控。

该工具特别适合需要频繁查阅官方文档的全栈工程师、AI 应用开发者及技术研究人员。其独特的技术亮点在于实施了严格的域名访问控制策略:当指定远程文档源时,系统会自动锁定对应域名;若使用本地文件,则强制要求用户显式授权可访问的域名。这种设计有效防止了未经授权的跨域访问,在提升开发效率的同时,为代码上下文的安全性提供了坚实保障。

使用场景

一位后端工程师正在使用 Cursor 集成 LangGraph 构建复杂的智能体工作流,需要频繁查阅官方文档以确认节点状态和边定义的正确用法。

没有 mcpdoc 时

  • 上下文获取不透明:IDE 内置的文档读取机制像“黑盒”,开发者无法知晓 AI 具体引用了哪些文档片段,难以判断回答是否基于最新资料。
  • 跨库检索困难:同时涉及 LangGraph 和 LangChain 多个库时,手动切换网页查找或拼凑上下文效率极低,容易遗漏关键参数说明。
  • 安全审计缺失:无法限制 AI 访问的域名范围,存在模型意外抓取不可信第三方站点内容导致代码建议偏差的风险。
  • 调试成本高:当 AI 给出错误实现方案时,难以回溯其参考源,排查是文档版本问题还是模型理解偏差耗时费力。

使用 mcpdoc 后

  • 过程完全可控:通过 fetch_docs 工具明确调用链,开发者可在 MCP Inspector 中实时审计每一次文档获取请求及返回的具体上下文。
  • 多源一键整合:启动时直接配置 LangGraph 与 LangChain 的 llms.txt 索引,mcpdoc 自动将多库文档统一暴露给 IDE,AI 能跨库精准关联知识。
  • 域访问严格隔离:利用 --allowed-domains 参数仅授权官方域名,从根源阻断对非信任站点的访问,确保训练数据源的纯净与安全。
  • 问题快速定位:遇到异常输出时,可直接查看工具日志中命中的文档段落,迅速验证是文档更新滞后还是提示词引导不足。

mcpdoc 通过将文档索引权交还开发者,实现了 AI 编程中上下文获取的透明化、安全化与高效化。

运行环境要求

操作系统
  • Linux
  • macOS
  • Windows
GPU

未说明

内存

未说明

依赖
notes该工具是一个基于 MCP 协议的文档服务器,主要用于让 AI 编辑器(如 Cursor、Windsurf、Claude Desktop/Code)读取 llms.txt 索引文件。核心依赖是 'uv' 包管理器,通过 'uvx' 命令直接运行,无需安装重型深度学习框架或 GPU。具有严格的域名访问控制安全机制,使用本地文件时需手动指定允许访问的域名。
python3.8+ (通过 uv 管理,可显式指定 Python 路径)
uv
mcpdoc
mcpdoc hero image

快速开始

MCP LLMS-TXT 文档服务器

概述

llms.txt 是一个针对大型语言模型的网站索引,提供背景信息、使用指南以及指向详细 Markdown 文件的链接。像 Cursor 和 Windsurf 这样的 IDE,或者 Claude Code/Desktop 这样的应用,都可以使用 llms.txt 来获取任务相关的上下文信息。然而,这些应用内部使用的工具来读取和处理 llms.txt 等文件的方式各不相同,检索过程往往不够透明,用户也难以审计工具调用及返回的上下文。

MCP 为开发者提供了一种方法,使他们能够对这些应用程序所使用的工具拥有完全控制权。在此基础上,我们创建了一个开源的 MCP 服务器,为 MCP 主机应用(例如 Cursor、Windsurf、Claude Code/Desktop)提供:(1) 用户自定义的 llms.txt 文件列表;以及 (2) 一个简单的 fetch_docs 工具,用于读取任何已提供的 llms.txt 文件中的 URL 内容。这样一来,用户不仅可以审计每一次工具调用,还能查看返回的上下文信息。

llms-txt

您可以在以下位置找到 LangGraph 和 LangChain 的 llms.txt 文件:

llms.txt
LangGraph Python https://langchain-ai.github.io/langgraph/llms.txt
LangGraph JS https://langchain-ai.github.io/langgraphjs/llms.txt
LangChain Python https://python.langchain.com/llms.txt
LangChain JS https://js.langchain.com/llms.txt

快速入门

安装 uv

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

选择要使用的 llms.txt 文件。

注意:安全与域名访问控制

出于安全考虑,mcpdoc 实施了严格的域名访问控制:

  1. 远程 llms.txt 文件:当您指定一个远程的 llms.txt URL(例如 https://langchain-ai.github.io/langgraph/llms.txt)时,mcpdoc 会自动将该特定域名(langchain-ai.github.io)加入允许访问的域名列表中。这意味着该工具只能从该域名下的 URL 获取文档内容。

  2. 本地 llms.txt 文件:当使用本地文件时,系统不会自动将任何域名加入允许访问的列表。您必须通过 --allowed-domains 参数显式指定允许访问的域名。

  3. 添加额外域名:若需允许从未自动包含的域名获取内容:

    • 使用 --allowed-domains domain1.com domain2.com 添加特定域名
    • 使用 --allowed-domains '*' 允许所有域名(请谨慎使用)

此项安全措施可防止未经授权访问未经用户明确批准的域名,从而确保文档仅能从受信任的来源获取。

(可选)在本地使用您选择的 llms.txt 文件测试 MCP 服务器:

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

截图 2025-03-18 下午 3:29:30

npx @modelcontextprotocol/inspector

截图 2025-03-18 下午 3:30:30

  • 在这里,您可以测试工具调用。

连接到 Cursor

  • 打开 Cursor 设置 中的 MCP 选项卡。
  • 这将打开 ~/.cursor/mcp.json 文件。

截图 2025-03-19 上午 11:01:31

  • 将以下内容粘贴到文件中(我们使用 langgraph-docs-mcp 名称,并指向 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"
      ]
    }
  }
}
  • 确认服务器已在 Cursor 设置/MCP 选项卡中运行。
  • 最佳实践是随后更新 Cursor 的全局(用户)规则。
  • 打开 Cursor 的 设置/规则,并将 用户规则 更新为如下内容(或类似内容):
对于任何关于 LangGraph 的问题,使用 langgraph-docs-mcp 服务器来辅助解答——
+ 调用 list_doc_sources 工具以获取可用的 llms.txt 文件
+ 调用 fetch_docs 工具来阅读该文件
+ 反思 llms.txt 中的 URLs
+ 反思输入的问题
+ 对与问题相关的任何 URLs 调用 fetch_docs
+ 利用这些信息来回答问题
  • 使用 CMD+L(在 Mac 上)打开聊天界面。
  • 确保已选择 agent 模式。

截图 2025-03-18 下午 1:56:54

然后,尝试一个示例提示,例如:

LangGraph 中有哪些类型的记忆?

截图 2025-03-18 下午 1:58:38

连接到 Windsurf

  • 使用 CMD+L(在 Mac 上)打开 Cascade。
  • 点击 配置 MCP 以打开配置文件 ~/.codeium/windsurf/mcp_config.json
  • 按照上述说明更新为 langgraph-docs-mcp

截图 2025-03-19 上午 11:02:52

  • 更新 Windsurf 规则/全球规则 如下(或类似内容):
对于任何关于 LangGraph 的问题,使用 langgraph-docs-mcp 服务器来辅助解答——
+ 调用 list_doc_sources 工具以获取可用的 llms.txt 文件
+ 调用 fetch_docs 工具来阅读该文件
+ 反思 llms.txt 中的 URLs
+ 反思输入的问题
+ 对与问题相关的任何 URLs 调用 fetch_docs

截图 2025-03-18 下午 2:02:12

然后,尝试使用示例提示:

  • 系统将执行您的工具调用。

截图 2025-03-18 下午 2:03:07

连接到 Claude Desktop

  • 打开 Settings/Developer 来更新 ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • 按照上述说明,使用 langgraph-docs-mcp 进行更新。
  • 重启 Claude Desktop 应用程序。

[!注意] 如果在尝试将 MCPDoc 工具添加到 Claude Desktop 时遇到 Python 版本不兼容的问题,可以在 uvx 命令中显式指定 python 可执行文件的路径。

示例配置
{
  "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"
      ]
    }
  }
}

[!注意] 目前(2025年3月21日)似乎 Claude Desktop 不支持全局规则的 rules,因此请在您的提示词末尾添加以下内容。

<rules>
对于任何关于 LangGraph 的问题,请使用 langgraph-docs-mcp 服务器来帮助解答——
+ 调用 list_doc_sources 工具获取可用的 llms.txt 文件
+ 调用 fetch_docs 工具读取该文件
+ 思考 llms.txt 中的 URL
+ 思考输入的问题
+ 对与问题相关的任何 URL 调用 fetch_docs
</rules>

截图 2025-03-18 下午 2:05:54

  • 您会看到工具出现在聊天输入框的右下角。

截图 2025-03-18 下午 2:05:39

然后,尝试以下示例提示:

  • 在处理您的请求时,它会要求您批准工具调用。

截图 2025-03-18 下午 2:06:54

连接到 Claude Code

  • 在安装了 Claude Code 后,在终端中运行以下命令,将 MCP 服务器添加到您的项目中:
claude mcp add-json langgraph-docs '{"type":"stdio","command":"uvx" ,"args":["--from", "mcpdoc", "mcpdoc", "--urls", "langgraph:https://langchain-ai.github.io/langgraph/llms.txt", "LangChain:https://python.langchain.com/llms.txt"]}' -s local
  • 您会看到 ~/.claude.json 被更新。
  • 通过启动 Claude Code 并运行以下命令来测试以查看您的工具:
$ Claude
$ /mcp 

截图 2025-03-18 下午 2:13:49

[!注意] 目前(2025年3月21日)似乎 Claude Code 不支持全局规则的 rules,因此请在您的提示词末尾添加以下内容。

<rules>
对于任何关于 LangGraph 的问题,请使用 langgraph-docs-mcp 服务器来帮助解答——
+ 调用 list_doc_sources 工具获取可用的 llms.txt 文件
+ 调用 fetch_docs 工具读取该文件
+ 思考 llms.txt 中的 URL
+ 思考输入的问题
+ 对与问题相关的任何 URL 调用 fetch_docs
</rules>

然后,尝试以下示例提示:

  • 它会要求您批准工具调用。

截图 2025-03-18 下午 2:14:37

命令行界面

mcpdoc 命令提供了一个简单的 CLI,用于启动文档服务器。

您可以采用三种方式指定文档源,并且这些方式可以组合使用:

  1. 使用 YAML 配置文件:
  • 这将从本仓库中的 sample_config.yaml 文件加载 LangGraph 的 Python 文档。
mcpdoc --yaml sample_config.yaml
  1. 使用 JSON 配置文件:
  • 这将从本仓库中的 sample_config.json 文件加载 LangGraph 的 Python 文档。
mcpdoc --json sample_config.json
  1. 直接指定 llms.txt 的 URL,可选地附带名称:
  • URL 可以直接指定为纯 URL,也可以使用 名称:URL 的格式指定带有名称的 URL。
  • 您可以通过多次使用 --urls 参数来指定多个 URL。
  • 这就是我们在上面为 MCP 服务器加载 llms.txt 的方式。
mcpdoc --urls LangGraph:https://langchain-ai.github.io/langgraph/llms.txt --urls LangChain:https://python.langchain.com/llms.txt

您还可以结合这些方法来合并文档来源:

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

其他选项

  • --follow-redirects: 跟随 HTTP 重定向(默认为 False)
  • --timeout SECONDS: HTTP 请求超时时间,单位为秒(默认为 10.0)

带有附加选项的示例:

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

这将以 15 秒的超时时间加载 LangGraph 的 Python 文档,并在必要时跟随任何 HTTP 重定向。

配置格式

YAML 和 JSON 配置文件都应包含一个文档来源列表。

每个来源必须包含一个 llms_txt URL,也可以选择性地包含一个 name

YAML 配置示例(sample_config.yaml)

# mcp-mcpdoc 服务器的示例配置
# 每个条目必须包含一个 llms_txt URL,可选地附带名称
- name: LangGraph Python
  llms_txt: https://langchain-ai.github.io/langgraph/llms.txt

JSON 配置示例(sample_config.json)

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

程序化使用

from mcpdoc.main import create_server

# 创建一个包含文档来源的服务器
server = create_server(
    [
        {
            "name": "LangGraph Python",
            "llms_txt": "https://langchain-ai.github.io/langgraph/llms.txt",
        },
        # 您可以添加多个文档来源
        # {
        #     "name": "另一个文档",
        #     "llms_txt": "https://example.com/llms.txt",
        # },
    ],
    follow_redirects=True,
    timeout=15.0,
)

# 运行服务器
server.run(transport="stdio")

版本历史

mcpdoc==0.0.102025/07/22
mcpdoc==0.0.92025/07/07
mcpdoc==0.0.82025/03/31
mcpdoc==0.0.72025/03/27
mcpdoc==0.0.62025/03/24
mcpdoc==0.0.52025/03/21
mcpdoc==0.0.42025/03/18
mcpdoc==0.0.32025/03/18
mcpdoc==0.0.22025/03/18
mcpdoc==0.0.12025/03/18

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2周前
Agent开发框架图像

n8n

n8n 是一款面向技术团队的公平代码(fair-code)工作流自动化平台,旨在让用户在享受低代码快速构建便利的同时,保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点,帮助用户轻松连接 400 多种应用与服务,实现复杂业务流程的自动化。 n8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”:既可以通过直观的可视化界面拖拽节点搭建流程,也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外,n8n 原生集成了基于 LangChain 的 AI 能力,支持用户利用自有数据和模型构建智能体工作流。在部署方面,n8n 提供极高的自由度,支持完全自托管以保障数据隐私和控制权,也提供云端服务选项。凭借活跃的社区生态和数百个现成模板,n8n 让构建强大且可控的自动化系统变得简单高效。

184.7k|★★☆☆☆|今天
数据工具开发框架Agent

AutoGPT

AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台,核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点,让用户只需设定目标,AI 即可自主规划步骤、调用工具并持续运行直至完成任务。 无论是开发者、研究人员,还是希望提升工作效率的普通用户,都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体;研究人员能基于开源架构探索多智能体协作机制;而非技术背景用户也可直接选用预置的智能体模板,立即投入实际工作场景。 AutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑,每个块负责单一动作,灵活且易于调试。同时,平台支持本地自托管与云端部署两种模式,兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本,即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛,让人人都能成为 AI 的创造者与受益者。

183.6k|★★★☆☆|今天
Agent语言模型插件

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

161.1k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|4天前
Agent插件