MCP.so
Sign In

Railpush

@Railpush

About Railpush

AI-native cloud platform with 218 MCP tools. Deploy web services, manage PostgreSQL, MySQL, MongoDB, Redis, Meilisearch, and S3 storage from your AI agent.

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "railpush": {
      "url": "https://mcp.railpush.com/mcp",
      "headers": {
        "Authorization": "Bearer your-api-key"
      }
    }
  }
}

Tools

200

Get the currently authenticated user's profile — name, email, workspace, and role. If authenticated via API key, also returns api_key_id and api_key_scopes (e.g. read, write, deploy, admin). Write queries require admin scope on the API key.

Get API version metadata (current version, supported pins, and pinning headers/query parameters).

Get API version changelog entries used for compatibility planning and migrations.

Get current API rate-limit state for this API key (limit, remaining, reset_at, window).

List services in the workspace with optional server-side filters. Use compact=true for MCP-friendly output (returns only id, name, type, status, plan, runtime, public_url, repo_url, branch, project_id, instances). Supports cursor pagination via limit/cursor.

Get full details of a service by ID, including its configuration, status, public URL, and deploy settings.

Create a new service. Specify at minimum name + type. The service can be a web server, worker, cron job, or static site. repo_url and image_url are optional: you can create the service first, then deploy later via trigger_deploy, push_code, or update_service. This is especially useful for static sites: create_service({name, type:'static'}) then push_code(...) to upload the site files. Plan limits: free=1 service per workspace, s=10, m=25, l=50. For GPU workloads (ML inference, training, CUDA): set plan='gpu' ($49/mo) and use a CUDA base image (e.g. image_url='nvidia/cuda:12.6.3-runtime-ubuntu24.04'). The GPU node has an NVIDIA RTX 4000 Ada with 20GB VRAM. Check current count with list_services before creating if near limits. Note: if creating multiple resources, call sequentially rather than in parallel to avoid sibling-error cascading.

Clone an existing service into a new service with optional configuration overrides. Optionally copies env vars/secrets from the source service.

Update a service's configuration. Only provided fields are changed. Use this to change branch, build/start commands, scaling plan, port, project assignment, and more.

Get retention policy for service logs. Build log retention is enforced; runtime/request retention values are stored for policy tracking.

Update service log retention windows. Values accept day numbers (e.g. 30) or strings like 30d, 12w, 6m, 1y.

Get per-service mTLS policy configuration for internal service-to-service traffic.

Configure per-service mTLS policy. strict mode enforces service allowlist via network policy; permissive mode stores policy without strict deny enforcement.

Get ingress access-control policy for a service (IP allowlist/blocklist mode, rules, and active CIDRs).

Configure ingress IP access control for a service. Supports allowlist/blocklist modes, CIDR rules, optional expiry, and custom deny response.

List recent access-control policy change events for a service.

Delete a service using a safeguarded flow. First confirmation soft-deletes the service into a 72-hour recovery window. Optional hard_delete=true is only for permanent deletion after that window.

Restore a soft-deleted service from the recovery window. Restored services come back suspended and must be resumed to run.

Restart a running service. The existing containers are stopped and new ones started with the current image.

Suspend a service, stopping all its containers. The service remains configured and can be resumed later.

Resume a suspended service, triggering a new deploy.

Search services, databases, and key-value stores in one call using a workspace-scoped query.

Return a dependency graph for a workspace (nodes + edges) covering services, databases, and key-value stores.

Return databases, key-value stores, and services a service depends on (detected via explicit links and env-var references).

List services connected to a database, including the env var / link source used to detect each connection.

Estimate blast radius for a database by listing affected services if that database becomes unavailable.

Apply the same service configuration updates to multiple services in one API call. Returns per-service status and errors.

Restart multiple services at once. Returns results for each service.

Trigger deploys for multiple services at once. Returns results for each service.

Update environment variables for multiple services in one API call. Supports merge mode (upsert/delete) and replace mode.

Suspend multiple services at once. Returns results for each service.

Resume multiple suspended services at once. Returns results for each service.

Trigger a new deploy for a service. Optionally specify a commit SHA or branch. The deploy builds the image from the repo and rolls it out.

Push source code directly to a service and trigger a build+deploy. No GitHub repo needed. This works well with create_service(...) first, then push_code(...), including for static sites. Example: create_service({name:'landing', type:'static'}) and then push_code({service_id, files:[{path:'index.html', content:'<!doctype html>...'}]}). Static services use the native static build path, serve uploaded files directly, and keep SPA index.html fallback routing. Send an array of files with path and content. Max 1MB total. For larger projects, use a Git repository instead.

List deploy history for a service with optional status/branch/time filtering. Supports cursor pagination via limit/cursor.

Block until a deploy reaches a terminal state (live/failed/canceled) or timeout expires.

Get detailed information about a specific deploy, including build log, status, timing, and any Dockerfile override.

Rollback a service to a previous deploy. Creates a new deploy using the image from the specified deploy ID.

Check a deploy's position in the build queue, including estimated wait time until execution starts.

Enable GitHub Actions-gated auto-deploy for a service. Ensures auto_deploy is enabled and ignores push webhooks for this service until a successful workflow_run event is received.

Disable GitHub Actions-gated auto-deploy for a service and return to push-webhook based auto-deploy behavior.

Get GitHub Actions deploy-gate status for a service, including effective deploy mode and workflow allowlist.

Set a service deploy automation mode: off, push, or GitHub Actions workflow-success gated deploys. Optionally provide workflow allowlist for workflow_success mode; if omitted, existing workflow allowlist is preserved.

Set or clear the workflow allowlist used by GitHub Actions-gated deploys for a service. This updates allowlist env vars only and does not change deploy mode.

List environment variables for a service. Secret values are masked — use reveal_env_var to fetch a secret's plaintext value. Supports cursor pagination via limit/cursor.

Set environment variables for a service. This is a bulk replace operation — provide all env vars the service should have. Existing vars not in the list are removed. To perform a destructive replace, set confirm_destructive=true. Use upsert_env_vars for additive updates.

Add or update environment variables for a service WITHOUT removing existing vars. Unlike set_env_vars (which replaces everything), this is additive — keys not in the list are left untouched. Optionally specify keys to delete.

Reveal the plaintext value of a single environment variable (including secrets) for a service. Use only when absolutely required; output may be stored in logs/conversation history. The reveal is audit-logged.

List persistent disks attached to a service. Services may have at most one attached disk.

Create or replace a service disk attachment. Requires a single-instance service; redeploy is required after changes.

Delete the persistent disk attachment from a service. Redeploy is required after deletion.

List custom domains configured for a service. Supports cursor pagination via limit/cursor.

Add a custom domain to a service. You must point the domain's DNS (CNAME) to the service's public URL for verification and TLS provisioning. Optionally set redirect_target to make the domain 301-redirect to another URL (e.g. redirect apex to www).

Remove a custom domain from a service. This will delete the TLS certificate and DNS configuration. Requires confirm_destructive=true.

List rewrite/proxy rules for a service. Rewrite rules let you route specific URL paths (e.g. /api/*) from one service to another service's backend.

Add a rewrite/proxy rule to a service. Routes requests matching source_path on this service to dest_path on the destination service. Supports wildcard paths (e.g. /api/*).

Delete a rewrite/proxy rule from a service. Requires confirm_destructive=true.

List managed PostgreSQL databases in the workspace with optional server-side filters. Supports cursor pagination via limit/cursor.

Create a new managed PostgreSQL database.

Get database details and connection strings. Passwords are redacted by default; set include_password=true (with acknowledge_sensitive_output=true) to return plaintext credentials and full connection URLs inline. Revealing the password requires Developer access and is recorded in the audit log; output may be stored in logs/conversation history.

Reveal plaintext credentials for a database. Use only when absolutely required; output may be stored in logs/conversation history.

Rotate a managed PostgreSQL database password. Returns the new plaintext password once and updates linked service connection URLs.

Grow a managed database's PVC online to the requested size in GiB. Use to recover from 'no space left on device' Postgres crashloops (visible in /diagnose container_log_tail). Refuses to shrink. Triggers a pod restart so Postgres remounts at the new size.

Return cluster-state diagnosis for a managed database's external TCP reachability path. Reports whether the ingress-nginx tcp-services ConfigMap has an entry for the external port, whether the backend ClusterIP Service exists with ready Endpoints, the Pod status, and whether the ingress-nginx controller pods are Ready. Read-only. Use when /restart didn't recover the external port.

Restart a managed PostgreSQL database by triggering a rolling restart of its StatefulSet pod. Use this to recover when the external TCP port refuses connections but metadata reports status=available (usually caused by nginx tcp-services ConfigMap drift). Returns 202 Accepted and the pod restarts in the background.

Run SQL against a managed PostgreSQL database. Default mode is read-only; set allow_write=true with acknowledge_risky_query=true for write-capable execution. Write queries require an API key with admin scope — check your API key permissions via whoami. Response always returns columns[] + rows[] arrays.

Get backup retention policy for a managed database.

Get the currently available point-in-time recovery window for a managed database.

Update backup retention windows for a managed database. Values accept day numbers or strings like 30d, 12w, 6m, 1y.

Update a database configuration (plan and deletion protection).

Apply the same database updates to multiple databases in one API call. Returns per-database status and errors.

Delete a managed database using a safeguarded flow. First confirmation soft-deletes it into a 72-hour recovery window. Optional hard_delete=true is only for permanent deletion after that window.

Restore a database. With no extra fields, restores a soft-deleted database. With backup_id, restores from a specific backup. With target_time, performs time-targeted restore.

Create a cloned database from the latest backup, a specific backup_id, or a target_time restore point. Supports plan overrides and optional sanitization rules.

Get clone progress/status for a cloned database ID.

Trigger an immediate backup of a database.

List backups for a database. Supports cursor pagination via limit/cursor.

List recent database restore jobs (soft-delete restores and point-in-time restore jobs) for a database.

List read replicas for a database.

Create a read replica of a database.

Promote a read replica to a standalone primary database.

Enable high availability for a database. Creates a hot standby replica that auto-promotes on failure.

List managed Redis/key-value stores in the workspace with optional server-side filters. Supports cursor pagination via limit/cursor.

Create a new managed Redis/key-value store.

Get details of a Redis/key-value store with redacted credentials.

Reveal plaintext credentials for a Redis/key-value store. Use only when absolutely required; output may be stored in logs/conversation history.

Update a Redis/key-value store configuration (plan, maxmemory_policy, deletion protection).

Delete a Redis/key-value store using a safeguarded flow. First confirmation soft-deletes it into a 72-hour recovery window. Optional hard_delete=true is only for permanent deletion after that window.

Restore a soft-deleted Redis/key-value store from the recovery window.

List managed MySQL instances in the workspace.

Create a new managed MySQL instance.

Get details of a MySQL instance.

Reveal plaintext credentials for a MySQL instance.

Update a MySQL instance (plan).

Delete a MySQL instance (soft-delete with 72h recovery).

Restore a soft-deleted MySQL instance.

List managed MongoDB instances in the workspace.

Create a new managed MongoDB instance.

Get details of a MongoDB instance.

Reveal plaintext credentials for a MongoDB instance.

Update a MongoDB instance (plan).

Delete a MongoDB instance (soft-delete with 72h recovery).

Restore a soft-deleted MongoDB instance.

List managed Meilisearch instances in the workspace.

Create a new managed Meilisearch full-text search instance.

Get details of a Meilisearch instance.

Reveal the master API key for a Meilisearch instance.

Update a Meilisearch instance (plan).

Delete a Meilisearch instance (soft-delete with 72h recovery).

Restore a soft-deleted Meilisearch instance.

List managed S3-compatible object storage (MinIO) instances in the workspace.

Create a new managed S3-compatible object storage (MinIO) instance.

Get details of an object storage instance.

Reveal S3 access key, secret key, and endpoint for an object storage instance.

Update an object storage instance (plan).

Delete an object storage instance (soft-delete with 72h recovery).

Restore a soft-deleted object storage instance.

Get runtime or deploy logs for a service. Supports text/regex search, time-window filtering, level filtering, and structured field filters.

List log forwarding drains configured for a service.

Create a log forwarding drain for a service (webhook, datadog, loki/grafana cloud, splunk, elasticsearch/opensearch).

Delete a log forwarding drain from a service.

Get delivery stats for a log forwarding drain.

Send a synthetic test log entry through a configured log drain.

List log-based alert rules configured for a service.

Create a log-based alert rule for a service. Supports structured filters and/or regex pattern matching with threshold/window/cooldown.

Update a log-based alert rule for a service.

Delete a log-based alert rule from a service.

Create a persistent shell session for a service. Session cwd/env state is preserved between shell_exec calls.

Execute a command in an existing shell session. Session cwd/env state is updated after each command.

Close a shell session and release its state.

List files/directories in a service container path (read-only).

Read a file from a service container (read-only, size-limited).

Search files in a service container path using a glob pattern.

Start an automated AI fix session for a service that has a failed deploy. Can run in preview_only mode to return a proposed fix + diff without applying changes.

Check the status of an AI fix session for a service.

Get a plain-English diagnosis for the latest failed deploy (or a specific failed deploy) before applying AI auto-fix.

Execute a single command directly inside a running service container and return stdout/stderr synchronously.

Run a one-off command against a service's container. Useful for migrations, data fixes, shell commands, etc. The job runs asynchronously — use wait_for_job to block until completion.

List one-off jobs that have been run against a service. Supports cursor pagination via limit/cursor.

Get details of a one-off job, including its output logs, status, and exit code.

Block until a one-off job completes (or times out). Returns the job with its output logs, status, and exit code. Similar to wait_for_deploy but for jobs.

Get the autoscaling policy for a service.

Set or update the autoscaling policy for a service. Configure min/max instances and CPU/memory scaling targets.

List all blueprints (IaC definitions) in the workspace.

Create a new blueprint from a Git repo. The repo should contain a railpush.yaml file that declares services and databases.

Get blueprint details including its linked resources (services, databases) and their current statuses.

Sync a blueprint — re-reads the railpush.yaml from the repo and creates/updates/deletes services to match.

Update a blueprint. Currently supports moving it to a project folder. Set folder_id to null to move to root.

Delete a blueprint and its linked services. If the blueprint has linked services, confirm_destructive=true is required. Use dry_run=true to preview what would be deleted without actually deleting.

List all environment variable groups in the workspace. Env groups allow sharing env vars across multiple services.

Create a new environment variable group.

Get env group details.

Update an environment variable group (e.g. rename it).

Delete an environment variable group. If the group is linked to services, confirm_destructive=true is required.

List variables in an env group.

Set variables in an env group. This is a bulk replace — provide all vars the group should have.

Reveal the plaintext value of a single env group variable (including secrets). Use only when absolutely required; output may be stored in logs/conversation history. The reveal is audit-logged.

Link a service to an env group so it inherits the group's variables.

Unlink a service from an env group.

List services linked to an env group. Set include_usage=true to return used/missing key details per linked service.

Get current resource usage metrics (CPU, memory) for a service.

Get historical resource usage metrics (CPU, memory, network, HTTP) for a service. Returns time-series data points. Use step to control granularity (higher = fewer data points, faster response).

List all projects in the workspace. Projects organize services into logical groups.

Create a new project to organize services into a logical group.

Get details of a project, including its services and environments.

Update a project's name or move it to a folder. Set folder_id to null to move to root.

Delete a project. Services within the project are not deleted but will be unlinked. Requires confirm_destructive=true.

List all project folders in the workspace. Folders organize projects into groups and can be nested (subfolders).

Create a new project folder. Optionally nest it inside another folder by providing parent_id. Max nesting depth is 3 levels.

Update a project folder's name or move it to a different parent folder.

Delete a project folder. Sub-folders are cascade deleted. Projects in the folder are moved to root (unassigned).

List environments (e.g. staging, production) for a project.

Create a new environment within a project (e.g. staging, preview).

Update an environment's properties (e.g. rename it).

Delete an environment from a project. If the environment has services assigned, confirm_destructive=true is required.

List GitHub repositories accessible to the connected GitHub account.

List branches for a GitHub repository.

List GitHub Actions workflows for a repository. Use workflow names from this list when setting deploy gate allowlists.

List GitHub Actions workflows for a service's configured repository. Uses service-scoped API lookup.

Get GitHub webhook installation status for a service (installed, missing, or permission_denied), including repair eligibility.

Repair (create or update) the GitHub webhook for a service's repository so RailPush receives push and workflow_run events.

Get deploy-event webhook configuration for a service, including enabled status, selected events, and whether a secret is configured.

Enable/disable and configure deploy-event webhook delivery for a service.

Send a signed test payload (`deploy.test`) to the configured service event webhook endpoint.

List available verified service templates with optional category/query filters.

Get full template details including resource topology.

Deploy a template stack (services and optional managed datastores) into a workspace.

List your support tickets with optional filters (status/category/component/tags/query).

Create a new support ticket. Supports structured category, component, and tags for better triage.

Get details and message history of a support ticket.

Add a reply message to an existing support ticket.

Replace tags on one of your support tickets.

List support tickets across all users (ops/admin). Filter by status/category/priority and search by subject/email/workspace.

Advanced search for ops tickets with metadata (total + facets), including date filters and sorting.

Get full ticket details including all messages and internal notes (ops/admin). Shows creator email, workspace name, and internal messages that customers cannot see.

Update a support ticket's status, priority, category, or assignment (ops/admin). Use this to close, solve, or triage tickets.

Bulk update multiple ops tickets at once (status/priority/category), with an optional customer-visible reason message.

Reply to a support ticket as ops/admin. Can post public replies visible to the customer, or internal notes only visible to ops staff.

Get billing overview including current plan, usage, credits, and payment method status.

List all domains registered through RailPush's domain registrar.

Overview

What is Railpush?

Railpush is an MCP (Model Context Protocol) server that provides 218 tools for deploying and managing cloud infrastructure on a PaaS platform. It connects Claude, Cursor, Windsurf, or any MCP client to services, databases, deployments, and more.

How to use Railpush?

Use the hosted server (recommended) by configuring a URL https://mcp.railpush.com/mcp with an Authorization: Bearer YOUR_API_KEY header. For local/air-gapped setups, run a Node.js stdio server with the RAILPUSH_API_KEY and RAILPUSH_API_URL environment variables. Add it to Claude Code with claude mcp add railpush --url https://mcp.railpush.com/mcp --header "Authorization: Bearer YOUR_API_KEY" or paste the JSON config into Cursor.

Key features of Railpush

  • 35+ tools for creating, deploying, and scaling web services
  • 15+ deployment tools including rollback and blue-green
  • 20+ PostgreSQL database management tools
  • Environment variable management with bulk operations
  • Custom domains and DNS record management
  • Infrastructure-as-Code with YAML blueprints

Use cases of Railpush

  • Deploy a full-stack app by asking the agent to create a service, add a database, set env vars, and trigger a build
  • Roll back a broken deployment or run a blue-green deploy with a single command
  • Manage multiple databases (PostgreSQL, MySQL, MongoDB, Redis) through natural language
  • Configure autoscaling policies and monitor logs and metrics

FAQ from Railpush

What exactly does Railpush do?

It gives an AI agent full control of cloud infrastructure via 218 MCP tools, covering services, databases, deployments, networking, and billing on the Railpush PaaS.

Do I need to install anything to use Railpush?

For the hosted server, no installation is needed—just configure the URL and API key. For local stdio setups, you need Node.js and must build the server from source.

Where does my data live?

All infrastructure and data (services, databases, logs, etc.) live on the Railpush platform. The MCP server acts as a bridge between your AI client and that platform.

What transports does Railpush support?

It supports Streamable HTTP (recommended) at https://mcp.railpush.com/mcp and legacy SSE at https://mcp.railpush.com/sse.

How do I authenticate with Railpush?

All requests require a Railpush API key, obtainable from the dashboard (Settings → API Keys). Pass it as a Bearer token in the HTTP header for hosted mode, or as the RAILPUSH_API_KEY environment variable for local mode.

Frequently asked questions

What exactly does Railpush do?

It gives an AI agent full control of cloud infrastructure via 218 MCP tools, covering services, databases, deployments, networking, and billing on the Railpush PaaS.

Do I need to install anything to use Railpush?

For the hosted server, no installation is needed—just configure the URL and API key. For local stdio setups, you need Node.js and must build the server from source.

Where does my data live?

All infrastructure and data (services, databases, logs, etc.) live on the Railpush platform. The MCP server acts as a bridge between your AI client and that platform.

What transports does Railpush support?

It supports Streamable HTTP (recommended) at `https://mcp.railpush.com/mcp` and legacy SSE at `https://mcp.railpush.com/sse`.

How do I authenticate with Railpush?

All requests require a Railpush API key, obtainable from the dashboard (Settings → API Keys). Pass it as a Bearer token in the HTTP header for hosted mode, or as the `RAILPUSH_API_KEY` environment variable for local mode.

Comments

More Databases MCP servers