使用说明
项目简介
本项目 'Weaviate MCP Server' 是一个实现了 Model Context Protocol (MCP) 的服务器,它利用 Weaviate 向量数据库作为后端,为大型语言模型(LLM)客户端提供结构化的知识库搜索和记忆存储功能。通过标准化的 MCP 协议,LLM 可以安全、可扩展地访问和利用外部数据,增强其上下文理解和生成能力。
主要功能点
- 知识库搜索: 允许 LLM 通过 'weaviate-search-knowledge' 工具在 Weaviate 知识库中检索相关信息,获取事实性知识。
- 记忆存储与检索: 提供 'weaviate-store-memory' 工具将信息存储为记忆,并通过 'weaviate-find-memories' 工具根据查询内容检索相关记忆,实现 LLM 的长期记忆功能。
- 基于 Weaviate: 数据存储和检索基于强大的 Weaviate 向量数据库,支持高效的语义搜索和向量相似度查询。
- MCP 协议兼容: 遵循 MCP 协议标准,可以与任何兼容 MCP 协议的 LLM 客户端(如 Claude Desktop)集成。
- 工具化接口: 以工具 (Tools) 的形式暴露知识库搜索和记忆存储功能,方便 LLM 客户端调用和使用。
安装步骤
-
环境准备:
- 确保已安装 'uv' (参考 uv 文档)。
- 克隆此仓库到本地:'git clone https://github.com/sndani/mcp-localhost-server-weaviate.git'
- 进入仓库目录:'cd mcp-localhost-server-weaviate'
-
安装依赖:
- 使用 'uv' 安装项目依赖:'uv pip install .'
-
配置 Weaviate:
- 确保已部署并运行 Weaviate 向量数据库实例。
- 根据需要配置 Weaviate 的连接信息,例如 URL 和 API 密钥。
- 运行 'create-weaviate-collections.py' 脚本创建必要的 Weaviate 集合(collections)。你需要设置以下环境变量:
- 'WEAVIATE_URL' (可选): Weaviate 服务器 URL,默认为 'localhost:8080'。
- 'WEAVIATE_API_KEY' (可选): Weaviate API 密钥。
- 'SEARCH_COLLECTION_NAME': 用于知识库搜索的 Collection 名称,例如 'KnowledgeBase'。
- 'STORE_COLLECTION_NAME': 用于记忆存储的 Collection 名称,例如 'Memories'。
- 'OPENAI_API_KEY' 或 'COHERE_API_KEY': 用于向量嵌入的 OpenAI 或 Cohere API 密钥,至少需要提供一个。
- 示例命令:
export SEARCH_COLLECTION_NAME="KnowledgeBase" export STORE_COLLECTION_NAME="Memories" export OPENAI_API_KEY="YOUR_OPENAI_API_KEY" # 或 export COHERE_API_KEY="YOUR_COHERE_API_KEY" python create-weaviate-collections.py
服务器配置
要将此 MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要提供服务器的启动命令和参数。以下是针对 Claude Desktop 的配置示例,您可以将其添加到 'claude_desktop_config.json' 文件的 'mcpServers' 字段中。
{ "mcpServers": { "mcp-server-weaviate": { "command": "PYTHON_PATH", // 替换为您的 Python 解释器路径,例如 "python" 或 "/usr/bin/python3" "args": [ "-m", "src.server", // 运行 src 目录下的 server.py 模块 "--weaviate-url", "YOUR_WEAVIATE_URL", // 替换为您的 Weaviate 服务器 URL,例如 "http://localhost:8080" "--weaviate-api-key", "YOUR_WEAVIATE_API_KEY", // 替换为您的 Weaviate API 密钥 (如果需要) "--search-collection-name", "YOUR_SEARCH_COLLECTION", // 替换为知识库 Collection 名称,例如 "KnowledgeBase" "--store-collection-name", "YOUR_STORE_COLLECTION", // 替换为记忆存储 Collection 名称,例如 "Memories" "--openai-api-key", "YOUR_OPENAI_API_KEY" // 替换为您的 OpenAI API 密钥 (如果使用 OpenAI 嵌入) // "--cohere-api-key", // "YOUR_COHERE_API_KEY" // 替换为您的 Cohere API 密钥 (如果使用 Cohere 嵌入) ], "env": { "PYTHONPATH": "PATH_TO_MCP_SERVER_WEAVIATE_DIRECTORY" // 替换为 mcp-localhost-server-weaviate 仓库的绝对路径 } } } }
注意:
- 请根据您的实际环境替换 'PYTHON_PATH'、'YOUR_WEAVIATE_URL'、'YOUR_WEAVIATE_API_KEY'、'YOUR_SEARCH_COLLECTION'、'YOUR_STORE_COLLECTION'、'YOUR_OPENAI_API_KEY' (或 'YOUR_COHERE_API_KEY') 和 'PATH_TO_MCP_SERVER_WEAVIATE_DIRECTORY' 为正确的值。
- 确保提供的 OpenAI API 密钥或 Cohere API 密钥至少有一个是有效的,用于向量嵌入。
- 'PYTHONPATH' 环境变量需要指向仓库根目录,以便服务器能够找到 'src' 目录下的模块。
基本使用方法
配置完成后,当 MCP 客户端(如 Claude Desktop)连接到此服务器后,LLM 就可以通过以下工具与 Weaviate 交互:
-
'weaviate-store-memory': 调用此工具可以将信息存储为记忆。
- 输入参数:
- 'information': 要存储的文本信息。
- 示例: LLM 可以使用此工具存储用户的偏好、对话历史等信息,以便后续回忆。
- 输入参数:
-
'weaviate-find-memories': 调用此工具可以根据查询内容检索相关记忆。
- 输入参数:
- 'query': 用于搜索记忆的查询文本。
- 示例: 当用户询问 "你还记得我上次跟你说过什么吗?",LLM 可以使用此工具检索相关记忆。
- 输入参数:
-
'weaviate-search-knowledge': 调用此工具可以在 Weaviate 知识库中搜索信息。
- 输入参数:
- 'query': 用于搜索知识库的查询文本。
- 示例: 当用户询问 "巴黎的首都是哪里?",LLM 可以使用此工具在知识库中查找答案。
- 输入参数:
LLM 客户端会根据自身逻辑和用户指令,选择合适的工具并提供相应的参数来调用这些功能,从而实现与 Weaviate MCP 服务器的交互。
信息
分类
数据库与文件