Exorails is a hosted MCP gateway. Add your MCP servers and secrets once, group them into an environment per project, and paste that environment's URL into Claude Code, Codex, Cursor or any MCP client. Every tool of the project shows up. Keys stay in the vault and are used at call time, so the agent never sees one.
Register your MCP servers and store the keys they need. You do this once per tool, not once per laptop.
One environment per project. Choose which tools it exposes. Each environment gets a single URL.
Claude Code, Codex, Cursor or any MCP client. Every tool of the project shows up. Change laptop or agent, keep everything.
The URL is the whole setup. Nothing to install, no config to keep in sync between machines, and no secret in the address: the client signs you in, or sends the token in a header.
claude mcp add --transport http acme-api \ https://mcp.exorails.net/e/acme-api # then, inside Claude Code: /mcp → acme-api → Authenticate (opens the browser) # Claude Code without --transport (older version): # claude mcp add-json acme-api '{"type":"http","url":"https://mcp.exorails.net/e/acme-api"}'
Secrets are encrypted at rest and referenced by name. A tool declares which secret it needs. You never paste a key into a config file again.
When an agent calls a tool, the gateway adds the credential to the upstream request. The agent receives the result, not the key.
An environment exposes only the tools you put in it. A key used by one project is invisible to the others.
Rotate a key in the vault and every environment that uses it picks up the new value. No client changes.
Some tools normally mean standing up a machine just so your agent can reach your own systems: a Postgres MCP server, a Redis one, an SSH one. Exorails runs these for you. Paste a connection string, the tools appear in your environment, and the credential stays in the vault. Thirteen connectors today, across databases, search and analytics, infrastructure and APIs. Nothing to install, nothing to host, nothing to patch.
PostgreSQL, MySQL, SQL Server. Query, inspect the schema, explain a plan. Read-only by default, with a row cap and a statement timeout.
Redis, MongoDB. Read keys and documents, scan, aggregate, run allow-listed commands. Destructive commands are blocked by default.
Elasticsearch, OpenSearch, ClickHouse. Search, count, mappings, analytical SQL with a result cap, read-only unless you say otherwise.
SSH, Kubernetes, Prometheus, object storage. Run allow-listed commands, list pods and logs, query metrics, read and write objects on S3-compatible stores.
Any REST API with an OpenAPI document, any GraphQL endpoint. Operations and the schema become tools, with your key injected at call time.
A database on a private subnet has no public address to dial. Install a small agent on one machine that can see it: it keeps an outbound tunnel to Exorails, you declare the host:port routes it may reach, and any connector picks that machine under Reach via. No inbound port, no VPN, no IP allow-list. Disable the machine and every tunnel drops.
How Exorails Connect works →$ curl -fsSL https://api.exorails.net/connect/install.sh | sh -s -- --token exe_… installed /usr/local/bin/exorails-connect (linux/amd64) enrolled as "bastion-eu" · tunnel up # Machines → bastion-eu → routes db 10.0.1.12:5432 PostgreSQL cache 10.0.1.40:6379 Redis # environment acme-api → Tools → PostgreSQL Reach via: bastion-eu → db (10.0.1.12:5432)
A flat base, calls included, then a price per 100,000 calls. A call is one tool invocation; listing tools is free.
Full comparison and calculator →No. Keys live in the vault and are added to the upstream request when a tool is called. The agent sees the tool's name, its schema and its results.