MySQL隧道工具

通过SSH隧道建立MySQL MCP服务器的工具,自动管理端口和清理资源。

  • by drupsys
  • Shell
  • 本地部署
  • 更新于
在 GitHub 查看 drupsys/mcp-mysql-tunnel

使用说明

MCP MySQL隧道

A. 克劳德代码 设置MySQL MCP服务器的技能(@benborla29/mcp-server-mysql)通过SSH隧道。隧道使用随机未使用的本地端口,并在出口时自动清理。

安装

将此仓库克隆到您的Claude Code技能目录中:

git clone https://github.com/drupsys/skill-mcp-mysql-tunnel.git ~/.claude/skills/mcp-mysql-tunnel

安装后 /mcp-mysql-tunnel 技能在所有Claude Code会话中都可用。调用它以获取设置说明。

先决条件

  • SSH访问堡垒/跳转主机
  • python3 可用(用于端口发现)
  • npx (或 yarn dlx Yarn 2+项目)

快速开始

安装后,运行 /mcp-mysql-tunnel 在Claude Code内部,按照指导设置进行操作,或手动添加MCP服务器:

claude mcp add mysql-db --scope user \
  -e REMOTE_MYSQL_HOST=<remote-mysql-hostname> \
  -e MYSQL_USER=<db-user> \
  -e MYSQL_PASS=<db-password> \
  -e MYSQL_DB=<db-name> \
  -- bash "${HOME}/.claude/skills/mcp-mysql-tunnel/scripts/mcp-mysql-tunnel.sh"

使用 --scope user 使其在所有项目中都可用,或省略它以添加项目范围的配置(.mcp.json).

环境变量

变量 必填 默认 描述
REMOTE_MYSQL_HOST 是 - 远程网络上的MySQL主机名
REMOTE_MYSQL_PORT 没有 3306 远程网络上的MySQL端口
MYSQL_USER 是 - 数据库用户名
MYSQL_PASS 是 - 数据库密码
MYSQL_DB 是 - 数据库名称
SSH_USER 没有 developer SSH隧道用户
SSH_HOST 没有 localhost SSH隧道主机
SSH_PORT 没有 2001 SSH隧道端口
ALLOW_INSERT_OPERATION 没有 false 启用INSERT查询
ALLOW_UPDATE_OPERATION 没有 false 启用UPDATE查询
ALLOW_DELETE_OPERATION 没有 false 启用DELETE查询

运作原理

  1. 通过查找随机未使用的本地端口 python3
  2. 打开SSH隧道: 127.0.0.1:<random-port> -> REMOTE_MYSQL_HOST:REMOTE_MYSQL_PORT 通过 SSH_USER@SSH_HOST:SSH_PORT
  3. 轮询直到隧道准备就绪(最多5秒)
  4. 开始 @benborla29/mcp-server-mysql 指向隧道港口
  5. 退出时,陷阱会杀死SSH隧道进程

许可证

麻省理工学院