一个通过SSH实现Rails控制台命令安全远程执行的MCP服务器。此服务器提供了用于已部署Rails环境中的只读操作以及精心管理的变更操作的工具。
该服务与Cursor配合使用效果极佳。您可以使用Cursor Composer将您的Rails模型文件作为上下文拉入,并使用execute_read_only、dry_run_mutate和execute_mutate工具来对数据库进行更改。无需通过复杂的管理UI来完成数据处理和分析工作。

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配置中添加:
{
"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": "显示在工具描述中以帮助LLM描述我们正在处理哪种Rails项目的名称。",
"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_snippetname(字符串,用于文件名),type(枚举:"readOnly" | "mutate"),code(字符串,Ruby代码),description(字符串,可选)。code_snippet_<name>.json的文件中,标记为只读或变更类型,并打开文件供审查。file://URI。mcp_ssh_rails_runner_execute_code_snippet_read_onlyuri(字符串,来自prepareCodeSnippet的file://URI)。readOnly,对代码进行安全性检查并执行它。mcp_ssh_rails_runner_execute_code_snippet_mutateuri(字符串,来自prepareCodeSnippet的file://URI)。mutate,并直接执行它。此工具内没有模拟执行或进一步的安全性检查。prepareCodeSnippet打开的文件准备的代码,并明确确认他们想要执行变更时调用此函数。executeCodeSnippetMutate执行任何变更之前,始终审查由prepareCodeSnippet保存的代码。 确认变更的责任在于用户和调用AI。MIT