首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
Rails SSH 控制台运行器2026-10-23210分享添加福利群:解决AI开发者的「MCP实战痛点」
启用通过 SSH 在部署的 Rails 环境中进行安全的远程执行 Rails 控制台命令,适用于只读操作、变更规划以及执行已批准的更改。
By tadasant
2026-10-23210
github
详情内容

MCP服务器:SSH Rails运行器

这是一个MCP服务器,可通过SSH安全地远程执行Rails控制台命令。该服务器提供工具用于只读操作以及在生产环境中的受控变更操作。

与Cursor配合使用效果极佳。您可以使用Cursor Composer拉取Rails模型文件作为上下文,然后通过execute_read_only、dry_run_mutate和execute_mutate工具对数据库进行修改。无需繁琐地操作复杂的管理员界面即可完成数据整理和分析工作。

示例

示例

功能特性

  • 通过SSH远程执行Rails控制台命令
  • 安全的只读操作
  • 变更操作的预执行(试运行)功能
  • 执行已批准的变更操作
  • 代码片段资源管理

安装

npm install
npm run build

配置

设置以下环境变量:

SSH_HOST=你的远程主机地址
SSH_USER=你的SSH用户名
SSH_PRIVATE_KEY_PATH=你的SSH私钥路径
RAILS_WORKING_DIR=/rails应用路径

与Claude Desktop配合使用

将以下配置添加到Claude Desktop配置文件中:

{
  "mcpServers": {
    "ssh-rails-runner": {
      "command": "npx",
      "args": ["mcp-server-ssh-rails-runner"],
      "env": {
        "SSH_HOST": "你的远程主机地址",
        "SSH_USER": "你的SSH用户名",
        "SSH_PRIVATE_KEY_PATH": "你的SSH私钥路径",
        "RAILS_WORKING_DIR": "/rails应用根目录路径",
        "PROJECT_NAME_AS_CONTEXT": "在工具描述中显示的项目名称,帮助LLM理解我们正在处理哪种Rails项目",
        "CODE_SNIPPET_FILE_DIRECTORY": "/本地存储代码片段的路径"
      }
    }
  }
}

如果未提供CODE_SNIPPET_FILE_DIRECTORY,代码片段将存储在临时目录中(例如/tmp/mcp-ssh-rails-runner-code-snippets)。 PROJECT_NAME_AS_CONTEXT是可选参数,用于在工具描述中标识项目上下文。

可用工具

服务器现在采用"准备 -> 执行"工作流程:

mcp_ssh_rails_runner_prepare_code_snippet

  • 参数:name(字符串,用于文件名),type(枚举:"readOnly" | "mutate"),code(字符串,Ruby代码),description(字符串,可选)。
  • 功能:将提供的Ruby代码保存到名为code_snippet_<name>.json的本地文件中,标记为只读或变更操作,并打开文件供审查。
  • 返回值:创建的代码片段的file:// URI。

mcp_ssh_rails_runner_execute_code_snippet_read_only

  • 参数:uri(字符串,来自prepareCodeSnippet的file:// URI)。
  • 功能:从URI读取代码片段,验证其被标记为readOnly,对代码进行安全检查,然后执行它。
  • 返回值:Rails命令的输出。

mcp_ssh_rails_runner_execute_code_snippet_mutate

  • 参数:uri(字符串,来自prepareCodeSnippet的file:// URI)。
  • 功能:危险区域!读取代码片段,验证其被标记为mutate,并直接执行它。此工具内部没有试运行或进一步的安全检查。
  • 返回值:Rails命令的输出。
  • 使用说明:仅在用户已通过prepareCodeSnippet打开的文件审查了准备好的代码并明确确认要执行变更操作后调用此工具。

安全注意事项

  • 仅在与你自己的本地机器之间的受信任SSH端点上使用,该本地机器(临时)被授予访问远程环境的权限。
  • 至关重要:在执行任何变更操作之前,始终审查prepareCodeSnippet保存的代码。 确认变更操作的责任在于用户和调用AI。

许可证

MIT许可证

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档