Rails MCP server
Default-deny action registry, append-only spend ledger, and human sign-off audit trail (MCP tools).
0 stars10 downloads/wk
Reviews
Write oneNobody has reviewed Rails yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Rails tools (6)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
classify_actionevaluate_budgetget_rails_hashget_signoff_stateis_action_registeredrecord_spend_intent
Public scan report
scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it
- Code scan9 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 43 days ago12/15
- Maintainer identityregistry namespace matches repository owner6/10
How Rails compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 85/100
- higher than 70% of 48,273 servers
- Tools
- 6
- the typical server has 7
- Tools that change things
- 0%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 10
- more than 3% of 11,915 servers with a package
What its tools let an agent do: 5 read · 1 run or deploy
Install Rails in Claude Code, Cursor or VS Code
claude mcp add rails-mcp -- uvx rails-mcp
What the publisher says
From the Rails repository's README, as published. We do not edit it. Read it on GitHub
rails-mcp
A self-hosted, caller-configured default-deny action registry + append-only spend ledger + CLI-only sign-off audit trail, exposed as MCP tools. Different category from this author's other six MCP servers (mcp-factory, rag-mcp, bus-mcp, desktop-mcp, github-mcp, discord-mcp) -- those are devtools ("connect an agent to X"); this one is governance and safety: "stop an agent from doing something irreversible without a human noticing."
Ported and generalized from a live internal registry (shared/rails/, 31 tests, running against a real multi-bot fleet since 2026-07-06) -- this pattern shipped internally before it shipped publicly.
What this is / is not
Is:
unconditionally GATED (default-deny), registered or not.
- A schema + pure logic for classifying action_type strings as
enforcement (enforcementlayer, enforcementpointer, ceremony) -- informational, never permissive.
- A place to register what you know about an action-type's current
registry's current hash and when.
- An append-only spend-intent ledger + rolling-window budget check.
- An append-only human sign-off ledger, recording who blessed the
Is NOT:
anything by itself. You still wire it into your own PreToolUse hook, permission deny-list, or CI gate -- rails-mcp gives you the schema and the audit trail, not the interceptor. recordspendintent records intent to spend; it never calls a vendor, a paid API, or a broker, and nothing here stops an over-budget spend from happening.
- Not an enforcer. classify_action returning GATED does not block
their own registry (a YAML/JSON config file, or a plain dict). No fleet's specific action-types ship with this package.
- Not pre-loaded with any action-type data. Every adopter supplies
string per registry; fine for v1, a known limitation for later.
- Not multi-tenant. The sign-off ledger assumes one human operator
The one invariant that is never configurable
classifyaction(actiontype) always returns "GATED" -- registered or not, whatever config was loaded, no argument or config field can change it. This is the whole product. A config-driven fail-open knob would defeat the entire pitch, so classify() (railsmcp/registry.py) takes only an actiontype argument: there is no parameter through which a caller could ever make it return anything permissive. isactionregistered answers a separate, purely informational question -- "do I know something about this action-type's enforcement?" -- and never feeds back into the GATED verdict.
Quickstart (60 seconds)
pip install rails-mcpAdd to your Claude Desktop/Code MCP config:
{
"mcpServers": {
"rails-mcp": {
"command": "rails-mcp"
}
}
}No console script on PATH? Fall back to "command": "python", "args": ["-m", "rails_mcp"].
By default the registry loads empty (honest-empty, not fail-open -- classify_action is still unconditionally GATED for everything). Point it at your own action-type config:
{
"mcpServers": {
"rails-mcp": {
"command": "rails-mcp",
"env": { "RAILS_MCP_CONFIG_PATH": "C:\\path\\to\\rails.config.yaml" }
}
}
}See examples/rails.config.example.yaml (or .example.json) for the config shape.
Tools
All six are read-mostly -- none of them can write to the sign-off ledger.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Rails: common questions
- Is Rails MCP server safe?
- Yes, by our scan: it is graded A (85/100). Read the Rails safety report
- How do I install Rails?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Rails need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Rails maintained?
- The last commit was 82 days ago (2026-08-12). The latest release is v0.1.0.
- What can I use instead of Rails?
- Servers from other publishers that do the same job: SSH Manager MCP server and Tradememory Protocol MCP server.
- How does Rails compare with other MCP servers?
- safety score 85/100 (higher than 70% of 48,273 servers); tools 6 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Rails
Same job from other publishers: the closest match first, then the best rated.
- SSH ManagerSSH for AI agents: commands, files, backups and health, with approval, a vault and an audit trailnot reviewedEstablishedA
- Tradememory ProtocolTamper-evident decision audit trail and outcome-weighted memory for AI trading agents.not reviewedEstablishedB