使用说明
DevDocs MCP:人工智能代理的文档管理机构
通过本地、版本感知和权威文档消除人工智能幻觉。
DevDocs MCP是一个模型上下文协议(MCP)服务器,提供版本固定的、确定性的文档,来源于 DevDocs.io AI助手(Claude、RooCode、Cline、Copilot等)。它充当本地文档智能层,确保您的代理始终具有正确的API上下文,而不会出现网络延迟或训练数据漂移。
该服务器遵循由 主控程序 ,这正被整个生态系统的人工智能工具和代理所采用,包括来自Anthropic、OpenAI和谷歌等提供商的工具和代理。
⚠️ 项目状态通知 ⚠️ 该项目正处于积极而繁重的开发中。仍然需要测试现有功能并实现更多新功能,如最佳缓存、自动更新最新文档以及基于请求、最佳查询等。..设计决策、API和结构预计将根据开发人员社区的强烈意见、评论和反馈而发展。我热烈欢迎讨论、批评和贡献,以帮助将这个项目朝着正确的方向发展。
📑 目录
🎯 概述
What This Project Is
- A. 本地MCP服务器 用NestJS(TypeScript)编写。
- A. 确定性权威 用于文档元数据和内容。
- A. 惰性摄取引擎 离线缓存DevDocs。
- A. 项目感知上下文管理器 将文档固定到您的
package.json版本。
What This Project Is NOT
- ❌ AI代理或代码生成器。
- ❌ web scraper(它使用结构化的DevDocs数据集)。
- ❌ DevDocs UI的替代品。
- ❌ 托管SaaS(100%本地运行)。
Why This Exists (The Problem)
现代AI编码代理面临三大障碍:
- 幻觉:猜测API签名或使用不推荐使用的方法。
- 延迟:为每个查询获取实时网络文档很慢。
- 版本漂移将React 18与React 19的特性混合使用。
解决方案:DevDocs MCP提供从本地存储检索的“准时制”文档,并按项目的特定依赖版本进行过滤。
Mental Model
DevDocs MCP充当IDE代理和文档源之间的中间件。
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]
🚀 关键能力
- 离线优先:文档在本地缓存;摄入后不需要上网。
- 分级模糊搜索:立即找到相关条目(例如“交叉口观察者”)。
- 版本意识:自动映射到项目中的特定库版本。
- 纯节点架构:用途
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 18+(在18.x和20.x上测试)。
🐳 Docker 使用
DevDocs MCP旨在实现轻量级和持久性。由于它可以下载和缓存大型文档数据集,因此正确管理数据量至关重要。
方法A:Docker Compose(动态和持久)
这是推荐的方式。它通过以下方式支持3种存储模式 DEVDOCS_VOLUME_SOURCE 变量在你的 .env 文件。
-
配置您的首选存储 在
.env:# Mode 1: Named volume (Default - Docker manages it) DEVDOCS_VOLUME_SOURCE=devdocs_data # Mode 2: Host Path (Outside Docker - Local folder) # DEVDOCS_VOLUME_SOURCE=./my-docs-storage -
启动服务器:
docker compose up -d
灵活性:每次启动容器时,您都可以指向 新卷 (重新开始)或 现有容量 (保存您的数据)只需更改
DEVDOCS_VOLUME_SOURCE在你的.env文件。两者mcp.db(数据库库)和data/(文档下载)存储在此卷中。
方法B:Docker运行(手动)
如果你只想直接从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 |
详细程度(调试、信息、警告、错误)。 | info |
摄入文件
一旦服务器连接到您的代理,请使用 ingest 下载特定堆栈文档的工具:
代理将在服务器启动并运行后处理它,它应该列出可用的工具并做出相应的决定。
{
"dependencies": {
"react": "18.2.0",
"typescript": "5.0.0"
}
}
注意:摄取所需的Devdocs获取url在中定义
src/config/constants.ts。此URL当前指向正确且官方支持的路径。如果 devdocs 社区将来会更改此路径,可能需要相应地更新配置。
这种方法不涉及网络抓取。它遵循DevDocs使用的相同支持机制,为以下内容提供文档 离线使用,类似于用户在DevDocs本身中下载文档的方式。
🤖 AI代理配置
RooCode/Cline/克劳德桌面(推荐: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:
📖 延伸阅读
受此项目启发 devdocs本地 , devdocs本地演示 通过 @纳撒尼尔·怀廷格
