SSH Rails Runner
Execute comandos do console Rails remotamente e com segurança via SSH.
Documentação
MCP Server: SSH Rails Runner
Um servidor MCP que permite a execução remota segura de comandos do console Rails via SSH. Este servidor fornece ferramentas para operações somente leitura e mutações cuidadosamente gerenciadas em um ambiente Rails implantado.
Funciona muito bem com o Cursor. Você pode usar o Cursor Composer para trazer seus arquivos de modelo Rails como contexto e, em seguida, usar as ferramentas execute_read_only, dry_run_mutate e execute_mutate para fazer alterações no banco de dados. Não é preciso enfrentar interfaces de administração complicadas para realizar suas manipulações e análises de dados.
Exemplo

Recursos
- Execução remota do console Rails via SSH
- Operações seguras somente leitura
- Capacidade de simulação (dry-run) para mutações
- Execução de mutações aprovadas
- Gerenciamento de recursos para trechos de código
Instalação
npm install
npm run build
Configuração
Defina as seguintes variáveis de ambiente:
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
Uso com o Claude Desktop
Adicione à sua configuração do 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"
}
}
}
}
Se CODE_SNIPPET_FILE_DIRECTORY não for fornecido, os trechos serão armazenados em um diretório temporário (por exemplo, /tmp/mcp-ssh-rails-runner-code-snippets).
PROJECT_NAME_AS_CONTEXT é opcional e ajuda a identificar o contexto do projeto nas descrições das ferramentas.
Ferramentas Disponíveis
O servidor agora usa um fluxo de trabalho Preparar -> Executar:
mcp_ssh_rails_runner_prepare_code_snippet
- Argumentos:
name(string, para nome de arquivo),type(enum: "readOnly" | "mutate"),code(string, código Ruby),description(string, opcional). - Função: Salva o código Ruby fornecido em um arquivo local chamado
code_snippet_<name>.json, marca-o como somente leitura ou mutação e abre o arquivo para revisão. - Retorna: O URI
file://do trecho criado.
mcp_ssh_rails_runner_execute_code_snippet_read_only
- Argumentos:
uri(string, URIfile://deprepareCodeSnippet). - Função: Lê o trecho de código do URI, verifica se está marcado como
readOnly, realiza uma verificação de segurança no código e o executa. - Retorna: A saída do comando Rails.
mcp_ssh_rails_runner_execute_code_snippet_mutate
- Argumentos:
uri(string, URIfile://deprepareCodeSnippet). - Função: ZONA DE PERIGO! Lê o trecho de código, verifica se está marcado como
mutatee o executa diretamente. Não há simulação (dry-run) nem verificação de segurança adicional nesta ferramenta. - Retorna: A saída do comando Rails.
- Uso: SOMENTE CHAME ESTA FERRAMENTA APÓS O USUÁRIO TER REVISADO o código preparado (por meio do arquivo aberto de
prepareCodeSnippet) E CONFIRMADO EXPLICITAMENTE que deseja executar a mutação.
Considerações de Segurança
- Use somente com endpoints SSH confiáveis da sua própria máquina local que tenha (temporariamente) acesso ao ambiente remoto.
- Fundamentalmente, sempre revise o código salvo por
prepareCodeSnippetantes de executar qualquer mutação comexecuteCodeSnippetMutate. A responsabilidade por confirmar mutações cabe ao usuário e à IA chamadora.
Licença
MIT