项目简介
MySQL查询服务器是一个基于 Model Context Protocol (MCP) 框架构建的应用后端,它充当 MCP 服务器的角色,旨在为大型语言模型(LLM)客户端提供 MySQL 数据库的查询能力。该服务器通过 Server-Sent Events (SSE) 协议与客户端进行实时通信,允许 LLM 客户端通过调用预定义的工具来执行 SQL 查询并获取结果。
主要功能点
- MCP 协议支持: 遵循 MCP 协议规范,作为服务器端响应客户端的请求。
- MySQL 数据库查询: 提供执行 SQL 查询的功能,允许 LLM 客户端访问和操作 MySQL 数据库。
- 工具注册与执行: 注册 'mysql_query' 工具,LLM 客户端可以通过 MCP 协议调用该工具执行查询。
- SSE 实时通信: 使用 SSE 协议与客户端通信,推送查询结果和服务器事件。
- 环境变量配置: 通过 '.env' 文件灵活配置服务器和数据库连接参数。
- 日志记录: 具备完善的日志系统,方便监控服务器运行状态和排查问题。
安装步骤
-
克隆仓库:
git clone https://github.com/mangooer/mysql-mcp-server-sse cd mysql-mcp-server-sse -
安装依赖: 确保你的 Python 环境中已安装 'pip',然后运行以下命令安装项目依赖:
pip install -r requirements.txt -
配置环境变量: 复制 '.env.example' 文件并重命名为 '.env',然后根据你的 MySQL 数据库配置修改 '.env' 文件中的以下参数:
HOST=127.0.0.1 # 服务器监听地址 (默认: 127.0.0.1) PORT=3000 # 服务器监听端口 (默认: 3000) MYSQL_HOST=localhost # MySQL 服务器地址 MYSQL_PORT=3306 # MySQL 服务器端口 MYSQL_USER=root # MySQL 用户名 MYSQL_PASSWORD=your_password # MySQL 密码 MYSQL_DATABASE=your_database # MySQL 数据库名请务必将 'MYSQL_PASSWORD' 和 'MYSQL_DATABASE' 替换为你的实际 MySQL 数据库凭据和数据库名称。
服务器配置
对于 MCP 客户端,你需要配置连接到此 MySQL 查询服务器的信息。以下是一个 JSON 格式的配置示例,你可以将其添加到你的 MCP 客户端配置中。请注意,客户端无需配置启动命令和参数,它们仅用于服务器部署和运行,此处仅为解释用途。 客户端只需要知道如何通过 MCP 协议与服务器交互,通常通过服务器名称和服务发现机制。
{ "serverName": "mysql-query-server", "transport": "sse", "endpoint": "/sse" }
- 'serverName': 服务器名称,客户端可以使用此名称来标识和连接到服务器,例如 "mysql-query-server"。
- 'transport': 传输协议,这里配置为 "sse" (Server-Sent Events),表明客户端需要使用 SSE 协议与服务器通信。
- 'endpoint': SSE 协议的端点路径,配置为 "/sse",客户端将连接到服务器的 '/sse' 路径以建立 SSE 连接。
服务器启动命令 (仅供部署参考,MCP客户端无需配置):
python src/server.py
这个命令用于在部署服务器时启动 MySQL 查询服务器。MCP 客户端本身不需要配置此命令,客户端只需要根据上面的 JSON 配置信息,通过 MCP 协议与运行中的服务器建立连接并调用服务。
基本使用方法
-
启动服务器: 在服务器端,运行 'python src/server.py' 启动 MySQL 查询服务器。服务器默认监听 'http://127.0.0.1:3000/sse'。
-
配置 MCP 客户端: 在你的 MCP 客户端应用中,配置服务器连接信息,使用上面提供的 JSON 配置示例。确保客户端能够通过 SSE 协议连接到 'http://[服务器IP]:[端口]/sse'。
-
调用 'mysql_query' 工具: 在 MCP 客户端中,你可以通过 MCP 协议发送请求来调用 'mysql_query' 工具,执行 SQL 查询。你需要构造符合 MCP 协议的 JSON-RPC 请求,指定要调用的工具为 'mysql_query',并在参数中提供 SQL 查询语句 ('query') 和可选的查询参数 ('params')。
例如,一个典型的 MCP 请求可能包含以下信息(具体格式取决于你的 MCP 客户端库):
{ "jsonrpc": "2.0", "method": "call_tool", "params": { "tool_name": "mysql_query", "tool_args": { "query": "SELECT * FROM your_table WHERE condition = %s", "params": ["your_value"] } }, "id": 1 }服务器将执行 SQL 查询,并将查询结果以 JSON 格式通过 SSE 连接返回给客户端。
注意: 你需要根据你使用的 MCP 客户端库的具体文档来构造和发送 MCP 请求。本使用说明旨在提供服务器端的基本配置和使用概念。
信息
分类
数据库与文件