MySQL MCP Server

MySQL MCP Server

site icon
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数据库交互的中间件服务,旨在简化数据库操作和管理。

核心功能

  1. 执行只读查询:支持通过JSON命令执行SELECT等只读查询。
  2. 测试查询执行:支持测试UPDATE等写入查询,但最终会回滚。
  3. 列出数据库表:可以列出数据库中的所有表。
  4. 描述表结构:可以获取指定表的详细结构信息。

适用场景

  1. 开发环境中快速测试SQL查询。
  2. 自动化测试中验证数据库操作。
  3. 需要快速查看数据库结构和内容的场景。
  4. 作为中间件集成到其他需要MySQL数据库交互的服务中。

工具列表

  1. query:执行只读查询。
  2. test_execute:测试写入查询(会回滚)。
  3. list_tables:列出所有表。
  4. describe_table:描述表结构。

常见问题解答

  1. 如何连接到主机MySQL服务? 使用host.docker.internal作为主机名,并确保正确配置端口和认证信息。
  2. 如何防止SQL注入? 需要由实现者负责SQL注入的预防。
  3. 生产环境使用需要注意什么? 需要适当的网络配置和防火墙设置。

使用教程

使用依赖

  1. 确保已安装Docker。
  2. 创建~/.mcp/.env文件并添加以下环境变量: MYSQL_HOST=host.docker.internal MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASSWORD=your_password

安装教程

  1. 配置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" ] } } }
  2. 启动服务器: sh docker run -i --rm --add-host=host.docker.internal:host-gateway --env-file ~/.mcp/.env ghcr.io/xiangma9712/mcp/mysql

调试方式

  1. 使用query命令测试只读查询: json { "type": "query", "payload": { "sql": "SELECT * FROM your_table" } }
  2. 使用test_execute命令测试写入查询: json { "type": "test_execute", "payload": { "sql": "UPDATE your_table SET name = 'updated' WHERE id = 1" } }
  3. 使用list_tables命令列出所有表: json { "type": "list_tables" }
  4. 使用describe_table命令查看表结构: json { "type": "describe_table", "payload": { "table": "your_table" } }

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。