MySQL MCP Server 项目介绍

# MySQL MCP Server 项目介绍

## 项目特点

1. **完整的 MySQL 操作**:执行任意 SQL 查询(SELECT、INSERT、UPDATE、DELETE 等)
2. **丰富的数据库管理功能**:列出数据库中的所有表、获取表结构和元数据信息
3. **数据库信息查询**:显示数据库和索引信息、查看表状态(大小、行数、引擎等)
4. **数据备份**:创建表的备份副本
5. **多种传输方式**:支持 stdio、HTTP、SSE 多种传输方式
6. **安全配置**:安全的环境变量配置
7. **高性能实现**:使用 Go 语言开发,性能优异
8. **完整的中文支持**:支持中文错误处理和文档

## 核心功能

– **执行 SQL 查询**:执行任意 SQL 查询语句
– **列出表**:列出数据库中的所有表
– **获取表结构**:获取表的结构和元数据信息
– **显示数据库**:显示所有可用的数据库
– **切换数据库**:在运行时动态切换数据库
– **显示索引**:显示指定表的所有索引
– **查看表状态**:获取表的状态信息(大小、行数、引擎等)
– **备份表**:创建表的备份副本

## 技术架构

– **服务层**:基于 MCP 框架构建,提供标准化的操作接口
– **客户端层**:实现了 MySQL 客户端,处理与 MySQL 的通信
– **工具层**:注册了多个 MCP 工具,提供各种操作功能
– **配置层**:支持环境变量和配置文件的配置管理

## 部署方式

### 从源码构建
1. **克隆仓库**:`git clone `
2. **进入目录**:`cd mysql-mcp-server`
3. **安装依赖**:`go mod download`
4. **编译程序**:`go build -o mysql-mcp-server`

### 运行服务

#### Stdio 模式(默认)
“`bash
export MYSQL_USER=your_username
export MYSQL_DATABASE=your_database
export MYSQL_PASSWORD=your_password

./mysql-mcp-server
“`

#### HTTP 模式
“`bash
export SERVER_MODE=http
export SERVER_HOST=localhost
export SERVER_PORT=8080
export MYSQL_USER=your_username
export MYSQL_DATABASE=your_database
export MYSQL_PASSWORD=your_password

./mysql-mcp-server
“`

#### SSE 模式
“`bash
export SERVER_MODE=sse
export SERVER_HOST=localhost
export SERVER_PORT=8080
export MYSQL_USER=your_username
export MYSQL_DATABASE=your_database
export MYSQL_PASSWORD=your_password

./mysql-mcp-server
“`

## 配置说明

### 数据库配置

| 环境变量 | 描述 | 默认值 | 必需 |
|———|——|——–|——|
| `MYSQL_HOST` | MySQL 服务器主机名 | `localhost` | 否 |
| `MYSQL_PORT` | MySQL 服务器端口 | `3306` | 否 |
| `MYSQL_USER` | MySQL 用户名 | – | **是** |
| `MYSQL_PASSWORD` | MySQL 密码 | – | 否 |
| `MYSQL_DATABASE` | 要连接的数据库名 | – | **是** |

### 服务器配置

| 环境变量 | 描述 | 默认值 | 可选值 |
|———|——|——–|——–|
| `SERVER_MODE` | 服务器运行模式 | `stdio` | `stdio`, `http`, `sse` |
| `SERVER_HOST` | HTTP服务器主机 | `localhost` | 任何有效的主机地址 |
| `SERVER_PORT` | HTTP服务器端口 | `8080` | 任何有效的端口号 |

## 支持的工具

– `execute_query` – 执行任意 SQL 查询
– `list_tables` – 列出数据库中的所有表
– `describe_table` – 获取表结构信息
– `show_databases` – 显示所有可用的数据库
– `use_database` – 切换到指定的数据库
– `show_indexes` – 显示指定表的所有索引
– `table_status` – 获取表的状态信息
– `backup_table` – 创建表的备份副本

## 与客户端集成

### 与 Claude Desktop 集成(Stdio 模式)
在 Claude Desktop 配置文件中添加 MySQL MCP 服务器配置。

### 与 Cursor 集成
支持通过 stdio 模式或 HTTP 模式与 Cursor 集成,提供了自动配置脚本。

## Docker 运行

提供了完整的 Docker Compose 配置,包含 MySQL 数据库和 MCP 服务器:

“`bash
# 启动完整的服务栈
docker-compose -f docker-compose-network.yml up -d

# 查看服务状态
docker-compose -f docker-compose-network.yml ps

# 查看日志
docker-compose -f docker-compose-network.yml logs -f
“`

## 安全注意事项

1. **数据库权限**:建议为 MCP 服务器创建专用的数据库用户,只授予必要的权限
2. **网络安全**:在生产环境中使用 HTTP/SSE 模式时,建议使用 HTTPS/WSS 加密传输
3. **环境变量**:不要在代码中硬编码敏感信息
4. **网络监听安全**:不要将服务直接暴露到公网,使用 VPN 或私有网络

## 总结

MySQL MCP Server 是一个功能完整、架构清晰的 MySQL 管理工具,通过 MCP 协议提供了便捷的 MySQL 资源管理能力,适合作为 MySQL 数据库的管理接口或与其他系统集成的桥梁。