项目简介
SSH Rails Runner 是一个 MCP 服务器,允许用户通过 SSH 安全地在远程 Rails 环境中执行 Rails 控制台命令。它为 LLM 客户端(如 Cursor)提供工具,以便进行数据分析和管理,无需复杂的管理界面。
主要功能点
- 远程 Rails 控制台命令执行 (通过 SSH): 通过安全的 SSH 连接,在远程服务器上执行 Rails 命令。
- 安全的只读操作: 提供 'execute_read_only' 工具,用于执行不会修改数据库的 Rails 查询,确保数据安全。
- 变更操作的 Dry-run 模式: 'dry_run_mutate' 工具允许用户预演数据变更操作,生成代码片段并进行风险分析,但不实际执行变更。
- 经过批准的变更执行: 'execute_mutate' 工具执行之前通过 'dry_run_mutate' 创建并审核的代码片段,确保变更操作经过用户确认。
- 代码片段资源管理: 服务器管理 mutation 操作的代码片段,方便用户查看和执行已批准的变更。
安装步骤
npm install npm run build
服务器配置
为了让 MCP 客户端(如 Claude Desktop)连接到 SSH Rails Runner 服务器,您需要在客户端的 MCP 服务器配置中添加以下 JSON 配置。请根据您的实际环境修改配置项。
{ "mcpServers": { "ssh-rails-runner": { "command": "npx", "args": ["mcp-server-ssh-rails-runner"], "env": { "SSH_HOST": "your.remote.host", // SSH 服务器地址 (例如:your.server.com) "SSH_USER": "your_ssh_user", // SSH 用户名 (例如:deploy) "SSH_PRIVATE_KEY_PATH": "your_SSH_PRIVATE_KEY_PATH", // SSH 私钥文件路径 (例如:~/.ssh/id_rsa) "RAILS_WORKING_DIR": "/path/to/rails/app/root" // Rails 应用在远程服务器上的工作目录 (例如:/var/www/rails_app) } } } }
配置说明:
- 'server name': 'ssh-rails-runner' - 服务器的名称,在客户端配置中用于标识该服务器。
- 'command': 'npx' - 启动服务器的命令,这里使用 'npx' 来执行本地安装的 'mcp-server-ssh-rails-runner' 包。
- 'args': '["mcp-server-ssh-rails-runner"]' - 传递给 'command' 的参数,这里是执行 'mcp-server-ssh-rails-runner' 包的入口文件。
- 'env': 环境变量配置,包含 SSH 连接和 Rails 应用工作目录等信息。
- 'SSH_HOST': 远程 SSH 服务器的地址。
- 'SSH_USER': 用于 SSH 登录的用户名。
- 'SSH_PRIVATE_KEY_PATH': SSH 私钥文件的路径,用于免密码登录。请确保私钥文件权限设置正确。
- 'RAILS_WORKING_DIR': 远程 Rails 应用的根目录,服务器会在该目录下执行 Rails 命令。
注意: 请确保远程 SSH 服务器已安装 Ruby, Rails 和 Bundler,并且 SSH 用户有权访问 Rails 应用的工作目录。
基本使用方法
- 启动 SSH Rails Runner MCP 服务器。
- 在 MCP 客户端中配置并连接到 'ssh-rails-runner' 服务器。
- 使用客户端提供的工具列表,选择以下工具进行操作:
- 'execute_read_only': 执行只读 Rails 命令,例如查询数据。
- 'dry_run_mutate': 输入 mutation 代码和 dry-run 代码,以及描述,进行 mutation 预演和分析。服务器将返回分析结果和代码片段 ID。
- 'execute_mutate': 输入 'dry_run_mutate' 返回的代码片段 ID,执行之前预演和批准的 mutation 操作。
使用这些工具,您可以通过 LLM 客户端安全地与远程 Rails 应用进行数据交互和管理。
信息
分类
开发者工具