go-mcp-mysql

go-mcp-mysql

site icon
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 操作和只读模式。

核心功能

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

适用场景

  1. 数据库管理:自动化执行 MySQL 数据库的 CRUD 操作。
  2. 数据查询:执行只读查询以获取数据库信息。
  3. 开发测试:在开发环境中快速测试数据库操作。

工具列表

Schema Tools

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

Data Tools

  1. read_query:执行只读 SQL 查询。
  2. write_query:执行写入 SQL 查询。
  3. update_query:执行更新 SQL 查询。
  4. delete_query:执行删除 SQL 查询。

常见问题解答

  1. 如何启用只读模式?:添加 --read-only 标志并重启 MCP 服务器。
  2. 如何禁用查询计划检查?:添加 --with-explain-check 标志。
  3. 如何通过 DSN 连接数据库?:参考 MySQL DSN 文档。

使用教程

使用依赖

  1. 确保已安装 Go(如需从源码构建)。

安装教程

  1. release 下载最新版本并放入 $PATH
  2. 或使用 Go 从源码构建:
go install -v github.com/stridentdisc/go-mcp-mysql@latest

调试方式

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

许可证

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