项目简介

Epsilla MCP Server 是一个基于 MCP 协议构建的后端服务,旨在为大型语言模型 (LLM) 应用提供结构化的上下文信息访问和功能扩展能力。它利用 Epsilla 向量数据库作为数据存储和检索的后端,并通过 MCP 协议标准化的工具接口,使得 LLM 客户端能够安全、便捷地调用 Epsilla 的数据管理和查询能力。

主要功能点

  • 工具集成: 集成了 Epsilla 向量数据库的常用操作,如创建/删除/列出数据表、插入/查询/获取/删除数据等,以工具的形式暴露给 LLM 客户端。
  • 标准化 MCP 协议: 遵循 MCP 协议规范,使用 JSON-RPC 进行通信,易于与各种 MCP 客户端集成。
  • 可扩展性: 基于 Python 和 MCP Server SDK 构建,易于扩展新的工具和功能。
  • 速率限制: 实现了简单的速率限制机制,保��后端服务免受过载。
  • 简单的配置: 通过环境变量进行配置,方便部署和管理。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/epsilla-cloud/mcp-epsilla.git
    cd mcp-epsilla
  2. 创建并激活虚拟环境 (推荐):

    python3 -m venv venv
    source venv/bin/activate  # 或 venv\Scripts\activate for Windows
  3. 安装依赖:

    pip install -r requirements.txt
  4. 配置环境变量: 复制 '.env.example' 文件并重命名为 '.env',然后根据你的 Epsilla Cloud 项目信息修改以下环境变量:

    EPSILLA_PROJECT_ID=Your-Epsilla-Project-ID  # 你的 Epsilla 项目 ID
    EPSILLA_API_KEY=Your-Epsilla-API-Key      # 你的 Epsilla API Key
    EPSILLA_DB_ID=Your-Epsilla-DB-ID         # 你要连接的 Epsilla 数据库 ID

    请务必替换为你在 Epsilla Cloud 中获得的真实 Project ID、API Key 和 DB ID。

服务器配置

MCP 客户端需要配置以下 JSON 信息来连接 Epsilla MCP Server。以下配置信息适用于通过标准输入输出 (stdio) 协议连接的情况。

{
  "serverName": "epsilla-mcp-server",  // MCP 服务器的名称,可以自定义
  "command": "python3",              // 启动 MCP 服务器的命令,这里假设使用 python3
  "args": [                           // 启动命令的参数
    "src/server.py"                 // 指定服务器启动脚本的路径
  ]
}

配置参数说明:

  • 'serverName': 服务器的名称,用于客户端识别,可以自定义。
  • 'command': 运行服务器端代码的可执行命令,通常是 Python 解释器 'python3' 或 'python'。
  • 'args': 传递给 'command' 的参数列表,这里指定了服务器主程序 'src/server.py' 的路径。

请注意: 确保你的 MCP 客户端能够执行 'python3' 命令,并且 'src/server.py' 脚本路径对于客户端是可访问的(通常客户端会在项目根目录下执行命令)。

基本使用方法

  1. 启动服务器: 在 'mcp-epsilla' 仓库根目录下,激活虚拟环境后,可以直接运行 'src/init.py' 中的 'main' 函数来启动服务器。

    python3 src/__init__.py

    服务器默认使用标准输入输出 (stdio) 进行通信,启动后会等待 MCP 客户端的连接和请求。

  2. 配置 MCP 客户端: 在你的 MCP 客户端应用中,根据 "服务器配置" 章节的信息配置连接到 Epsilla MCP Server。

  3. 使用工具: 客户端连接成功后,可以使用 MCP 协议定义的 'mcp/listTools' 请求获取服务器提供的工具列表。例如,可以获取到 'list_tables' 和 'create_table' 等工具。

  4. 调用工具: 使用 MCP 协议定义的 'mcp/callTool' 请求调用具体的工具,例如调用 'create_table' 工具创建新的数据表。你需要根据工具的 'inputSchema' 提供相应的参数。

示例 (MCP 客户端调用 'list_tables' 工具):

客户端发送 JSON-RPC 请求:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "mcp/callTool",
  "params": {
    "tool_call": {
      "name": "list_tables",
      "arguments": {}
    }
  }
}

服务器会返回包含数据表列表的 JSON-RPC 响应。

具体工具的使用方法和参数,请参考代码中的 'list_tools' 函数和 'call_tool' 函数的实现,以及 Epsilla 向量数据库的官方文档。

信息

分类

数据库与文件