mcpField
D
Documentation Retrieval MCP Server (DOCRET)

Documentation Retrieval MCP Server (DOCRET)

本地服务
github.com/Sreedeep-SS记忆与知识184 周前更新

关于 Documentation Retrieval MCP Server (DOCRET)

DOCRET 是一个 MCP 服务,用于检索指定 Python 库的最新文档,面向 AI 助手。它搜索官方文档站点,并从网页中提取可读文本。

主要功能

  1. 01按主题搜索文档
  2. 02支持 LangChain、LlamaIndex 和 OpenAI
  3. 03通过 SERPER API 搜索站点
  4. 04从 HTML 提取可读文本
  5. 05扩展文档库 URL 配置

适用场景

  1. 01查找 Python 库主题文档
  2. 02为 AI 助手获取官方参考资料
  3. 03添加其他库的文档站点

MCP 相关

MCP 服务通过 `get_docs` 函数提供文档检索,输入查询词和库名称后返回提取的文本。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

文档检索 MCP 服务(DOCRET)

本项目实现了一个 Model Context Protocol(MCP)服务,让 AI 助手能够访问各种 Python 库的最新文档,包括 LangChain、LlamaIndex 和 OpenAI。借助此服务,AI 助手可以动态获取官方文档中的相关信息并提供给用户。项目旨在确保 AI 应用始终能够访问最新的官方文档。

什么是 MCP 服务?

Model Context Protocol 是一项开放标准,使开发者能够在数据源与 AI 驱动的工具之间建立安全的双向连接。其架构十分简单:开发者既可以通过 MCP 服务公开数据,也可以构建连接到这些服务的 AI 应用(MCP 客户端)。

功能

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

前提条件

  • Python 3.8 或更高版本
  • 用于 Python 包管理的 UV(或者 pip,如果你不介意的话)
  • Serper API 密钥(用于 Google 搜索或“S​​ERP”搜索)
  • 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-4、BART 或 T5 来总结抓取的文档。
    • 也可以使用 Claude 3 Haiku、Gemini 1.5 Pro、GPT-4-mini、Open-mistral-nemo、Hugging 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 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。