go-mcp-mysql

go-mcp-mysql

site icon
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 服务器,旨在简化数据库操作流程,提供安全可靠的数据库访问能力。

核心功能

  1. CRUD 操作:支持对 MySQL 数据库和表进行创建、读取、更新和删除操作。
  2. 只读模式:通过 --read-only 标志启用,仅允许执行以 listread_desc_ 开头的工具。
  3. 查询计划检查:通过 --with-explain-check 标志启用,在执行查询前使用 EXPLAIN 语句检查查询计划。
  4. 多种连接方式:支持通过命令行参数或 DSN(数据源名称)连接 MySQL 数据库。

适用场景

  1. 数据库管理:快速执行数据库和表的 CRUD 操作。
  2. 自动化脚本:集成到自动化流程中,简化数据库操作。
  3. 安全访问:通过只读模式限制写入操作,确保数据安全。

工具列表

  1. Schema Tools
  2. list_database:列出 MySQL 服务器中的所有数据库。
  3. list_table:列出 MySQL 服务器中的所有表。
  4. create_table:在 MySQL 服务器中创建新表。
  5. alter_table:修改 MySQL 服务器中的现有表。
  6. desc_table:描述表的结构。

  7. Data Tools

  8. read_query:执行只读 SQL 查询。
  9. write_query:执行写入 SQL 查询。
  10. update_query:执行更新 SQL 查询。
  11. delete_query:执行删除 SQL 查询。

常见问题解答

  1. 如何启用只读模式?
  2. 添加 --read-only 标志并刷新/重启 MCP 服务器。
  3. 如何禁用查询计划检查?
  4. 添加 --with-explain-check 标志以禁用此行为。
  5. 如何连接数据库?
  6. 可以通过命令行参数或 DSN 连接 MySQL 数据库。

使用教程

使用依赖

  1. 下载二进制文件:从 GitHub Releases 获取最新版本,并将其放入 $PATH 或易于访问的位置。
  2. 从源码构建(可选):如果已安装 Go,可以通过以下命令从源码构建: sh go install -v github.com/Zhwt/go-mcp-mysql@latest

安装教程

  1. 通过命令行参数连接json { "mcpServers": { "mysql": { "command": "go-mcp-mysql", "args": [ "--host", "localhost", "--user", "root", "--pass", "password", "--port", "3306", "--db", "mydb" ] } } }
  2. 通过 DSN 连接json { "mcpServers": { "mysql": { "command": "go-mcp-mysql", "args": [ "--dsn", "username:password@tcp(localhost:3306)/mydb?parseTime=true&loc=Local" ] } } }

调试方式

  1. 检查连接:确保 MySQL 服务器正在运行,并且提供的连接参数正确。
  2. 验证工具:使用 list_databaselist_table 工具验证连接是否成功。
  3. 查看日志:如果遇到问题,检查 MCP 服务器的输出日志以获取更多信息。

许可证

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