返回 MCP 目录
public公开dns本地运行

go-mcp-mysql

一个零负担、开箱即用的MySQL模型上下文协议(MCP)服务器,支持CRUD操作和只读模式,无需Node.js或Python环境。

article

README

🚀 零负担、即用型模型上下文协议(MCP)MySQL服务器

本项目是一个零负担、即用型的模型上下文协议(MCP)服务器,专门用于与 MySQL 进行交互和自动化操作。无需 Node.js 或 Python 环境,该服务器提供了一系列工具,可对 MySQL 数据库和表执行 CRUD 操作,同时还具备只读模式,能有效防止意外的写入操作。此外,您还可以通过添加 --with-explain-check 标志,在执行查询前使用 EXPLAIN 语句来检查查询计划。不过需要注意的是,这是一个正在开发中的项目,可能尚未适合投入生产环境使用。

🚀 快速开始

本部分将为您介绍如何安装和使用这个 MCP MySQL 服务器。

📦 安装指南

您可以通过以下两种方式安装本项目:

  1. 下载最新发布版本,并将其放置在您的 $PATH 中,或者放在一个您方便访问的位置。
  2. 如果您已经安装了 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。例如,如果您将二进制文件放在下载文件夹中,则可以使用以下路径:

{
  "mcpServers": {
    "mysql": {
      "command": "C:\\Users\\<username>\\Downloads\\go-mcp-mysql.exe",
      "args": [
        ...
      ]
    }
  }
}

可选标志

  • 只读模式:添加 --read-only 标志以启用只读模式。在此模式下,仅允许以 listread_desc_ 开头的工具使用。请确保在添加此标志后刷新/重新启动。
  • 检查查询计划:启用检查查询计划功能,方法是在执行查询之前使用 EXPLAIN 语句:
# 检查单条查询
go-mcp-mysql --dsn "root:password@tcp(localhost:3306)/test" --with-explain -sql "SELECT * FROM user"

# 启用检查所有查询
export GMCP_CHECK_QUERY=true

🛠️ 工具介绍

Schema Tools

mysql-backup

  • 功能:备份指定数据库的所有表结构。
  • 参数
    • --src-dsn:源数据库连接字符串(必填)。
    • --dest-filename:输出文件名,格式为 {db}_{table}.sql(可选,默认为 stdout)。
  • 示例
mysql-backup --src-dsn "root:password@tcp(localhost:3306)/test"

Data Tools

mysql-import

  • 功能:将 SQL 文件导入到指定数据库。
  • 参数
    • --dsn:数据库连接字符串(必填)。
    • --filename:输入文件路径(必填)。
  • 示例
mysql-import --dsn "root:password@tcp(localhost:3306)/test" --filename user.sql

mysql-export

  • 功能:将指定数据库的所有表导出为 SQL 文件。
  • 参数
    • --src-dsn:源数据库连接字符串(必填)。
    • --dest-filename:输出文件名,格式为 {db}_{table}.sql(可选,默认为 stdout)。
  • 示例
mysql-export --src-dsn "root:password@tcp(localhost:3306)/test"

📄 许可证

该项目采用 MIT 许可证。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端