Opens an SSH connection to a deployed Rails app so the agent can run Rails console commands, from read-only checks to approved changes.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add rails-ssh-runner --env RAILS_WORKING_DIR='<RAILS_WORKING_DIR>' --env SSH_HOST='<SSH_HOST>' --env SSH_PRIVATE_KEY_PATH='<SSH_PRIVATE_KEY_PATH>' --env SSH_USER='<SSH_USER>' -- npx mcp-server-ssh-rails-runner~/.codex/config.toml
[mcp_servers.rails-ssh-runner]
command = "npx"
args = ["mcp-server-ssh-rails-runner"]
env = { RAILS_WORKING_DIR = "<RAILS_WORKING_DIR>", SSH_HOST = "<SSH_HOST>", SSH_PRIVATE_KEY_PATH = "<SSH_PRIVATE_KEY_PATH>", SSH_USER = "<SSH_USER>" }
# codex mcp add rails-ssh-runner --env RAILS_WORKING_DIR='<RAILS_WORKING_DIR>' --env SSH_HOST='<SSH_HOST>' --env SSH_PRIVATE_KEY_PATH='<SSH_PRIVATE_KEY_PATH>' --env SSH_USER='<SSH_USER>' -- npx mcp-server-ssh-rails-runner~/.cursor/mcp.json
{
"mcpServers": {
"rails-ssh-runner": {
"command": "npx",
"args": [
"mcp-server-ssh-rails-runner"
],
"env": {
"RAILS_WORKING_DIR": "<RAILS_WORKING_DIR>",
"SSH_HOST": "<SSH_HOST>",
"SSH_PRIVATE_KEY_PATH": "<SSH_PRIVATE_KEY_PATH>",
"SSH_USER": "<SSH_USER>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"rails-ssh-runner": {
"type": "stdio",
"command": "npx",
"args": [
"mcp-server-ssh-rails-runner"
],
"env": {
"RAILS_WORKING_DIR": "<RAILS_WORKING_DIR>",
"SSH_HOST": "<SSH_HOST>",
"SSH_PRIVATE_KEY_PATH": "<SSH_PRIVATE_KEY_PATH>",
"SSH_USER": "<SSH_USER>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"rails-ssh-runner": {
"command": "npx",
"args": [
"mcp-server-ssh-rails-runner"
],
"env": {
"RAILS_WORKING_DIR": "<RAILS_WORKING_DIR>",
"SSH_HOST": "<SSH_HOST>",
"SSH_PRIVATE_KEY_PATH": "<SSH_PRIVATE_KEY_PATH>",
"SSH_USER": "<SSH_USER>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"rails-ssh-runner": {
"command": "npx",
"args": [
"mcp-server-ssh-rails-runner"
],
"env": {
"RAILS_WORKING_DIR": "<RAILS_WORKING_DIR>",
"SSH_HOST": "<SSH_HOST>",
"SSH_PRIVATE_KEY_PATH": "<SSH_PRIVATE_KEY_PATH>",
"SSH_USER": "<SSH_USER>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"rails-ssh-runner": {
"command": "npx",
"args": [
"mcp-server-ssh-rails-runner"
],
"env": {
"RAILS_WORKING_DIR": "<RAILS_WORKING_DIR>",
"SSH_HOST": "<SSH_HOST>",
"SSH_PRIVATE_KEY_PATH": "<SSH_PRIVATE_KEY_PATH>",
"SSH_USER": "<SSH_USER>"
}
}
}
}Environment variables
RAILS_WORKING_DIRSSH_HOSTSSH_PRIVATE_KEY_PATHSSH_USER
Replace the placeholders with your own credentials and keep them out of version control.