SSH Rails Runner
Ejecuta comandos de la consola de Rails de forma remota y segura a través de SSH.
Documentación
Servidor MCP: SSH Rails Runner
Un servidor MCP que permite la ejecución remota segura de comandos de la consola de Rails a través de SSH. Este servidor proporciona herramientas tanto para operaciones de solo lectura como para mutaciones cuidadosamente gestionadas en un entorno Rails desplegado.
Funciona muy bien con Cursor. Puedes usar Cursor Composer para incorporar tus archivos de modelos de Rails como contexto y luego usar las herramientas execute_read_only, dry_run_mutate y execute_mutate para realizar cambios en la base de datos. No es necesario lidiar con interfaces de administración complicadas para realizar tu manipulación y análisis de datos.
Ejemplo

Características
- Ejecución remota de la consola de Rails a través de SSH
- Operaciones seguras de solo lectura
- Capacidad de ejecución de prueba (dry-run) para mutaciones
- Ejecución de mutaciones aprobadas
- Gestión de recursos para fragmentos de código
Instalación
npm install
npm run build
Configuración
Configura las siguientes variables de entorno:
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 con Claude Desktop
Añade a tu configuración de 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"
}
}
}
}
Si no se proporciona CODE_SNIPPET_FILE_DIRECTORY, los fragmentos se almacenarán en un directorio temporal (por ejemplo, /tmp/mcp-ssh-rails-runner-code-snippets).
PROJECT_NAME_AS_CONTEXT es opcional y ayuda a identificar el contexto del proyecto en las descripciones de las herramientas.
Herramientas disponibles
El servidor ahora utiliza un flujo de trabajo Preparar -> Ejecutar:
mcp_ssh_rails_runner_prepare_code_snippet
- Argumentos:
name(cadena, para el nombre del archivo),type(enumeración: "readOnly" | "mutate"),code(cadena, código Ruby),description(cadena, opcional). - Función: Guarda el código Ruby proporcionado en un archivo local llamado
code_snippet_<name>.json, lo marca como de solo lectura o mutación, y abre el archivo para su revisión. - Devuelve: El URI
file://del fragmento creado.
mcp_ssh_rails_runner_execute_code_snippet_read_only
- Argumentos:
uri(cadena, URIfile://deprepareCodeSnippet). - Función: Lee el fragmento de código desde el URI, verifica que esté marcado como
readOnly, realiza una comprobación de seguridad del código y lo ejecuta. - Devuelve: La salida del comando de Rails.
mcp_ssh_rails_runner_execute_code_snippet_mutate
- Argumentos:
uri(cadena, URIfile://deprepareCodeSnippet). - Función: ¡ZONA DE PELIGRO! Lee el fragmento de código, verifica que esté marcado como
mutatey lo ejecuta directamente. No hay ejecución de prueba ni comprobación de seguridad adicional dentro de esta herramienta. - Devuelve: La salida del comando de Rails.
- Uso: SOLO LLAMA A ESTO DESPUÉS DE QUE EL USUARIO HAYA REVISADO el código preparado (a través del archivo abierto de
prepareCodeSnippet) Y HAYA CONFIRMADO EXPLÍCITAMENTE que quiere ejecutar la mutación.
Consideraciones de seguridad
- Úsalo solo con endpoints SSH de confianza desde tu propia máquina local que tenga (temporalmente) acceso al entorno remoto.
- Fundamentalmente, revisa siempre el código guardado por
prepareCodeSnippetantes de ejecutar cualquier mutación conexecuteCodeSnippetMutate. La responsabilidad de confirmar las mutaciones recae en el usuario y en la IA que realiza la llamada.
Licencia
MIT