README
🚀 MySQL MCP 服务器
MySQL MCP 服务器是一个基于 go-mcp 的数据库连接服务器,它支持通过标准输入输出(stdio)与客户端进行通信,可执行各类 SQL 查询和数据操作,为数据库交互提供了便捷的解决方案。
✨ 主要特性
- 协议通信:通过 MCP 协议与客户端进行高效通信。
- 数据库连接:支持连接到 MySQL 数据库。
- 查询操作:支持常见的查询操作,如
SELECT、SHOW、DESCRIBE。 - 数据操作:支持
INSERT、UPDATE、DELETE等数据操作。 - 权限控制:可灵活配置插入、更新、删除操作的权限。
- 环境配置:支持通过环境变量进行灵活配置。
- 日志记录:在开发模式下提供详细的日志记录。
📦 安装指南
方法 1:直接安装(推荐)
使用 Go 的 install 命令从 GitHub 直接安装:
go install github.com/blanplan-ai/ai2mysql-mcp-server/cmd/ai2mysql-mcp-server@latest
方法 2:手动构建
# 克隆仓库
git clone https://github.com/blanplan-ai/ai2mysql-mcp-server.git
cd ai2mysql-mcp-server
# 构建服务器
go build -o ai2mysql-mcp-server ./cmd/ai2mysql-mcp-server
💻 使用示例
启动服务器
# 基本启动
ai2mysql-mcp-server
# 开发模式
IS_DEV=true ai2mysql-mcp-server
与 Cursor 配合使用
在 Cursor 中配置工具时,需要指定可执行文件的路径,并设置相应的环境变量。例如:
{
"name": "MySQL MCP",
"command": "/path/to/ai2mysql-mcp-server",
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "password",
"DEFAULT_DATABASE": "testdb",
"ALLOW_INSERT": "true",
"ALLOW_UPDATE": "true",
"ALLOW_DELETE": "true",
"IS_DEV": "false"
}
}
执行 SQL 操作
- 查询操作:
echo "mysql_query --sql='SELECT * FROM users'" | ai2mysql-mcp-server
- 数据操作:
echo "mysql_execute --sql='INSERT INTO users(name,email) VALUES('John','john@example.com')'" | ai2mysql-mcp-server
📚 详细文档
配置说明
服务器通过环境变量进行配置,以下是各环境变量的说明:
| 属性 | 详情 |
|------|------|
| MYSQL_HOST | MySQL 服务的主机地址,默认为 "localhost"。 |
| MYSQL_PORT | MySQL 服务的端口号,默认为 3306。 |
| MYSQL_USER | 连接 MySQL 的用户名。 |
| MYSQL_PASSWORD | 连接 MySQL 的密码。 |
| DEFAULT_DATABASE | 默认使用的数据库名称。 |
| ALLOW_INSERT | 允许插入操作,值为 "true" 或 "false"。 |
| ALLOW_UPDATE | 允许更新操作,值为 "true" 或 "false"。 |
| ALLOW_DELETE | 允许删除操作,值为 "true" 或 "false"。 |
| IS_DEV | 启用开发模式,值为 "true" 或 "false"。启用后会输出详细日志。 |
项目结构
ai2mysql-mcp-server/
└── cmd/
└── ai2mysql-mcp-server/ # 服务器入口
└── main.go # 主程序
依赖项
- go-sql-driver/mysql:MySQL 驱动
- ThinkInAIXYZ/go-mcp:MCP 协议库
🔧 技术细节
调试和故障排除
开发模式
设置环境变量 IS_DEV=true 启用调试模式:
IS_DEV=true ai2mysql-mcp-server
在调试模式下,服务器会输出详细日志,包括接收的所有请求、发送的所有响应、详细的 SQL 查询和执行信息、错误条件以及性能相关信息(如查询执行时间)。
常见问题
- 工具未显示:检查命令路径是否正确,确保可执行文件存在且有执行权限。
- 连接失败:检查数据库连接信息是否正确,使用调试模式查看详细错误消息。
- 权限问题:默认情况下只允许查询操作,检查是否需要启用插入、更新或删除权限。
📄 许可证
本项目采用 MIT License 进行许可。
扫码联系在线客服