Zed的MySQL MCP服务器
此扩展使Zed的AI助手能够检查数据库模式、执行SQL查询并与MySQL数据库交互。
特性
- MySQL直接连接 --通过主机/端口或Unix套接字连接到本地或远程MySQL实例
- 读写操作 --默认情况下为只读;可选地启用INSERT、UPDATE、DELETE和DDL
- 多数据库模式 --未设置特定数据库时跨多个数据库查询
- SSL/TLS加密 --保护您的数据库连接
- 连接池 --可配置的性能池大小
需求
- 泽德 编辑器(推荐最新版本)
- Node.js v20或更高
- MySQL 5.7或更高版本(推荐MySQL 8.0+)
- 具有适当权限的MySQL用户
安装
- 打开Zed
- 首选 扩展 (
cmd+shift+x在macOS上) - 搜索 “MySQL MCP服务器”
- 点击 安装
配置
安装扩展后,在Zed设置中配置它(cmd+,):
基本连接
{
"context_server": {
"mcp-server-mysql": {
"source": "extension",
"enabled": true,
"settings": {
"mysql_host": "127.0.0.1",
"mysql_port": "3306",
"mysql_user": "root",
"mysql_pass": "your_password",
"mysql_db": "your_database"
}
}
}
}通过SSH隧道连接到远程数据库
如果MySQL数据库位于不可公开访问的远程服务器上,则可以使用SSH隧道。这是在扩展之外管理的,因此您可以根据每个项目的需求进行定制。
1.打开终端并启动隧道:
ssh -L 3307:localhost:3306 user@remote-host -N这将转发本地端口 3307 到远程MySQL端口 3306 通过SSH连接。添加 -f 要在后台运行它:
ssh -fNL 3307:localhost:3306 user@remote-host2.配置扩展通过隧道连接:
{
"context_server": {
"mcp-server-mysql": {
"source": "extension",
"enabled": true,
"settings": {
"mysql_host": "127.0.0.1",
"mysql_port": "3307",
"mysql_user": "remote_db_user",
"mysql_pass": "remote_db_password",
"mysql_db": "remote_database"
}
}
}
}Unix套接字连接
对于使用Unix套接字的本地MySQL实例:
{
"context_server": {
"mcp-server-mysql": {
"source": "extension",
"enabled": true,
"settings": {
"mysql_socket_path": "/tmp/mysql.sock",
"mysql_user": "root",
"mysql_pass": "your_password",
"mysql_db": "your_database"
}
}
}
}完整配置参考
| 设置 | 默认值 | 说明 |
|---|---|---|
| 连接 | ||
mysql_host | 127.0.0.1 | MySQL服务器主机 |
mysql_port | 3306 | MySQL服务器端口 |
mysql_user | root | MySQL用户名 |
mysql_pass | "" | MySQL密码 |
mysql_db | "" | 数据库名称(空=多数据库模式) |
mysql_socket_path | "" | Unix套接字路径(覆盖主机/端口) |
| 安全 | ||
allow_insert_operation | false | 启用INSERT操作 |
allow_update_operation | false | 启用UPDATE操作 |
allow_delete_operation | false | 启用DELETE操作 |
allow_ddl_operation | false | 启用DDL(CREATE、ALTER、DROP) |
mysql_ssl | false | 启用SSL/TLS加密 |
| 演出 | ||
mysql_pool_size | 10 | 连接池大小 |
mysql_query_timeout | 30000 | 查询超时(ms) |
mysql_cache_ttl | 60000 | 缓存TTL(ms) |
用法
配置后,MySQL MCP服务器向AI助手提供以下工具:
mysql_query
对连接的数据库执行SQL查询。
你可以问助理的例子:
- *“显示数据库中的所有表”*
- *“描述用户表的架构”*
- *“查找过去7天的所有订单”*
- *“此数据库中的外键关系是什么?”*
多数据库模式
当 mysql_db 如果为空,则助手可以使用完全限定的表名查询MySQL用户可以访问的任何数据库:
SELECT * FROM database_name.table_name;安全
⚠️ 重要提示: 默认情况下,只允许读取操作(SELECT)。必须通过设置显式启用写入操作。只有当您完全信任AI助手与您的数据库时,才能启用写操作。
凭据存储在本地Zed设置文件中,并作为环境变量传递给MCP服务器进程——它们永远不会发送到任何外部服务。
故障排除
- 服务器未启动: 确保已安装Node.js v20+(
node --version) - 连接被拒绝: 验证MySQL是否正在运行以及凭据是否正确
- SSH隧道问题: 手动测试隧道
ssh -L 3307:localhost:3306 user@host -N - 身份验证错误(MySQL 8.0+): 确保您的用户支持
caching_sha2_password
发展
# Clone the repository
git clone https://github.com/toonvd/zed-mysql-mcp.git
cd zed-mysql-mcp
# Build the extension
cargo build学分
- MCP服务器: @benborla29/mcp服务器mysql 本·博拉
- 延伸结构 基于 zed-mcp-server-context7 通过Akbxr
许可证
麻省理工学院
