
go-mcp-mysql

2025.04.07
13
Go数据库管理自动化操作安全访问数据库
go-mcp-mysql 是一个零负担、即开即用的 Model Context Protocol (MCP) 服务器,用于与 MySQL 数据库交互和自动化操作。它不需要 Node.js 或 Python 环境,提供了对 MySQL 数据库和表进行 CRUD 操作的工具,并支持只读模式以防止意外的写入操作。此外,还可以通过添加 `--with-explain-check` 标志使 MCP 服务器在执行查询前使用 `EXPLAIN` 语句检查查询计划。请注意,该项目仍在开发中,可能尚未准备好用于生产环境。
View on GitHub
Overview
基本能力
产品定位
go-mcp-mysql 是一个用于与 MySQL 数据库交互和自动化操作的 MCP 服务器,旨在简化数据库操作流程,提供安全可靠的数据库访问能力。
核心功能
- CRUD 操作:支持对 MySQL 数据库和表进行创建、读取、更新和删除操作。
- 只读模式:通过
--read-only
标志启用,仅允许执行以list
、read_
和desc_
开头的工具。 - 查询计划检查:通过
--with-explain-check
标志启用,在执行查询前使用EXPLAIN
语句检查查询计划。 - 多种连接方式:支持通过命令行参数或 DSN(数据源名称)连接 MySQL 数据库。
适用场景
- 数据库管理:快速执行数据库和表的 CRUD 操作。
- 自动化脚本:集成到自动化流程中,简化数据库操作。
- 安全访问:通过只读模式限制写入操作,确保数据安全。
工具列表
- Schema Tools
list_database
:列出 MySQL 服务器中的所有数据库。list_table
:列出 MySQL 服务器中的所有表。create_table
:在 MySQL 服务器中创建新表。alter_table
:修改 MySQL 服务器中的现有表。-
desc_table
:描述表的结构。 -
Data Tools
read_query
:执行只读 SQL 查询。write_query
:执行写入 SQL 查询。update_query
:执行更新 SQL 查询。delete_query
:执行删除 SQL 查询。
常见问题解答
- 如何启用只读模式?
- 添加
--read-only
标志并刷新/重启 MCP 服务器。 - 如何禁用查询计划检查?
- 添加
--with-explain-check
标志以禁用此行为。 - 如何连接数据库?
- 可以通过命令行参数或 DSN 连接 MySQL 数据库。
使用教程
使用依赖
- 下载二进制文件:从 GitHub Releases 获取最新版本,并将其放入
$PATH
或易于访问的位置。 - 从源码构建(可选):如果已安装 Go,可以通过以下命令从源码构建:
sh go install -v github.com/Zhwt/go-mcp-mysql@latest
安装教程
- 通过命令行参数连接:
json { "mcpServers": { "mysql": { "command": "go-mcp-mysql", "args": [ "--host", "localhost", "--user", "root", "--pass", "password", "--port", "3306", "--db", "mydb" ] } } }
- 通过 DSN 连接:
json { "mcpServers": { "mysql": { "command": "go-mcp-mysql", "args": [ "--dsn", "username:password@tcp(localhost:3306)/mydb?parseTime=true&loc=Local" ] } } }
调试方式
- 检查连接:确保 MySQL 服务器正在运行,并且提供的连接参数正确。
- 验证工具:使用
list_database
或list_table
工具验证连接是否成功。 - 查看日志:如果遇到问题,检查 MCP 服务器的输出日志以获取更多信息。