
go-mcp-mysql

2025.04.21
17
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 操作和只读模式。
核心功能
- CRUD 操作:支持对 MySQL 数据库和表进行创建、读取、更新和删除操作。
- 只读模式:通过
--read-only
标志启用,仅允许执行list
、read_
和desc_
开头的工具。 - 查询计划检查:通过
--with-explain-check
标志启用,在执行查询前使用EXPLAIN
语句检查查询计划。 - 多种连接方式:支持通过命令行参数或 DSN 连接 MySQL 数据库。
适用场景
- 数据库管理:自动化执行 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 DSN 文档。
使用教程
使用依赖
- 确保已安装 Go(如需从源码构建)。
安装教程
- 从 release 下载最新版本并放入
$PATH
。 - 或使用 Go 从源码构建:
go install -v github.com/stridentdisc/go-mcp-mysql@latest
调试方式
- 通过命令行参数运行:
{
"mcpServers": {
"mysql": {
"command": "go-mcp-mysql",
"args": [
"--host", "localhost",
"--user", "root",
"--pass", "password",
"--port", "3306",
"--db", "mydb"
]
}
}
}
- 或通过 DSN 运行:
{
"mcpServers": {
"mysql": {
"command": "go-mcp-mysql",
"args": [
"--dsn", "username:password@tcp(localhost:3306)/mydb?parseTime=true&loc=Local"
]
}
}
}