使用说明

项目简介

本项目 '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 客户端调用和使用。

安装步骤

  1. 环境准备:

    • 确保已安装 'uv' (参考 uv 文档)。
    • 克隆此仓库到本地:'git clone https://github.com/sndani/mcp-localhost-server-weaviate.git'
    • 进入仓库目录:'cd mcp-localhost-server-weaviate'
  2. 安装依赖:

    • 使用 'uv' 安装项目依赖:'uv pip install .'
  3. 配置 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 服务器的交互。

信息

分类

数据库与文件