文档检索服务器

MCP文档服务器为AI助手提供实时访问最新文档的功能,支持通过包名检索和抓取文档内容。

  • by Meetparmar40
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Meetparmar40/Zoroark

使用说明

一个快速的MCP服务器,可以按需查找和获取任何包的文档。


概述

MCP文档服务器 是一个 模型上下文协议 服务器,使AI助手能够实时访问最新文档。它公开了两个工具:

工具 说明
resolve_docs 搜索DuckDuckGo+npm/PyPI以找到包的最佳文档URL
scrape_page 获取URL并将其内容作为干净的标记返回

从任何问题中为它提供一个包名,并返回正确的文档——没有过时的快照,也没有产生幻觉的API。


运作原理

User question
     │
     ▼
resolve_docs(package_name, keywords?, version?)
     │  DuckDuckGo search  +  npm / PyPI registry lookup
     ▼
List of ranked documentation URLs
     │
     ▼
scrape_page(url)
     │  Crawl4AI headless browser → clean markdown
     ▼
Documentation content returned to the AI

安装

需要 Python 3.12+ 和 紫外线.

# Clone the repository
git clone https://github.com/your-username/mcp-docs-server.git
cd mcp-docs-server

# Install dependencies
uv sync

首次使用后,运行Crawl4AI安装后安装程序(下载浏览器二进制文件):

uv run crawl4ai-setup

用法

stdio(默认设置——适用于Claude Desktop等AI客户端)

uv run python -m mcp_docs_server.main

HTTP传输

MCP_TRANSPORT=http MCP_PORT=8000 uv run python -m mcp_docs_server.main

Claude桌面配置

将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "docs-server": {
      "command": "uv",
      "args": [
        "--directory", "/absolute/path/to/mcp-docs-server",
        "run", "python", "-m", "mcp_docs_server.main"
      ]
    }
  }
}

工具参考

resolve_docs

查找包的文档URL。

参数 类型 必填 说明
package_name str ✅ 在npm或PyPI上的确切包名(例如。 "react", "fastapi")
keywords list[str] ❌ 用户问题中的2-5个具体技术术语
version str ❌ 特定版本字符串(例如。 "18", "4.0")

最多返回6个结果——按排名顺序排列的DuckDuckGo的前5个结果,如果还没有官方注册链接,还可以加上。


scrape_page

废弃文档页面并将其内容作为标记返回。

参数 类型 必填 说明
url str ✅ 要获取的完整URL(通常来自 resolve_docs)

返回一个字典 url 和 content (标记文本,上限为300000个字符)。


配置

从环境变量(或 .env 文件):

变量 默认值 描述
RESOLVER_TIMEOUT 5 URL解析的HTTP超时(秒)
HEURISTIC_TIMEOUT 3 注册表启发式检查超时
SCRAPER_TIMEOUT_MS 20000 无头浏览器的页面加载超时(毫秒)
SCRAPER_MAX_CONTENT_CHARS 300000 从抓取的页面返回的最大字符数
MCP_TRANSPORT stdio 运输方式: stdio 或 http
MCP_PORT 8000 使用端口时 MCP_TRANSPORT=http

项目结构

mcp-docs-server/
├── src/
│   ├── media/
│   │   ├── logo.png               # Repository logo
│   │   └── logo_with_text.png     # Logo with tool name
│   └── mcp_docs_server/
│       ├── main.py                # FastMCP server & tool definitions
│       ├── config.py              # Pydantic settings
│       └── pipeline/
│           ├── resolver.py        # Stage 1 — URL resolution
│           └── scraper.py         # Stage 2 — page scraping
├── pyproject.toml
└── README.md

许可证

麻省理工学院——见 许可证 了解详情。