项目简介
Epsilla MCP Server 是一个基于 MCP 协议构建的后端服务,旨在为大型语言模型 (LLM) 应用提供结构化的上下文信息访问和功能扩展能力。它利用 Epsilla 向量数据库作为数据存储和检索的后端,并通过 MCP 协议标准化的工具接口,使得 LLM 客户端能够安全、便捷地调用 Epsilla 的数据管理和查询能力。
主要功能点
- 工具集成: 集成了 Epsilla 向量数据库的常用操作,如创建/删除/列出数据表、插入/查询/获取/删除数据等,以工具的形式暴露给 LLM 客户端。
- 标准化 MCP 协议: 遵循 MCP 协议规范,使用 JSON-RPC 进行通信,易于与各种 MCP 客户端集成。
- 可扩展性: 基于 Python 和 MCP Server SDK 构建,易于扩展新的工具和功能。
- 速率限制: 实现了简单的速率限制机制,保��后端服务免受过载。
- 简单的配置: 通过环境变量进行配置,方便部署和管理。
安装步骤
-
克隆仓库:
git clone https://github.com/epsilla-cloud/mcp-epsilla.git cd mcp-epsilla -
创建并激活虚拟环境 (推荐):
python3 -m venv venv source venv/bin/activate # 或 venv\Scripts\activate for Windows -
安装依赖:
pip install -r requirements.txt -
配置环境变量: 复制 '.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' 脚本路径对于客户端是可访问的(通常客户端会在项目根目录下执行命令)。
基本使用方法
-
启动服务器: 在 'mcp-epsilla' 仓库根目录下,激活虚拟环境后,可以直接运行 'src/init.py' 中的 'main' 函数来启动服务器。
python3 src/__init__.py服务器默认使用标准输入输出 (stdio) 进行通信,启动后会等待 MCP 客户端的连接和请求。
-
配置 MCP 客户端: 在你的 MCP 客户端应用中,根据 "服务器配置" 章节的信息配置连接到 Epsilla MCP Server。
-
使用工具: 客户端连接成功后,可以使用 MCP 协议定义的 'mcp/listTools' 请求获取服务器提供的工具列表。例如,可以获取到 'list_tables' 和 'create_table' 等工具。
-
调用工具: 使用 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 向量数据库的官方文档。
信息
分类
数据库与文件