mcpField
M
MCP Server: SSH Rails Runner

MCP Server: SSH Rails Runner

本地服务
github.com/tadasant开发工具1480 周前更新

关于 MCP Server: SSH Rails Runner

MCP Server: SSH Rails Runner 通过 SSH 在已部署的 Rails 应用中运行 Rails 控制台命令,面向需要远程读取或修改数据的开发者。它采用先准备代码片段、再执行的流程,并区分只读和变更操作。

主要功能

  1. 01通过 SSH 运行 Rails 控制台代码
  2. 02执行只读操作
  3. 03准备并审查 Ruby 代码片段
  4. 04执行已批准的变更操作
  5. 05管理代码片段资源

适用场景

  1. 01检查远程 Rails 应用中的数据
  2. 02在运行前审查数据库变更代码
  3. 03经确认后执行远程数据修改

MCP 相关

该 MCP 服务向客户端提供代码片段准备、只读执行和变更执行工具,并管理代码片段资源。变更执行不包含额外安全检查,需先由用户审查并明确确认。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ssh-rails-runner": {
"command": "npx",
"args": [
"-y",
"mcp-server-ssh-rails-runner"
],
"env": {
"SSH_HOST": "<SSH_HOST>",
"SSH_USER": "<SSH_USER>",
"SSH_PRIVATE_KEY_PATH": "<SSH_PRIVATE_KEY_PATH>",
"RAILS_WORKING_DIR": "<RAILS_WORKING_DIR>"
}
}
}
}
启动命令npx -y mcp-server-ssh-rails-runner
需要配置的环境变量
SSH_HOST
SSH_USER
SSH_PRIVATE_KEY_PATH密钥
RAILS_WORKING_DIR

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-server-ssh-rails-runner

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP 服务:SSH Rails Runner

一个可通过 SSH 安全远程执行 Rails 控制台命令的 MCP 服务。该服务提供只读操作工具,以及用于在已部署 Rails 环境中谨慎管理变更的工具。

它与 Cursor 配合使用效果很好。你可以使用 Cursor Composer 将 Rails 模型文件作为上下文引入,然后使用 execute_read_only、dry_run_mutate 和 execute_mutate 工具修改数据库。无需费力操作复杂的管理界面,即可完成数据整理和分析。

示例

示例

功能

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

安装

npm install
npm run build

配置

设置以下环境变量:

SSH_HOST=your.remote.host
SSH_USER=your_ssh_user
SSH_PRIVATE_KEY_PATH=your_SSH_PRIVATE_KEY_PATH
RAILS_WORKING_DIR=/path/to/rails/app

在 Claude Desktop 中使用

添加到 Claude Desktop 配置中:

{
  "mcpServers": {
    "ssh-rails-runner": {
      "command": "npx",
      "args": ["mcp-server-ssh-rails-runner"],
      "env": {
        "SSH_HOST": "your.remote.host",
        "SSH_USER": "your_ssh_user",
        "SSH_PRIVATE_KEY_PATH": "your_SSH_PRIVATE_KEY_PATH",
        "RAILS_WORKING_DIR": "/path/to/rails/app/root",
        "PROJECT_NAME_AS_CONTEXT": "Name that shows up in tool descriptions to help the LLM describe what kind of Rails project we're working with.",
        "CODE_SNIPPET_FILE_DIRECTORY": "/path/to/store/code/snippets/locally"
      }
    }
  }
}

如果未提供 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 端点;该计算机需获得对远程环境的(临时)访问权限。
  • 至关重要的是,在使用 executeCodeSnippetMutate 执行任何变更之前,务必审阅 prepareCodeSnippet 保存的代码。 确认变更的责任由用户和调用该工具的 AI 承担。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。