项目简介
'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。
安装步骤
- 安装 Python 环境: 确保您的系统已安装 Python 3.8 或更高版本。
- 安装 vector-mcp 包: 打开终端或命令提示符,运行以下命令:
如果您需要支持特定的向量数据库,可以安装其额外依赖。例如,支持 PGVector:python -m pip install vector-mcp
或者安装所有支持的数据库依赖: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)可以通过调用其暴露的工具来与向量数据库交互。
-
作为独立服务部署 (推荐): 使用 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' 作为默认向量数据库。
-
通过AI Agent调用工具: 一旦服务器运行并通过 'mcp.json' 配置连接,AI Agent可以像下面这样调用工具:
- 创建集合:
AI Prompt (客户端向MCP服务器发送的请求):
AI Response (MCP服务器返回的响应示例):Create a collection called my_knowledge_base with documents from the directory: /path/to/my/local/docsThe 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:
AI Response:Retrieve information about "AI Agents" from the collection named my_knowledge_base.{ "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:
AI Response:Delete the collection called old_data_collection.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 Prompt (客户端向MCP服务器发送的请求):
信息
分类
AI与计算