Documentation Retrieval MCP Server (DOCRET)

Documentation Retrieval MCP Server (DOCRET)

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

Category
访问服务器

README

文档检索 MCP 服务器 (DOCRET)

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

什么是 MCP 服务器?

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

特性

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

前提条件

  • Python 3.8 或更高版本
  • UV for 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 服务器与 AI 助手(如 Claude)或自定义构建的 AI 模型集成。要配置助手与服务器交互,请使用以下配置:

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

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

扩展 MCP 服务器

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

  • LangChain
  • LlamaIndex
  • OpenAI

要添加对其他库的支持,请使用库名称及其文档 URL 更新 main.py 中的 docs_urls 字典:

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 驱动的摘要优化 Web 抓取

    • 使用 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 文档/表格/云盘集成
    • 文件系统操作
    • Git 集成
    • 集成通信平台以将想法转化为产品
    • Docker 和 Kubernetes 管理

参考文献

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

许可证

本项目根据 MIT 许可证获得许可。有关更多详细信息,请参阅 LICENSE 文件。

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选