mcp_mysql_server

tianyuso/mcp_mysql_server

3.2

If you are the rightful owner of mcp_mysql_server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Go-based MySQL database query MCP server using the `github.com/mark3labs/mcp-go` library, enabling database query operations via the MCP protocol.

Tools
3
Resources
0
Prompts
0

MCP MySQL Server

一个基于 Go 语言和 github.com/mark3labs/mcp-go 库开发的 MySQL 数据库查询 MCP 服务器,支持通过 MCP 协议进行数据库查询操作。

功能特性

  • 🔐 安全的 MySQL 数据库连接
  • 📊 支持 SQL 查询(SELECT、SHOW、DESCRIBE、EXPLAIN 语句)
  • 📋 获取数据库表列表
  • 🔍 查看表结构信息
  • 🛡️ 内置 SQL 注入防护
  • 🔧 灵活的环境变量配置
  • ⚠️ 可配置的写操作权限控制

安装和使用

1. 编译程序

go mod tidy
go build -o mcp-mysql-server

2. 配置环境变量

根据你的 MySQL 配置设置以下环境变量:

export MYSQL_HOST=127.0.0.1
export MYSQL_PORT=3306
export MYSQL_USER=root
export MYSQL_PASS=root
export MYSQL_DB=mysql
export ALLOW_INSERT_OPERATION=false
export ALLOW_UPDATE_OPERATION=false
export ALLOW_DELETE_OPERATION=false

3. 配置 MCP 客户端

在 Cursor 的 ~/.cursor/mcp.json 配置文件中添加:

{
  "mcpServers": {
    "mysql-db-server": {
      "autoApprove": [],
      "disabled": false,
      "timeout": 30,
      "command": "/data/project/mcp_test/mcp_mysql_server/mcp-mysql-server",
      "env": {
        "MYSQL_HOST": "127.0.0.1",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "root",
        "MYSQL_PASS": "root",
        "MYSQL_DB": "mysql",
        "ALLOW_INSERT_OPERATION": "false",
        "ALLOW_UPDATE_OPERATION": "false",
        "ALLOW_DELETE_OPERATION": "false"
      },
      "transportType": "stdio"
    }
  }
}

支持的工具

1. mysql_query

执行 MySQL 查询语句并返回结果(支持 SELECT、SHOW、DESCRIBE、EXPLAIN 语句)

参数:

  • sql (string): 要执行的 SQL 查询语句

示例:

SELECT * FROM users WHERE id = 1

2. list_tables

获取数据库中所有表的列表

参数:

示例:

显示数据库中有哪些表

3. describe_table

获取指定表的结构信息

参数:

  • table_name (string): 要查看结构的表名

示例:

显示 users 表的结构

安全说明

  • 默认仅支持 SELECT、SHOW、DESCRIBE、EXPLAIN 查询语句
  • 可通过环境变量配置是否允许 INSERT、UPDATE、DELETE 操作
  • 内置 SQL 注入防护机制
  • 建议使用只读权限的 MySQL 用户(当禁用写操作时)

环境变量配置

环境变量默认值说明
MYSQL_HOST127.0.0.1MySQL 服务器地址
MYSQL_PORT3306MySQL 服务器端口
MYSQL_USERrootMySQL 用户名
MYSQL_PASS(空)MySQL 密码
MYSQL_DBmysqlMySQL 数据库名
ALLOW_INSERT_OPERATIONfalse是否允许 INSERT 操作
ALLOW_UPDATE_OPERATIONfalse是否允许 UPDATE 操作
ALLOW_DELETE_OPERATIONfalse是否允许 DELETE 操作

依赖项

  • Go 1.23.2+
  • github.com/go-sql-driver/mysql v1.7.1
  • github.com/mark3labs/mcp-go v0.6.0

许可证

MIT License