Provides read-only access to MySQL databases with tools for executing SELECT queries, listing tables and databases, and describing table structures with built-in security features like SQL injection protection and automatic query limits.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MySQL ReadOnly MCP Servershow me the top 10 customers by total purchases"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MySQL ReadOnly MCP Server
🔒 生产就绪 的 MySQL 只读 MCP (Model Context Protocol) 服务器,提供安全、高性能的数据库查询服务。
✨ 核心特性
🔒 只读安全: 仅允许 SELECT 查询,多层安全防护
🚀 高性能: 连接池、自动LIMIT、查询优化
🛡️ 企业级安全: SQL注入防护、配置验证、SSL支持
🧪 测试覆盖: 17个全面的单元测试
📝 TypeScript: 完整类型支持
🔧 多平台支持: Claude Desktop、Claude Code、Gemini CLI
🚀 快速开始
1. 安装依赖
2. 配置数据库连接
编辑 .env 文件:
3. 构建项目
4. 配置到您的AI客户端
选择以下任一配置方式:
🔧 配置方法
Claude Desktop 配置
找到 Claude Desktop 配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
添加以下配置:
⚠️ 重要提醒:
使用绝对路径,例如:
/Users/username/projects/mysql-readonly-mcp/dist/index.js确保路径中有正确的项目名称
mysql-readonly-mcp配置完成后重启 Claude Desktop
Claude Code 配置
Claude Code 会自动识别项目中的 .claude_config 文件。在项目根目录创建:
使用步骤:
构建项目:
设置环境变量:
验证配置:
Gemini CLI 配置
安装 Gemini CLI:
创建 MCP 配置文件:
配置 Gemini CLI:
测试连接:
📋 环境变量说明
变量名 | 必需 | 默认值 | 说明 |
| ✅ | localhost | MySQL 服务器地址 |
| ❌ | 3306 | MySQL 服务器端口 |
| ✅ | - | MySQL 用户名 |
| ✅ | - | MySQL 密码 |
| ❌ | - | 默认连接的数据库 |
| ❌ | - | SSL CA 证书路径 |
| ❌ | - | SSL 客户端证书路径 |
| ❌ | - | SSL 客户端密钥路径 |
| ❌ | true | 是否拒绝未授权的 SSL 证书 |
🛠️ 可用工具
1. mysql_query - 执行SQL查询
执行只读 SQL 查询。
参数:
query(string, 必需): 要执行的 SQL 查询(仅允许 SELECT 语句)
示例:
2. mysql_list_tables - 列出表
列出数据库中的所有表。
参数:
database(string, 可选): 数据库名称(默认使用配置的数据库)
示例:
3. mysql_describe_table - 表结构
获取表的结构和列信息。
参数:
table(string, 必需): 要描述的表名database(string, 可选): 数据库名称
示例:
4. mysql_list_databases - 列出数据库
列出所有可用的数据库(排除系统数据库)。
参数:无
🔒 安全特性
多层只读验证: 严格的 SELECT 语句检查
SQL注入防护: 检测危险关键词和注入模式
自动LIMIT: 为查询添加默认限制,防止大数据集
配置验证: 启动时验证必需配置
连接池: 高效的连接管理,防止连接泄露
SSL支持: 加密数据库连接
🧪 测试
📊 性能优化
连接池: 复用数据库连接,减少连接开销
查询限制: 自动添加 LIMIT 子句,防止大查询
智能缓存: 优化重复查询性能
内存管理: 流式处理大型结果集
🔍 故障排除
连接问题
✅ 检查 MySQL 服务是否运行
✅ 验证
.env文件中的凭据✅ 确保用户具有数据库的 SELECT 权限
✅ 检查网络连接和防火墙设置
配置问题
✅ 确保使用了绝对路径
✅ 验证环境变量设置
✅ 检查 SSL 配置(如适用)
常见错误
"Access denied": 检查用户名/密码和权限"Connection refused": MySQL 服务未运行或端口错误"Unknown database": 数据库不存在"Only SELECT statements are allowed": 尝试执行非只读查询
🚀 开发
开发模式
构建生产版本
运行生产版本
📈 版本历史
v1.0.0 - 初始版本,基础功能
v1.1.0 - 添加连接池和性能优化
v1.2.0 - 增强安全特性和测试覆盖
🤝 贡献
Fork 仓库
创建特性分支 (
git checkout -b feature/amazing-feature)提交更改 (
git commit -m 'Add amazing feature')推送到分支 (
git push origin feature/amazing-feature)创建 Pull Request
📄 许可证
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
🆘 支持
如果您遇到问题或有疑问,请:
🎉 感谢使用 MySQL ReadOnly MCP Server!
现在您可以安全地让 AI 助手查询您的 MySQL 数据库了。