项目简介

'Vector Database MCP Server' (vector-mcp) 是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在为大型语言模型 (LLM) 客户端提供标准化的向量数据库服务。它抽象了不同向量数据库(如 ChromaDB, PGVector, Qdrant, Couchbase, MongoDB)的底层差异,允许LLM通过统一的接口进行向量集合的创建、文档的添加、信息检索以及集合的删除。这使得AI应用能够更便捷地利用向量数据库进行检索增强生成 (RAG) 任务,从而提升LLM的知识准确性和实用性。

主要功能点

  • 创建集合: 允许AI Agent根据本地文件系统路径或URLs创建新的向量集合,或连接到现有集合。
  • 添加文档: 支持向现有集合中添加新的文档,以扩展知识库。
  • RAG检索: 提供基于语义相似度的信息检索功能,AI Agent可以通过提问从向量集合中获取相关上下文,用于检索增强生成。
  • 删除集合: 允许AI Agent删除不再需要的向量集合。
  • 多数据库支持: 兼容多种主流向量数据库,包括 ChromaDB, PGVector, Qdrant, Couchbase, 和 MongoDB。

安装步骤

  1. 安装 Python 环境: 确保您的系统已安装 Python 3.8 或更高版本。
  2. 安装 vector-mcp 包: 打开终端或命令提示符,运行以下命令:
    python -m pip install vector-mcp
    如果您需要支持特定的向量数据库,可以安装其额外依赖。例如,支持 PGVector:
    python -m pip install vector-mcp[pgvector]
    或者安装所有支持的数据库依赖:
    python -m pip install vector-mcp[all]

服务器配置

MCP客户端需要通过JSON配置来连接 'vector-mcp' 服务器。以下是一个 'mcp.json' 配置示例,您需要根据实际部署情况进行调整:

{
  "mcpServers": {
    "vector_mcp_service": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "vector-mcp",
        "vector-mcp",
        "--transport", "http",
        "--host", "127.0.0.1",
        "--port", "8001"
      ],
      "env": {
        "DATABASE_TYPE": "chromadb",                   // 可选:指定向量数据库类型,如 chromadb, pgvector, qdrant, couchbase, mongodb。默认: chromadb
        "COLLECTION_NAME": "my_rag_collection",       // 可选:默认要操作的集合名称。默认: memory
        "DOCUMENT_DIRECTORY": "/path/to/my/documents/" // 可选:默认的文档目录。默认: None
      },
      "timeout": 300000 // 可选:服务器启动超时时间,单位毫秒。
    }
  }
}

配置说明:

  • 'mcpServers': 包含所有 MCP 服务器配置的根对象。
  • 'vector_mcp_service': 您可以为您的 MCP 服务器实例自定义名称。
  • 'command': 启动 MCP 服务器的命令。通常是 'uv' 或 'python'。
  • 'args': 传递给 'command' 的参数列表。
    • '--transport': 指定通信协议,可以是 'stdio' (标准输入/输出), 'http' (HTTP), 'sse' (Server-Sent Events,遗留模式)。请根据您的 MCP 客户端需求选择。
    • '--host': MCP 服务器监听的主机地址。如果是HTTP或SSE传输,通常设置为 '0.0.0.0' (允许外部访问) 或 '127.0.0.1' (仅限本地访问)。
    • '--port': MCP 服务器监听的端口号。
  • 'env': 环境变量,用于配置 'vector-mcp' 连接底层向量数据库的细节。
    • 'DATABASE_TYPE': 告诉 'vector-mcp' 要使用哪种向量数据库。
    • 'COLLECTION_NAME': 如果未在工具调用中指定,则为默认集合名称。
    • 'DOCUMENT_DIRECTORY': 如果在工具调用中未指定,则为默认的文档源目录。
  • 'timeout': 服务器启动的等待时间,单位为毫秒。

基本使用方法

部署 'vector-mcp' 服务器后,您的MCP客户端(例如AI Agent)可以通过调用其暴露的工具来与向量数据库交互。

  1. 作为独立服务部署 (推荐): 使用 Docker 部署服务,使其在后台运行并监听指定端口:

    docker pull knucklessg1/vector-mcp:latest
    docker run -d -p 8001:8001 -e HOST=0.0.0.0 -e PORT=8001 -e DATABASE_TYPE=chromadb --name vector_mcp_instance knucklessg1/vector-mcp:latest

    这将启动一个 'vector-mcp' 实例,监听 '8001' 端口,并使用 'chromadb' 作为默认向量数据库。

  2. 通过AI Agent调用工具: 一旦服务器运行并通过 'mcp.json' 配置连接,AI Agent可以像下面这样调用工具:

    • 创建集合: AI Prompt (客户端向MCP服务器发送的请求):
      Create a collection called my_knowledge_base with documents from the directory: /path/to/my/local/docs
      AI Response (MCP服务器返回的响应示例):
      The collection named "my_knowledge_base" has been successfully created or retrieved from the vector database using the documents in the directory /path/to/my/local/docs. Let me know if you'd like to perform any further actions, such as querying the collection or adding more documents!
    • 从集合中检索信息: AI Prompt:
      Retrieve information about "AI Agents" from the collection named my_knowledge_base.
      AI Response:
      {
        "retrieved_texts": [
          "AI Agents are autonomous entities...",
          "They can perform tasks without human intervention..."
        ],
        "message": "Collection retrieved from successfully",
        "data": {
          "Database Type": "chromadb",
          "Collection Name": "my_knowledge_base",
          "Question": "AI Agents",
          "Number of Results": 1,
          "Database": "test_db",
          "Database Host": "127.0.0.1"
        },
        "status": 200
      }
    • 删除集合: AI Prompt:
      Delete the collection called old_data_collection.
      AI Response:
      The collection named "old_data_collection" has been successfully deleted. Let me know if you'd like to create a new collection or perform any other actions!

信息

分类

AI与计算