MySQL MCP 服务器(只读版本)
这是一个用于 Cursor 的 MCP (Model Context Protocol) 服务器,允许 AI 直接查询您的 MySQL 数据库。
🔒 安全特性
⚠️ 重要:此服务器仅支持只读操作!
- ✅ 允许:SELECT、SHOW、DESCRIBE、EXPLAIN 等查询操作
- ❌ 禁止:INSERT、UPDATE、DELETE、DROP、CREATE、ALTER 等修改操作
- 🛡️ 多层安全保护,确保数据安全
功能特性
- 🔍 执行 SQL 查询(仅只读)
- 📊 查看数据库表结构
- 📋 列出所有数据库和表
- 🔒 安全的参数化查询
- 📈 数据分析支持
- 🛡️ 自动拦截所有写操作
安装步骤
1. 创建虚拟环境并安装依赖
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
source venv/bin/activate # Mac/Linux
# 或 venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt2. 配置数据库连接
复制 .env.example 文件为 .env 并填入您的数据库信息:
cp .env.example .env编辑 .env 文件:
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=your_username
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database3. 配置 Cursor
将以下配置添加到 Cursor 的 MCP 配置文件中:
Mac/Linux: ~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Windows: %APPDATA%\Cursor\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
{
"mcpServers": {
"mysql-database": {
"command": "/Users/yaokun/anaconda3/envs/company_desc_2/bin/python",
"args": [
"/Users/yaokun/www/cursor_demo/demo_mcp_sse/server.py"
],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USER": "your_username",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database"
}
}
}
}4. 重启 Cursor
配置完成后,重启 Cursor 使配置生效。
使用方法
配置完成后,您可以在 Cursor 中直接向 AI 提问:
示例查询
"帮我查询用户表中的所有数据"
"分析一下订单表的销售趋势"
"列出数据库中所有的表"
"查看 users 表的结构"
"统计每个月的订单数量"可用工具
MCP 服务器提供以下工具:
- execute_query - 执行 SQL 查询
- list_databases - 列出所有数据库
- list_tables - 列出指定数据库的所有表
- describe_table - 查看表结构
- get_table_info - 获取表的详细信息(包括索引、外键等)
安全注意事项
- ⚠️ 不要在生产环境中使用具有完全权限的数据库用户
- ⚠️ 建议创建一个只读用户用于 MCP 服务器
- ⚠️
.env文件包含敏感信息,不要提交到版本控制系统 - ⚠️ 使用参数化查询防止 SQL 注入
创建只读数据库用户(推荐)
-- 创建只读用户
CREATE USER 'mcp_readonly'@'localhost' IDENTIFIED BY 'your_password';
-- 授予只读权限
GRANT SELECT ON your_database.* TO 'mcp_readonly'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;故障排除
连接失败
- 检查数据库连接信息是否正确
- 确认 MySQL 服务正在运行
- 检查防火墙设置
Cursor 无法识别 MCP 服务器
- 确认配置文件路径正确
- 检查 Python 路径是否正确
- 重启 Cursor
依赖安装失败
- 确保使用正确的 Python 版本(3.8+)
- 尝试升级 pip:
pip install --upgrade pip
项目结构
demo_mcp_sse/
├── server.py # MCP 服务器主文件
├── requirements.txt # Python 依赖
├── .env.example # 环境变量示例
├── .env # 环境变量(需要创建)
└── README.md # 本文件技术栈
- Python 3.8+
- mcp (Model Context Protocol)
- PyMySQL (MySQL 驱动)
- python-dotenv (环境变量管理)
贡献
欢迎提交 Issue 和 Pull Request!
