MCP服务器:SSH Rails运行程序
一个MCP服务器,可以通过SSH安全远程执行Rails控制台命令。此服务器为部署的Rails环境中的只读操作和精心管理的突变提供了工具。
这与Cursor配合得很好。您可以使用Cursor Composer将Rails模型文件作为上下文拉入,然后使用 execute_read_only, dry_run_mutate,以及 execute_mutate 对数据库进行更改的工具。无需费力地浏览复杂的管理UI来完成数据整理和分析。
示例
特性
- 通过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_.json,将其标记为只读或可变,并打开文件进行查看。 - 退货:The
file://创建的代码段的URI。
mcp_ssh_rails_runner_execute_code_snippet_read_only
- 参数:
uri(字符串,file://URI来自prepareCodeSnippet). - 函数:从URI读取代码片段,验证其是否标记为
readOnly,对代码执行安全检查,并执行它。 - 退货:Rails命令的输出。
mcp_ssh_rails_runner_execute_code_snippet_mutate
- 参数:
uri(字符串,file://URI来自prepareCodeSnippet). - 函数: 危险区! 读取代码片段,验证其是否标记为
mutate,以及 直接执行它。此工具内没有试运行或进一步的安全检查。 - 退货:Rails命令的输出。
- 用法: 只有在用户查看了准备好的代码(通过打开的文件
prepareCodeSnippet)并明确确认他们想执行突变。
安全考虑
- 仅与来自您自己的本地计算机的受信任SSH端点一起使用,该本地计算机(临时)提供了对远程环境的访问权限。
- 至关重要的是,始终查看由保存的代码
prepareCodeSnippet在执行任何突变之前executeCodeSnippetMutate. 确认突变的责任在于用户和调用AI。
许可证
麻省理工学院
