Enables complete database operations including CRUD operations, schema inspection, multi-database connection management, and SQL query execution on MySQL databases.
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 MCP Servershow me the first 5 rows from the users table"
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 MCP Server 🚀
v4.0.0 - 全新架构重写,更简洁、更强大!
一个功能强大且易用的 MySQL 数据库 MCP(Model Context Protocol)服务器,支持 AI 助手安全地操作 MySQL 数据库。
🌟 核心特性
🌐 StreamableHTTP 协议 - 基于最新 MCP 规范实现
🔐 Header 预配置 - 凭证不暴露给 AI,安全可靠
🤖 AI 动态管理 - AI 可以帮你添加/切换数据库连接
🔗 多数据库支持 - 同时管理多个数据库,随时切换
📊 完整 CRUD - 支持所有 SQL 操作
🏗️ 模块化架构 - 清晰的目录结构,易于扩展
📦 安装
环境要求
Node.js 18+
MySQL 5.7+ 或 8.0+
MCP 客户端(Claude Desktop、Cursor 等)
安装步骤
⚙️ 配置方法
方式一:Header 预配置(推荐)
编辑 MCP 配置文件:
Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
单数据库配置
多数据库配置
优势:
✅ 数据库凭证不暴露给 AI
✅ 启动即连接,无需手动操作
✅ 支持多数据库同时连接
方式二:AI 动态添加(灵活)
不配置 Header,让 AI 在对话中帮你添加连接:
使用示例:
🔧 工具列表
连接管理
工具名称 | 功能说明 | 使用场景 |
| 添加数据库连接 | AI 帮你动态添加新连接 |
| 列出所有连接 | 查看当前有哪些数据库 |
| 选择活跃数据库 | 切换到其他数据库 |
| 移除连接 | 清理不需要的连接 |
查询操作
工具名称 | 功能说明 | 使用场景 |
| 执行 SQL | 任何 SQL 操作(SELECT、INSERT、UPDATE、DELETE) |
| 显示所有表 | 快速了解数据库结构 |
| 查看表结构 | 查看字段、类型、样本数据 |
| 显示所有数据库 | 查看可访问的数据库列表 |
🎮 使用示例
场景一:使用 Header 预配置
场景二:AI 动态添加连接
🏗️ 项目架构
核心设计:
index.ts - Express HTTP 服务器 + MCP Server 初始化
database.ts - 封装数据库连接池和查询逻辑
tools/ - 每个文件负责一类工具的定义和处理
🔒 安全建议
数据库权限配置
为 MCP 创建专用数据库用户,限制权限:
HTTP 模式安全
✅ 使用 Header 预配置,避免凭证暴露给 AI
✅ 生产环境使用 HTTPS(Nginx 反向代理)
✅ 限制访问 IP(防火墙规则)
✅ 定期更新数据库密码
✅ 监控日志,发现异常访问
🚀 NPM 脚本
📝 环境变量
创建 .env 文件(可选):
❗ 常见问题
1. 端口被占用
错误: EADDRINUSE: address already in use :::3001
解决: 修改 .env 文件中的 PORT,或终止占用进程
2. 连接失败
错误: 数据库连接失败
检查:
MySQL 服务是否运行
主机、端口、用户名、密码是否正确
防火墙是否允许连接
3. 会话丢失
问题: 重启服务器后提示 "Session not found"
原因: 会话存储在内存中,重启后清空
解决: 刷新 MCP 客户端(重新初始化)
4. 连接已关闭错误
错误: Can't add new command when connection is in closed state
原因:
数据库连接长时间空闲,MySQL 服务器关闭了连接
网络中断导致连接断开
解决方案:
✅ v4.0.5+ 已使用连接池替代单连接,自动支持:
连接保活(Keep-Alive)机制
自动重连功能
并发查询支持
如果仍遇到问题,请重启 MCP 服务器
📦 版本历史
v4.0.5 (2025-12-09) - 连接池优化
🎯 使用连接池替代单连接
🔄 自动连接保活(Keep-Alive)
🔌 自动重连机制
🚀 支持并发查询
🐛 修复 "connection in closed state" 错误
v4.0.0 (2025-12-09) - 全新架构
🔥 完全重写,全新模块化架构
✨ 基于最新 MCP StreamableHTTP 协议
🎯 简化工具:连接管理 + 查询操作
🏗️ 清晰的目录结构:
tools/模块化🚀 更快的响应速度
📖 更清晰的代码注释
v3.x - 旧版本
支持事务管理、回滚等复杂功能
较为复杂的架构
📞 支持与反馈
🐛 问题报告: GitHub Issues
💡 功能建议: GitHub Discussions
📧 联系作者: guangxiangdebizi@gmail.com
🔧 故障排除
问题:ERR_MODULE_NOT_FOUND 错误
错误信息:
解决方案:
删除并重新安装依赖:
检查 Node.js 版本:
使用全局安装:
问题:SSE 流断开
错误信息:
解决方案:
在 mcp.json 中设置更长的超时或禁用超时:
问题:安全漏洞警告
警告信息:
解决方案:
问题:端口被占用
错误信息:
解决方案:
更改端口(在
.env文件中):
或者关闭占用端口的进程:
获取更多帮助
📄 License
Apache 2.0 License - 详见 LICENSE 文件
⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!