关于 devdocs-mcp
DevDocs-MCP 是本地 MCP 服务,为编码 Agent 提供来自 DevDocs.io 的版本固定文档。它按项目依赖版本筛选并缓存内容,支持离线检索。
主要功能
- 01按项目依赖匹配文档版本
- 02缓存文档以供离线使用
- 03模糊搜索并排序结果
- 04输出结构化文档内容
- 05使用 SQLite 管理元数据
适用场景
- 01查询项目依赖对应的 API 文档
- 02在离线环境检索已缓存文档
- 03减少编码时的版本混淆
MCP 相关
作为 MCP 服务,提供文档摄取和检索能力;支持 stdio,也可通过 HTTP SSE 连接远程客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | number | 否 | 要返回的最大结果数(默认值为 5) |
| query | string | 是 | 搜索查询(例如,“react hooks”“python list”) |
| projectId | string | 否 | 可选的项目 ID,用于优先显示与项目依赖项相关的文档 |
详细介绍
DevDocs-MCP:AI Agent 的权威文档来源
|
|
|
借助本地、版本感知且权威的文档,消除 AI 的幻觉。
DevDocs-MCP 是一个 Model Context Protocol(MCP)服务,为 AI 助手(Claude、RooCode、Cline、Copilot 等)提供来自 DevDocs.io 的固定版本、确定性文档。它充当本地文档智能层,确保你的 Agent 始终获得正确的 API 上下文,不受网络延迟或训练数据偏差的影响。
此服务遵循 MCP 提出的 MCP 服务标准。整个生态系统中的 AI 工具和 Agent(包括 Anthropic、OpenAI 和 Google 等提供商的产品)都在采用该标准。
⚠️ 项目状态说明 ⚠️ 此项目正处于活跃且快速的开发阶段。目前仍需测试现有功能,并实现更多新功能,例如优化缓存、自动更新最新文档并支持按需更新、优化查询等。设计决策、API 和项目结构预计会根据开发者社区的意见、评审和反馈不断演进。我热忱欢迎大家参与讨论、提出批评和贡献代码,共同推动项目朝正确的方向发展。
📑 目录
🎯 概述
本项目是什么
- 使用 NestJS(TypeScript)编写的本地 MCP 服务。
- 为文档元数据和内容提供确定性权威来源。
- 按需摄取引擎,可在本地缓存 DevDocs。
- 项目感知型上下文管理器,可根据你的
package.json版本固定文档。
本项目不是什么
- ❌ 不是 AI Agent 或代码生成器。
- ❌ 不是网页爬虫(它使用结构化的 DevDocs 数据集)。
- ❌ 不是 DevDocs UI 的替代品。
- ❌ 不是托管式 SaaS(它 100% 在本地运行)。
项目缘起(面临的问题)
现代 AI 编码 Agent 面临三大难题:
- 幻觉:猜错 API 签名或使用已弃用的方法。
- 延迟:每次查询都获取实时网页文档,速度很慢。
- 版本漂移:混淆 React 18 与 React 19 的功能。
解决方案:DevDocs-MCP 从本地存储中即时检索文档,并根据项目的特定依赖版本进行筛选。
工作原理
DevDocs-MCP 充当 IDE Agent 与文档来源之间的中间件。
graph TD
Agent["AI Agents"] -->|MCP Search/Explain| Server["DevDocs-MCP Server"]
Server -->|Metadata| DB[(SQLite - sql.js)]
Server -->|Content| FS[Local Disk - JSON Cache]
Server -.->|Lazy Fetch| Web[DevDocs.io API]
🚀 核心功能
- 离线优先:文档缓存在本地;摄取完成后无需联网。
- 排序模糊搜索:即时查找相关条目(例如“intersection observer”)。
- 版本感知:自动映射到项目中指定的库版本。
- 纯 Node 架构:使用
sql.js,无需原生依赖(不需要 Python/C++ 构建步骤)。 - 结构化输出:返回简洁、针对 LLM 优化的内容。
⚡ 快速开始
- 克隆并安装
git clone https://github.com/madhan-g-p/DevDocs-MCP.git
cd DevDocs-MCP
pnpm install
- 配置环境
cp .env.example .env
# Edit .env: Set DEVDOCS_DATA_PATH to where you want to store docs.
- 构建并运行
pnpm build
pnpm start:prod
**注意:**开发和贡献时必须使用
pnpm。
🛠️ 安装与设置
DevDocs-MCP 通过 pnpm 实现轻松设置。它是一个仅限 Node.js 的项目。
前置条件
- Node.js 18+(已在 18.x 和 20.x 上测试)。
🐳 Docker 用法
DevDocs-MCP 专为轻量化和持久化而设计。由于它会下载并缓存大型文档数据集,因此正确管理数据卷至关重要。
方法 A:Docker Compose(动态且持久)
这是推荐的方法。通过 .env 文件中的 DEVDOCS_VOLUME_SOURCE 变量,它支持 3 种存储模式。
-
在
.env中配置首选存储方式:# 模式 1:命名卷(默认 — 由 Docker 管理) DEVDOCS_VOLUME_SOURCE=devdocs_data # 模式 2:主机路径(Docker 外部 — 本地文件夹) # DEVDOCS_VOLUME_SOURCE=./my-docs-storage -
启动服务:
docker compose up -d
灵活性:每次启动容器时,只需更改
.env文件中的DEVDOCS_VOLUME_SOURCE,即可指定新卷(从头开始)或现有卷(保留数据)。mcp.db(数据库库)和data/(文档下载文件)都会存储在此卷中。
方法 B:Docker Run(手动)
如果你只想直接从 Docker Hub 运行公开镜像:
docker run -d -p 3000:3000 \
-v "devdocs_data:/app/data" \
--name devdocs-mcp \
madhandock1/devdocs-mcp:latest
💾 数据策略
项目使用 /app/data 这一个挂载点,其中包含:
/app/data/mcp.db:SQLite 注册表。/app/data/docs/:缓存的文档文件。 这种统一结构让你只需移动一个文件夹或卷,就能轻松备份或迁移整个文档库。
配置(.env)
| 变量 | 描述 | 默认值 |
|---|---|---|
DEVDOCS_DATA_PATH | 存储下载的文档 JSON 的路径。 | ./data |
MCP_DB_PATH | SQLite 元数据数据库的路径。 | mcp.db |
LOG_LEVEL | 日志详细程度(debug、info、warn、error)。 | info |
导入文档
服务器连接到你的 Agent 后,使用 ingest 工具下载与你的技术栈对应的文档:
服务器启动并运行后,Agent 会负责处理;它应该会列出可用工具,并据此作出决定。
{
"dependencies": {
"react": "18.2.0",
"typescript": "5.0.0"
}
}
注意:用于导入的 Devdocs 获取 URL 定义在
src/config/constants.ts中。此 URL 当前指向正确且官方支持的路径。如果 devdocs 社区未来更改此路径,可能需要相应更新配置。
此方法不涉及网页抓取,而是采用 DevDocs 使用的相同支持机制来提供离线使用的文档,类似于用户在 DevDocs 中下载文档的方式。
🤖 AI Agent 配置
RooCode / Cline / Claude Desktop(推荐:STDIO)
将以下内容添加到 mcp_settings.json。设置 cwd(当前工作目录)后,服务会自动从 .env 文件加载配置,让你可以使用相对路径存储数据。
{
"mcpServers": {
"devdocs": {
"command": "node",
"args": ["dist/main.js"],
"cwd": "file://path/to/your/DevDocs-MCP"
}
}
}
专业提示:在
cwd中使用项目的绝对路径。这样服务就能找到.env,并使用你在其中定义的DEVDOCS_DATA_PATH和MCP_DB_PATH(例如./data或mcp.db),让设置更易于移植!
远程 / Web 客户端(HTTP SSE)
如果需要通过端口公开服务(用于生产环境 / 远程设置):
- 使用端口标志启动服务:
node dist/main.js --port 3000 - 配置客户端:
- SSE URL:
http://your-server:3000/mcp/sse - 类型:
SSE(大多数 MCP 客户端都支持,至少我猜是这样)
- SSE URL:
📖 延伸阅读
灵感来自 @Nathaniel Whiteinge 的项目 devdocs-local、 devdocs-local-demo
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。