文档智能服务

DevDocs-MCP是一个本地化的文档智能服务,为AI助手提供版本固定的权威文档,消除AI幻觉并减少网络延迟。

  • by madhan-g-p
  • TypeScript
  • 本地部署
  • 13 星标
  • 更新于
在 GitHub 查看 madhan-g-p/DevDocs-MCP

使用说明

DevDocs MCP:人工智能代理的文档管理机构

通过本地、版本感知和权威文档消除人工智能幻觉。

DevDocs MCP是一个模型上下文协议(MCP)服务器,提供版本固定的、确定性的文档,来源于 DevDocs.io AI助手(Claude、RooCode、Cline、Copilot等)。它充当本地文档智能层,确保您的代理始终具有正确的API上下文,而不会出现网络延迟或训练数据漂移。

该服务器遵循由 主控程序 ,这正被整个生态系统的人工智能工具和代理所采用,包括来自Anthropic、OpenAI和谷歌等提供商的工具和代理。


⚠️ 项目状态通知 ⚠️ 该项目正处于积极而繁重的开发中。仍然需要测试现有功能并实现更多新功能,如最佳缓存、自动更新最新文档以及基于请求、最佳查询等。..设计决策、API和结构预计将根据开发人员社区的强烈意见、评论和反馈而发展。我热烈欢迎讨论、批评和贡献,以帮助将这个项目朝着正确的方向发展。


📑 目录

  1. 概述
  2. 关键能力
  3. 快速入门
  4. 安装和设置
  5. AI代理配置
  6. 延伸阅读

🎯 概述

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编码代理面临三大障碍:

  1. 幻觉:猜测API签名或使用不推荐使用的方法。
  2. 延迟:为每个查询获取实时网络文档很慢。
  3. 版本漂移将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优化的内容。

⚡ 快速入门

  1. 克隆和安装
git clone https://github.com/madhan-g-p/DevDocs-MCP.git
cd DevDocs-MCP
pnpm install
  1. 配置环境
cp .env.example .env
# Edit .env: Set DEVDOCS_DATA_PATH to where you want to store docs.
  1. 构建与运行
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 文件。

  1. 配置您的首选存储 在 .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
    
  2. 启动服务器:

    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)

如果需要通过端口公开服务器(用于生产/远程设置):

  1. 使用端口标志启动服务器:
    node dist/main.js --port 3000
    
  2. 配置您的客户端:
    • SSE URL: http://your-server:3000/mcp/sse
    • 类型: SSE (至少我想大多数MCP客户端都支持)

📖 延伸阅读


受此项目启发 devdocs本地 , devdocs本地演示 通过 @纳撒尼尔·怀廷格