关于 go-mcp-mysql
go-mcp-mysql 是一个用 Go 编写的 MCP 服务,用于操作 MySQL 数据库,无需 Node.js 或 Python 环境。它提供 CRUD 工具,并可选只读模式。项目目前仍处于开发阶段,文档注明尚不适用于生产环境。
主要功能
- 01提供数据库、表的查询与结构描述工具
- 02提供读取、写入、更新、删除查询工具
- 03支持只读模式,限制可用工具
- 04可选在执行前使用 EXPLAIN 检查查询计划
适用场景
- 01让 AI 助手浏览 MySQL 数据库结构
- 02在只读模式下让 LLM 安全查询业务数据
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端提供 MySQL 的架构查询与数据操作工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
go-mcp-mysql
概述
零负担、开箱即用的模型上下文协议(MCP)服务,用于与 MySQL 交互和自动化。无需 Node.js 或 Python 环境。此服务提供用于对 MySQL 数据库和表执行 CRUD 操作的工具,以及可防止意外写入操作的只读模式。你还可以添加 --with-explain-check 标志,让 MCP 服务在执行查询前使用 EXPLAIN 语句检查查询计划。
请注意,此项目仍在开发中,可能尚不适合用于生产环境。
安装
-
获取最新的发行版,并将其放入
$PATH或其他便于访问的位置。 -
或者,如果已安装 Go,也可以从源代码构建:
go install -v github.com/Zhwt/go-mcp-mysql@latest
用法
方法 A:使用命令行参数
{
"mcpServers": {
"mysql": {
"command": "go-mcp-mysql",
"args": [
"--host", "localhost",
"--user", "root",
"--pass", "password",
"--port", "3306",
"--db", "mydb"
]
}
}
}
方法 B:使用带自定义选项的 DSN
{
"mcpServers": {
"mysql": {
"command": "go-mcp-mysql",
"args": [
"--dsn", "username:password@tcp(localhost:3306)/mydb?parseTime=true&loc=Local"
]
}
}
}
更多详情请参阅 MySQL DSN。
注意:如果将二进制文件放在 $PATH 之外,需要将 go-mcp-mysql 替换为二进制文件的完整路径。例如:如果将二进制文件放在 Downloads 文件夹中,可以使用以下路径:
{
"mcpServers": {
"mysql": {
"command": "C:\\Users\\<username>\\Downloads\\go-mcp-mysql.exe",
"args": [
...
]
}
}
}
可选标志
- 添加
--read-only标志以启用只读模式。在此模式下,只有以list、read_和desc_开头的工具可用。添加此标志后,请务必刷新或重启 MCP 服务。 - 默认情况下,CRUD 查询会先使用
EXPLAIN ?语句执行,以检查生成的查询计划是否符合预期模式。添加--with-explain-check标志可禁用此行为。
工具
架构工具
-
list_database- 列出 MySQL 服务中的所有数据库。
- 参数:无
- 返回:匹配的数据库名称列表。
-
list_table- 列出 MySQL 服务中的所有表。
- 参数:
name:如果提供,则列出名称与指定值匹配的表,等同于 SQLSHOW TABLES LIKE '%name%'。否则,列出所有表。
- 返回:匹配的表名称列表。
-
create_table- 在 MySQL 服务中创建新表。
- 参数:
query:用于创建表的 SQL 查询。
- 返回:受影响的 x 行。
-
alter_table- 修改 MySQL 服务中的现有表。系统会告知大模型不要删除现有表或列。
- 参数:
query:用于修改表的 SQL 查询。
- 返回:受影响的 x 行。
-
desc_table- 描述表的结构。
- 参数:
name:要描述的表的名称。
- 返回:表的结构。
数据工具
-
read_query- 执行只读 SQL 查询。
- 参数:
query:要执行的 SQL 查询。
- 返回:查询结果。
-
write_query- 执行写入 SQL 查询。
- 参数:
query:要执行的 SQL 查询。
- 返回:受影响的 x 行,最后插入 ID:<last_insert_id>。
-
update_query- 执行更新 SQL 查询。
- 参数:
query:要执行的 SQL 查询。
- 返回:受影响的 x 行。
-
delete_query- 执行删除 SQL 查询。
- 参数:
query:要执行的 SQL 查询。
- 返回:受影响的 x 行。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。