
MySQL MCP Server

2025.03.25
5
JavaScript数据库管理MySQL中间件数据库
MySQL MCP Server 是一个用于与MySQL数据库交互的MCP服务器。它支持执行只读查询(query)和最终会回滚的写入查询(test_execute)。该服务器通过Docker容器运行,接受通过标准输入的JSON命令,并通过标准输出返回JSON响应。它使用环境变量管理敏感信息,并通过`host.docker.internal`连接到主机MySQL服务。
View on GitHub
Overview
基本能力
产品定位
MySQL MCP Server 是一个专门用于与MySQL数据库交互的中间件服务,旨在简化数据库操作和管理。
核心功能
- 执行只读查询:支持通过JSON命令执行SELECT等只读查询。
- 测试查询执行:支持测试UPDATE等写入查询,但最终会回滚。
- 列出数据库表:可以列出数据库中的所有表。
- 描述表结构:可以获取指定表的详细结构信息。
适用场景
- 开发环境中快速测试SQL查询。
- 自动化测试中验证数据库操作。
- 需要快速查看数据库结构和内容的场景。
- 作为中间件集成到其他需要MySQL数据库交互的服务中。
工具列表
- query:执行只读查询。
- test_execute:测试写入查询(会回滚)。
- list_tables:列出所有表。
- describe_table:描述表结构。
常见问题解答
- 如何连接到主机MySQL服务?
使用
host.docker.internal
作为主机名,并确保正确配置端口和认证信息。 - 如何防止SQL注入? 需要由实现者负责SQL注入的预防。
- 生产环境使用需要注意什么? 需要适当的网络配置和防火墙设置。
使用教程
使用依赖
- 确保已安装Docker。
- 创建
~/.mcp/.env
文件并添加以下环境变量:MYSQL_HOST=host.docker.internal MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=your_password
安装教程
- 配置
mcp.json
文件:json { "mcpServers": { "mysql": { "command": "docker", "args": [ "run", "-i", "--rm", "--add-host=host.docker.internal:host-gateway", "--env-file", "/Users/username/.mcp/.env", "ghcr.io/xiangma9712/mcp/mysql" ] } } }
- 启动服务器:
sh docker run -i --rm --add-host=host.docker.internal:host-gateway --env-file ~/.mcp/.env ghcr.io/xiangma9712/mcp/mysql
调试方式
- 使用
query
命令测试只读查询:json { "type": "query", "payload": { "sql": "SELECT * FROM your_table" } }
- 使用
test_execute
命令测试写入查询:json { "type": "test_execute", "payload": { "sql": "UPDATE your_table SET name = 'updated' WHERE id = 1" } }
- 使用
list_tables
命令列出所有表:json { "type": "list_tables" }
- 使用
describe_table
命令查看表结构:json { "type": "describe_table", "payload": { "table": "your_table" } }