返回 MCP 目录
public公开dns本地运行

avs-docs-mcp

一个基于MongoDB Atlas向量搜索和Voyage AI嵌入技术的文档检索系统,支持语义搜索和文本匹配,包含文档分块、嵌入生成和存储功能。

article

README

🚀 MCP文档搜索系统

这是一个向量搜索系统,借助MongoDB Atlas向量搜索和Voyage AI嵌入技术实现文档检索。包含的示例数据适用于Atlas向量搜索 !

✨ 主要特性

  • 对带有分层标题的Markdown文档进行摄取和分块处理。
  • 利用Voyage AI的上下文嵌入API生成嵌入向量。
  • 将文档和嵌入向量以父子关系存储在MongoDB中。
  • 提供FastMCP服务器,用于语义文档搜索。
  • 支持可配置的向量维度和分块策略。

可用的MCP工具

文档搜索服务器提供以下工具:

  1. search_documents_vector(query: str, limit: int = 5)
    • 主要的搜索方法,使用向量相似度进行搜索。
    • 返回带有元数据和相似度分数的文档块。
    • 最适合基于语义或含义的查询。
  2. search_documents_lexicaly(query: str, limit: int = 1)
    • 备用搜索方法,使用词法/文本匹配进行搜索。
    • 返回带有搜索分数的完整父文档。
    • 当向量搜索未找到合适匹配时很有用。
  3. get_parent_document(parent_id: str)
    • 通过ID检索完整的父文档。
    • 返回原始内容和文件路径。
    • 在搜索后使用,以获取文档块的完整上下文。

Claude桌面工具调用

📦 安装指南

前提条件

  • Python 3.10+
  • 启用向量搜索的MongoDB Atlas集群
  • Voyage AI API密钥

安装步骤

  1. 克隆仓库:
git clone https://github.com/patw/avs-document-search.git
cd avs-document-search
  1. 安装依赖项:
pip install -r requirements.txt
  1. 根据sample.env文件创建.env文件,并填入你的凭证信息。

💻 使用示例

基础用法

  1. 摄取docs/目录下的文档:
python ingest_docs.py
  1. 运行搜索服务器:
python avs-mcp.py

运行搜索服务器主要是验证你的MongoDB URI是否正确,你需要将这个MCP服务器接入到像Claude Desktop这样的MCP客户端中。以下是一个示例配置:

{
  "mcpServers": {
    "Atlas Vector Search Docs": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "fastmcp, pymongo, requests",
        "fastmcp",
        "run",
        "<path to>/avs-docs-mcp/avs-mcp.py"
      ]
    }
  }
}

📚 详细文档

配置

复制sample.env文件为.env文件,并进行编辑以配置以下内容:

  • MongoDB连接字符串
  • 数据库和集合名称
  • Voyage AI API密钥
  • 向量维度(默认为256)

未来改进方向

  • (当MongoDB 8.1在Atlas上正式发布时)使用$rankFusion实现结合向量和文本搜索的混合搜索。
  • 通过Docling支持更多文件格式(如PDF、Word等)。

贡献

欢迎提交拉取请求!对于重大更改,请先开启一个问题进行讨论。

作者

Pat Wendorf
pat.wendorf@mongodb.com
GitHub: patw

📄 许可证

MIT

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端