返回市场
avs文档mcp

avs文档mcp

作者:patw2 星标更新:2025-08-13

项目介绍

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 Desktop 工具调用

预备条件

  • 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",
        "<路径到>/avs-docs-mcp/avs-mcp.py"
      ]
    }
  }
}

配置

复制 sample.env.env 并编辑以进行配置:

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

未来改进

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

贡献

欢迎提交拉取请求!对于重大更改,请先打开一个问题。

作者

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

许可证

MIT