MCP MySQL Lens(可译为“MCP MySQL 查看器”或根据具体上下文调整为更贴切的名称)
一个模型上下文协议(MCP)服务器,使Claude Desktop能够直接与MySQL数据库进行交互。该服务器允许Claude通过自然语言查询、分析和管理您的MySQL数据库。
特点/特性
- 🔍 看起来像是一个放大镜的符号,常用于表示搜索、观察或查看细节,直接翻译可能无具体含义,可理解为“放大镜”或“仔细查看”。 查询执行直接在Claude桌面运行SQL查询
- 📊(表格图标,无实际文字含义,可理解为“图表”或“数据表格”的象征) 模式检查探索数据库结构、表以及表之间的关系
- 🔄 翻译为中文是:循环(或旋转) 数据分析分析并可视化数据模式
- 🛡️ 译为中文是“护盾”或“防御”。这个符号通常用来表示保护、防御或屏障的概念。 安全运营内置数据库操作的安全保障措施
- 🚀 火箭/快速上升/飞速发展(根据上下文可灵活翻译) 轻松设置通过环境变量进行简单配置
先决条件
- Claude Desktop(可译为“Claude桌面版”) 安装
- Node.js(v16或更高版本)
- MySQL 服务器(版本5.7或更高)
- 安装 npm
- 具有适当权限的有效MySQL凭据
NPM 链接
安装
1. 安装MCP服务器
npm install -g mcp-mysql-lens2. 配置Claude桌面版
将此配置添加到您的Claude桌面配置文件中:
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": [
"mcp-mysql-lens"
],
"env": {
"MYSQL_HOST": "",
"MYSQL_PORT": "",
"MYSQL_USER": "",
"MYSQL_PASSWORD": "",
"MYSQL_DATABASE": ""
}
}
}
}配置文件位置:
- macOS(苹果电脑操作系统):
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux(发音为“林克斯”):
~/.config/Claude/claude_desktop_config.json
3. 重启Claude桌面版
保存配置后,重启Claude Desktop以使更改生效。
配置参数
| 参数 | 描述 | 默认值 | 是否必需 |
|---|---|---|---|
MYSQL_HOST | MySQL 服务器主机名 | - | 是 |
MYSQL_PORT | MySQL 服务器端口 | 3306 | 是 |
MYSQL_USER | 数据库用户名 | - | 是 |
MYSQL_PASSWORD | 数据库密码 | - | 是 |
MYSQL_DATABASE | 默认连接的数据库 | - | 是 |
使用示例
配置完成后,您可以通过Claude Desktop与您的MySQL数据库进行交互:
查询数据
"Show me all users from the users table"
"What are the top 10 products by sales?"
"Find all orders from the last 30 days"分析模式
"What tables are in my database?"
"Describe the structure of the customers table"
"Show me the relationships between tables"数据分析
"Calculate the average order value by month"
"Find duplicate records in the products table"
"Show me user registration trends"安全最佳实践
⚠️(警告符号,无具体文字含义,通常表示注意或警告) 重要的安全考量因素:
- 使用只读凭据为数据分析任务创建一个具有只读权限的专用MySQL用户
- 永远不要提交凭证别犯下
claude_desktop_config.json将包含实际凭据的文件提交到版本控制系统中
- 使用环境变量对于生产环境,请考虑使用环境变量替换
- 限制数据库访问仅授予Claude访问其工作所需的特定数据库的权限
- 使用强密码确保你的MySQL密码既强且唯一
- 启用SSL/TLS对于远程连接,始终使用SSL/TLS加密
- 定期审计定期监控数据库访问日志
故障排除
连接问题
问题“无法连接到 MySQL 服务器”
- 验证MySQL服务器是否正在运行:
systemctl status mysql(Linux) 或检查服务 (Windows) - 检查主机和端口是否正确
- 确保防火墙允许在MySQL端口(默认3306)上的连接
- 验证凭据是否正确
问题“用户访问被拒绝”
- 确认用户名和密码是否正确
- 检查用户是否具有适当的权限:
SHOW GRANTS FOR 'your_user'@'localhost'; - 验证用户能否从指定主机连接
配置问题
问题Claude Desktop 没有显示 MySQL 服务器
- 确保配置文件位于正确的位置
- 检查JSON语法是否有效(使用JSON验证器)
- 更改后重启Claude桌面版
- 检查Claude Desktop日志中的错误
性能问题
问题查询速度很慢
- 为频繁查询的列添加适当的索引
- 优化复杂查询
- 考虑增加MySQL连接超时时间
- 检查数据库服务器资源(CPU、内存)
局限性
- 查询超时长时间运行的查询可能会超时(默认:30秒)
- 结果大小大型结果集可能会被截断
- 写操作目前不支持
- 并发连接受限于MySQL服务器的max_connections设置
做出贡献
欢迎贡献!请随时提交拉取请求。
- 为该仓库创建分支(或“克隆该仓库”)
- 创建你的特性分支(
git checkout -b feature/AmazingFeature) - 提交您的更改(
git commit -m 'Add some AmazingFeature') - 推送到分支(
git push origin feature/AmazingFeature) - 提交一个拉取请求
许可证
这个项目遵循MIT许可证授权——详见 许可证 详情请查阅文件。
致谢
- 建立在 模型上下文协议
- 由……提供支持/驱动 克劳德 由Anthropic公司开发
- 由……提供的MySQL连接器
- 受……的启发 dpflucas MySQL 服务器
______________________________________________________________________
