MySQL MCP
A secure MCP service for accessing and managing MySQL databases, featuring multi-layer security and high-performance connection pooling.
MySQL数据库 MCP 服务
这是一个专为 Cursor 设计的MySQL数据库 MCP (Model Context Protocol) 服务,提供表结构查询、文档生成和数据查询功能。
功能特性
- Cursor 专用集成: 专为 Cursor MCP 协议设计的数据库服务
- 多种安全模式: 支持只读、限制写入、完全访问三种安全级别
- 表结构查询: 获取数据库表的详细结构信息
- 文档生成: 生成 Markdown、JSON、SQL 格式的表结构文档
- 数据库概览: 生成整个数据库的概览文档
- SQL 查询执行: 根据安全模式执行不同级别的 SQL 操作
- 查询缓存: 自动缓存查询结果,提升性能
安全模式
1. 只读模式 (readonly) - 默认模式
- 仅允许 SELECT、SHOW、DESCRIBE、EXPLAIN 等查询操作
- 禁止所有写入和危险操作
- 适用于数据分析和报表查询
2. 限制写入模式 (limited_write)
- 允许 SELECT、INSERT、UPDATE 操作
- 禁止 DELETE、DROP、CREATE、ALTER 等危险操作
- 适用于需要数据录入但要保护结构的场景
3. 完全访问模式 (full_access)
- 允许所有 SQL 操作
- 谨慎使用,仅在完全信任的环境中启用
- 适用于数据库管理和维护
安装和配置
1. 本地安装依赖
cd mysql-mcp
pip install -r requirements.txt
2. 在 Cursor 中配置
在 Cursor 的设置中找到 MCP 配置,添加以下内容:
{
"mcpServers": {
"mysql-mcp": {
"command": "python",
"args": ["F:/path/to/mysql-mcp/main.py"],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_PORT": "3306",
"MYSQL_USERNAME": "your_username",
"MYSQL_PASSWORD": "your_password",
"MYSQL_DATABASE": "your_database",
"MYSQL_SECURITY_MODE": "readonly",
"MYSQL_ALLOWED_SCHEMAS": "*",
"MYSQL_ENABLE_QUERY_LOG": "false"
}
}
}
}
3. 环境变量说明
必需环境变量:
MYSQL_HOST: 数据库主机地址MYSQL_PORT: 数据库端口MYSQL_USERNAME: 数据库用户名MYSQL_PASSWORD: 数据库密码MYSQL_DATABASE: 数据库名称
可选环境变量:
MYSQL_SECURITY_MODE: 安全模式 (readonly/limited_write/full_access,默认:readonly)MYSQL_ALLOWED_SCHEMAS: 允许访问的数据库列表,支持三种配置方式:"*": 允许访问所有有权限的数据库(推荐)"auto": 自动发现有权限的数据库"db1,db2,db3": 明确指定数据库列表(逗号分隔)
MYSQL_CONNECT_TIMEOUT: 连接超时时间(秒,默认:30)MYSQL_QUERY_TIMEOUT: 查询超时时间(秒,默认:60)MYSQL_MAX_RETRIES: 最大重试次数(默认:3)MYSQL_ENABLE_QUERY_LOG: 是否启用查询日志(true/false,默认:false)MYSQL_MAX_RESULT_ROWS: 最大返回行数(默认:1000)
使用示例
获取安全信息
在 Cursor 中输入:
@mysql-mcp 获取当前安全配置信息
查看可访问的数据库
@mysql-mcp 获取所有可访问的数据库
查询表列表
@mysql-mcp 列出 mydb 数据库中的所有表
查看表结构
@mysql-mcp 描述 users 表的结构
执行查询(只读模式)
@mysql-mcp 查询用户表前10条记录
生成表文档
@mysql-mcp 为users表生成Markdown文档
生成数据库概览
@mysql-mcp 生成mydb数据库的概览文档
可用工具
| 工具名称 | 功能描述 | 主要参数 |
|---|---|---|
test_connection | 测试数据库连接 | - |
get_security_info | 获取安全配置信息 | - |
list_tables | 获取数据库表列表 | database(可选) |
describe_table | 获取表详细结构 | table_name, database(可选) |
generate_table_doc | 生成表文档 | table_name, format, database(可选) |
generate_database_overview | 生成数据库概览 | database(可选) |
execute_query | 执行SQL语句 | sql |
list_schemas | 获取可用数据库列表 | - |
文档生成说明
文档生成功能会将生成的文档保存为实际文件:
- 保存位置: mysql-mcp目录下的
docs/文件夹 - 文件命名:
{database}_{table_name}_{timestamp}.{ext}格式 - 支持格式: Markdown (.md)、JSON (.json)、SQL (.sql)
示例输出:
✅ 文档生成成功!
📁 保存路径: docs/mydb_users_20250110_142000.md
📂 MCP服务目录: F:/path/to/mysql-mcp
📊 表名: mydb.users
📝 格式: markdown
⏰ 生成时间: 2025-01-10 14:20:00
缓存管理
该服务提供查询缓存功能,自动缓存只读查询的结果:
# 获取缓存统计信息
@mysql-mcp 获取查询缓存统计信息
# 清空缓存
@mysql-mcp 清空查询缓存
安全注意事项
- 生产环境建议使用
readonly模式 - 敏感环境中避免使用
full_access模式 - 密码安全:避免在配置中使用弱密码
- 网络安全:确保数据库连接使用安全的网络通道
- 权限最小化:数据库用户只应获得必要的最小权限
错误处理
- 配置错误: 检查 Cursor MCP 配置中的环境变量设置
- 连接失败: 验证数据库连接参数和网络连通性
- 权限不足: 检查数据库用户权限和安全模式设置
- SQL 被拒绝: 当前安全模式不允许执行该类型的 SQL 操作
技术架构
核心模块
main.py: MCP服务主程序config.py: 环境变量配置模块database.py: 数据库操作和安全控制模块document_generator.py: 文档生成模块
安全控制
- 多级安全模式验证
- SQL语句类型检查
- 数据库访问权限控制
- 查询结果行数限制
- 连接超时和重试机制
MySQL适配
- 使用 mysql-connector-python 驱动连接
- 适配MySQL系统表查询语法
- 支持MySQL约束类型识别
- 适配MySQL数据类型映射
许可证
本项目基于 MIT 许可证 开源发布。
- ✅ 自由使用: 允许任何人免费使用、复制、修改本软件
- ✅ 商业友好: 支持商业使用和分发
- ✅ 修改自由: 可以修改源代码并发布衍生作品
- ✅ 最小限制: 只需保留版权声明即可
版本: 1.0.0
更新时间: 2025-01-10
设计目标: 专为MySQL数据库和 Cursor MCP 集成优化
Related Servers
dbt-docs
MCP server for dbt-core (OSS) users as the official dbt MCP only supports dbt Cloud. Supports project metadata, model and column-level lineage and dbt documentation.
USDA Nutrition MCP Server
Access nutrition information for over 600,000 foods from the USDA FoodData Central database.
Knowledge Graph Memory Server
Enables memory for Claude using a knowledge graph with fuzzy semantic search and persistent storage.
Outreach.io by CData
A read-only MCP server for querying live data from Outreach.io using the CData JDBC Driver.
Supabase
Interact with Supabase databases, query tables, and generate TypeScript types.
Teradata
A collection of tools for managing the platform, addressing data quality and reading and writing to Teradata Database.
OpenDart-MCP
Access the DART (Data Analysis, Retrieval and Transfer System) API for detailed financial information retrieval and analysis.
JDBC-MCP
Enables AI assistants to interact with various databases through JDBC connections.
Knowledge Graph Memory Server
A knowledge graph server that provides persistent, multi-context memory for AI models.
Redshift Utils MCP Server
Perform database actions on Amazon Redshift via its Data API.