The prepare-then-execute split is the design: code lands in a file you can read, marked read-only or mutating, and only then runs against the deployed console. Pull your model files in as context first and the query it writes will match your schema.
A remote Rails console over SSH, split into a prepare step and an execute step. Code is saved to a local file, marked read-only or mutating, and opened for review; execution then takes that file's URI — so nothing reaches the server until you have seen it.
- Ruby code saved as a reviewable snippet, typed read-only or mutate, and opened for you to read
- A read-only snippet executed against the deployed Rails console over SSH
- A prepared mutating snippet executed once you are satisfied with it
- Snippets stored in a directory you nominate, or a temporary one by default
- A project name carried into the tool descriptions, so the model knows which Rails app it is working on
SSH access to the host — hostname, user and a private key path — plus the Rails working directory on that machine, all in the client config. Whatever your Rails console can do on that host, these calls can do.
One command — npx mcp-server-ssh-rails-runner
