A MySQL database server based on MCP (Model Context Protocol) that provides database operation capabilities for Cursor IDE.
- 🔍 Data Querying: Execute SELECT queries with formatted results
- ✏️ Data Modification: Support INSERT, UPDATE, DELETE operations
- 🏗️ Schema Management: Create tables, add columns, view table structures
- 📊 Metadata Operations: List databases and tables, describe table structures
- 🔒 Security: Database connection configured through environment variables
- 🚀 Easy Integration: Seamless integration with Cursor IDE via MCP protocol
- Python 3.7+
- MySQL 5.7+ or 8.0+
- Cursor IDE with MCP support
pip install -r requirements.txtCopy the example configuration file:
cp mcp-config.example.json mcp-config.jsonEdit mcp-config.json with your database connection details:
{
"mcpServers": {
"mysql-server": {
"command": "python",
"args": ["mysql_mcp_server.py"],
"env": {
"MYSQL_HOST": "your-mysql-host",
"MYSQL_PORT": "3306",
"MYSQL_DATABASE": "your-database-name",
"MYSQL_USER": "your-username",
"MYSQL_PASSWORD": "your-password",
"MYSQL_CHARSET": "utf8mb4"
}
}
}
}Add the MCP server configuration to Cursor settings:
- Open Cursor Settings
- Search for "MCP"
- Add your
mcp-config.jsonconfiguration to MCP server settings
| Tool | Description | Example |
|---|---|---|
query_database |
Execute SELECT queries | SELECT * FROM users WHERE age > 18 |
execute_sql |
Execute INSERT/UPDATE/DELETE | INSERT INTO users (name, email) VALUES (...) |
create_table |
Create new tables | Create users table with columns |
add_column |
Add columns to existing tables | Add phone column to users table |
show_tables |
List all tables in database | - |
describe_table |
Show table structure | View columns, types, constraints |
show_databases |
List all available databases | - |
| Variable | Required | Default | Description |
|---|---|---|---|
MYSQL_HOST |
✅ | - | MySQL server host |
MYSQL_PORT |
❌ | 3306 | MySQL server port |
MYSQL_DATABASE |
✅ | - | Database name |
MYSQL_USER |
✅ | - | Database username |
MYSQL_PASSWORD |
✅ | - | Database password |
MYSQL_CHARSET |
❌ | utf8mb4 | Character set |
MYSQL_CONNECTION_TIMEOUT |
❌ | 10 | Connection timeout (seconds) |
- 🔐 Database credentials passed via environment variables
- 🛡️ Only safe SQL operation types allowed
⚠️ Query result limits to prevent large data output- 🔍 Basic security checks for all SQL operations
Run the server directly for testing:
# Set environment variables
export MYSQL_HOST="your-host"
export MYSQL_USER="your-user"
export MYSQL_PASSWORD="your-password"
export MYSQL_DATABASE="your-database"
# Run server
python mysql_mcp_server.pyMIT License
Issues and Pull Requests are welcome!
一个基于 MCP (Model Context Protocol) 的 MySQL 数据库服务器,为 Cursor IDE 提供数据库操作功能。
- 🔍 数据查询: 执行 SELECT 查询并格式化返回结果
- ✏️ 数据修改: 支持 INSERT, UPDATE, DELETE 操作
- 🏗️ 结构管理: 创建表、添加列、查看表结构
- 📊 元数据查看: 列出数据库、表,查看表结构
- 🔒 安全控制: 通过环境变量配置数据库连接信息
- 🚀 轻松集成: 通过 MCP 协议无缝集成到 Cursor IDE
- Python 3.7+
- MySQL 5.7+ 或 8.0+
- 支持 MCP 的 Cursor IDE
pip install -r requirements.txt复制配置示例文件:
cp mcp-config.example.json mcp-config.json编辑 mcp-config.json 文件,填入您的数据库连接信息:
{
"mcpServers": {
"mysql-server": {
"command": "python", // 可以用项目的绝对路径 如 : /Users/baozi/python-mysql-mcp-server/venv/bin/python
"args": ["mysql_mcp_server.py"], // 这里也是,如 : /Users/baozi/python-mysql-mcp-server/mysql_mcp_server.py
"env": {
"MYSQL_HOST": "your-mysql-host",
"MYSQL_PORT": "3306",
"MYSQL_DATABASE": "your-database-name",
"MYSQL_USER": "your-username",
"MYSQL_PASSWORD": "your-password",
"MYSQL_CHARSET": "utf8mb4"
}
}
}
}将 MCP 服务器配置添加到 Cursor 的设置中:
- 打开 Cursor 设置 (Settings)
- 搜索 "MCP"
- 在 MCP 服务器配置中添加您的
mcp-config.json配置
| 工具 | 描述 | 示例 |
|---|---|---|
query_database |
执行 SELECT 查询 | SELECT * FROM users WHERE age > 18 |
execute_sql |
执行 INSERT/UPDATE/DELETE | INSERT INTO users (name, email) VALUES (...) |
create_table |
创建新表 | 创建带有列定义的用户表 |
add_column |
为现有表添加列 | 为用户表添加电话列 |
show_tables |
列出数据库中的所有表 | - |
describe_table |
查看表结构 | 查看列、类型、约束 |
show_databases |
列出所有可用数据库 | - |
| 变量名 | 必需 | 默认值 | 说明 |
|---|---|---|---|
MYSQL_HOST |
✅ | - | MySQL 服务器地址 |
MYSQL_PORT |
❌ | 3306 | MySQL 服务器端口 |
MYSQL_DATABASE |
✅ | - | 数据库名称 |
MYSQL_USER |
✅ | - | 数据库用户名 |
MYSQL_PASSWORD |
✅ | - | 数据库密码 |
MYSQL_CHARSET |
❌ | utf8mb4 | 字符集 |
MYSQL_CONNECTION_TIMEOUT |
❌ | 10 | 连接超时时间(秒) |
- 🔐 数据库凭据通过环境变量传递,避免硬编码
- 🛡️ 只允许安全的 SQL 操作类型
⚠️ 查询结果有行数限制,防止大量数据输出- 🔍 所有 SQL 操作都会进行基本的安全检查
直接运行服务器进行测试:
# 设置环境变量
export MYSQL_HOST="your-host"
export MYSQL_USER="your-user"
export MYSQL_PASSWORD="your-password"
export MYSQL_DATABASE="your-database"
# 运行服务器
python mysql_mcp_server.pyMIT License
欢迎提交 Issue 和 Pull Request!