Avs Docs Mcp

Avs Docs Mcp

🚀 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检索完整的父文档。
    • 返回原始内容和文件路径。
    • 在搜索后使用,以获取文档块的完整上下文。

📦 安装指南

前提条件

  • 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实现结合向量和文本搜索的混合搜索。
  • 通过Docling支持更多文件格式(如PDF、Word等)。

贡献

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

作者

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

📄 许可证

MIT

  • 0 关注
  • 0 收藏,33 浏览
  • system 提出于 2025-09-18 23:33

相似服务问题

相关AI产品