M

MCP文档服务器

@Sreedeep-SS/docret-mcp-server
0 Stars 28 次浏览 Sreedeep-SS 更新于 2026-08-23

一个MCP服务器,它通过从官方来源动态获取,使AI助手能够访问LangChain、LlamaIndex和OpenAI等Python库的最新文档。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

文档检索 MCP 服务器 (DOCRET)

该项目实现了一个模型上下文协议 (MCP) 服务器,使 AI 助手能够访问各种 Python 库的最新文档,包括 LangChain、LlamaIndex 和 OpenAI。通过利用此服务器,AI 助手可以动态获取并提供来自官方文档源的相关信息。目标是确保 AI 应用程序始终能够访问最新的官方文档。

什么是 MCP 服务器?

模型上下文协议是一个开放标准,使开发人员能够在其数据源和基于 AI 的工具之间构建安全的双向连接。架构非常简单:开发人员可以通过 MCP 服务器公开其数据,或者构建连接到这些服务器的 AI 应用程序(MCP 客户端)。

特性

  • 动态文档检索:为指定的 Python 库获取最新的文档内容。
  • 异步网络搜索:使用 SERPER API 在目标文档站点内执行高效的网络搜索。
  • HTML 解析:使用 BeautifulSoup 从 HTML 内容中提取可读文本。
  • 可扩展设计:通过更新配置轻松添加对其他库的支持。

先决条件

  • Python 3.8 或更高版本
  • UV 用于 Python 包管理(或 pip 如果你是个菜鸟)
  • Serper API 密钥(用于 Google 搜索或 "SERP")
  • Claude Desktop 或 Claude Code(用于测试)

安装

1. 克隆仓库

git clone https://github.com/Sreedeep-SS/docret-mcp-server.git
cd docret-mcp-server

2. 创建并激活虚拟环境

  • 在 macOS/Linux 上

    python3 -m venv env
    source env/bin/activate
    
  • 在 Windows 上

    python -m venv env
    .\env\Scripts\activate
    

3. 安装依赖项

激活虚拟环境后,安装所需的依赖项:

pip install -r requirements.txt

如果你使用的是 uv:

uv sync

设置环境变量

运行应用程序之前,请配置所需的环境变量。该项目使用 SERPER API 进行文档搜索,并需要一个 API 密钥。

  1. 在项目的根目录中创建一个 .env 文件。

  2. 添加以下环境变量:

    SERPER_API_KEY=your_serper_api_key_here
    

your_serper_api_key_here 替换为你的实际 API 密钥。

运行 MCP 服务器

安装好依赖项并设置好环境变量后,你可以启动 MCP 服务器。

python main.py

这将启动服务器并使其准备好处理请求。

使用

MCP 服务器提供了一个 API 来从支持的库中获取文档内容。它通过查询 SERPER API 获取相关文档链接并抓取页面内容来工作。

搜索文档

要在某个库中搜索特定主题的文档,请使用 get_docs 函数。该函数接受两个参数:

  • query: 要搜索的主题(例如,“Chroma DB”)
  • library: 库的名称(例如,“langchain”)

使用示例:

from main import get_docs

result = await get_docs("memory management", "openai")
print(result)

这将从相关的 OpenAI 文档页面中提取文本。

与 AI 助手集成

你可以将此 MCP 服务器与像 Claude 或自定义构建的 AI 模型这样的 AI 助手集成。要配置助手与服务器交互,请使用以下配置:

{
  "servers": [
    {
      "name": "Documentation Retrieval Server",
      "command": "python /path/to/main.py"
    }
  ]
}

确保指定了到 main.py 的正确路径。

扩展 MCP 服务器

该服务器当前支持以下库:

  • LangChain
  • LlamaIndex
  • OpenAI

要为更多库添加支持,请在 main.py 中更新 docs_urls 字典,添加库名称及其文档 URL:

docs_urls = {
    "langchain": "python.langchain.com/docs",
    "llama-index": "docs.llamaindex.ai/en/stable",
    "openai": "platform.openai.com/docs",
    "new-library": "new-library-docs-url.com",
}

📌 路线图

确实这对我来说非常令人兴奋,我期待着在此基础上进一步构建,并随时更新最新的新闻和可实现的想法。

这是我心中的计划:

  1. 为更多库添加支持(例如,Hugging Face、PyTorch)

    • 扩展 docs_urls 字典以包含更多库。
    • 修改 get_docs 函数以处理不同格式的文档页面。
    • 使用基于正则表达式或 AI 驱动的解析来更好地提取有意义的内容。
    • 提供一个 API 端点以动态添加新库。
  2. 实现缓存以减少冗余的 API 调用

    • 使用 Redis 或类似 functools.lru_cache 的内存缓存机制。
    • 实现基于时间的缓存失效。
    • 按库和搜索词缓存结果。
  3. 使用 AI 驱动的摘要优化网页抓取

    • 使用 GPT-4BARTT5 对抓取的文档进行摘要。
    • 还可以使用 Claude 3 HaikuGemini 1.5 ProGPT-4-miniOpen-mistral-nemoHugging Face Models 等等。所有这些都是值得讨论的。
    • 让用户可以在原始文档文本和摘要版本之间选择。
  4. 引入 REST API 用于外部集成

    • 使用 FastAPI 暴露 API 端点。(仅仅是因为)
    • 构建一个简单的前端仪表板以便于 API 交互。(为什么不呢?)
  5. 增加单元测试以提高可靠性

    • 使用 pytest 和 unittest 进行 API 和抓取可靠性的测试。(我们最不希望的就是这个东西变成核弹)
    • 实施 CI/CD 工作流以在每次推送时自动运行测试。(当然是基本功了)
  6. 开发过程中有用的更多 MCP 工具

    • 数据库集成
    • Google Docs/Sheets/Drive 集成
    • 文件系统操作
    • Git 集成
    • 将想法转化为产品的通信平台集成
    • Docker 和 Kubernetes 管理

参考资料

有关 MCP 服务器及其实施的更多详细信息,请参阅指南:

许可证

本项目采用MIT许可证。更多详情请参见LICENSE文件。