|Docs

Railway MCP Server

The Railway MCP Server implements the Model Context Protocol (MCP). It lets AI assistants create projects, deploy templates, manage environments, pull variables, and redeploy services.

The server runs at mcp.railway.com. Connect to it in one of two ways:

  • Through the CLI (default). The railway mcp command connects your editor to mcp.railway.com through the Railway CLI, reusing your railway login credentials so no second authentication is required.
  • With OAuth. Editors that support OAuth connect directly to https://mcp.railway.com without the CLI.

Note: Connecting through the CLI requires CLI version 5.44.0 or later.

Quick start

Install the Railway CLI and configure agent skills, MCP, and authentication in one command. Select the options to generate the setup command:

curl -fsSL agents.railway.com | sh

If the CLI is already installed, skip the bootstrap and run:

railway setup agent          # connect through the CLI (default)
railway setup agent --oauth  # connect with OAuth

Read on for per-editor manual configuration, the available tool list, and security considerations.

Per-editor configuration

If you'd rather configure an editor manually, or want to inspect what railway mcp install writes, use the selector to switch between the CLI connection, OAuth, and running the server locally:

railway mcp install

Connects to the Railway MCP server through the CLI, reusing your Railway CLI login. This is the default.

Cursor

Run railway mcp install --agent cursor, or add the following to .cursor/mcp.json:

.cursor/mcp.json
{
  "mcpServers": {
    "railway": {
      "command": "railway",
      "args": ["mcp"]
    }
  }
}

VS Code

Add the following to .vscode/mcp.json and authenticate with railway login:

.vscode/mcp.json
{
  "servers": {
    "railway": {
      "type": "stdio",
      "command": "railway",
      "args": ["mcp"]
    }
  }
}

Claude Code

Run railway mcp install --agent claude-code, or:

claude mcp add railway railway mcp

Codex

Run railway mcp install --agent codex, or use the OpenAI Codex CLI:

codex mcp add railway -- railway mcp

GitHub Copilot CLI

Run railway mcp install --agent copilot, or add the following to ~/.copilot/mcp-config.json:

~/.copilot/mcp-config.json
{
  "mcpServers": {
    "railway": {
      "type": "local",
      "command": "railway",
      "args": ["mcp"],
      "tools": ["*"]
    }
  }
}

Factory Droid

Run railway mcp install --agent factory-droid, or install in Factory:

droid mcp add railway "railway mcp"

OpenCode

Run railway mcp install --agent opencode, or add the following to opencode.json:

opencode.json
{
  "mcp": {
    "railway": {
      "type": "local",
      "command": ["railway", "mcp"]
    }
  }
}

Windsurf

Windsurf only supports connecting with OAuth.

Cline

Cline only supports connecting with OAuth.

Devin

Devin only supports connecting with OAuth.

railway mcp install merges the Railway server entry into existing configs without removing other MCP servers. Re-run it any time to update.

Understanding MCP

The Model Context Protocol (MCP) defines a standard for how AI applications (hosts) can interact with external tools and data sources through a client-server architecture.

  • Hosts: Applications such as Cursor, VS Code, Claude Code, or Windsurf that connect to MCP servers.
  • Clients: The layer within hosts that maintains one-to-one connections with individual MCP servers.
  • Servers: Standalone programs (like the Railway MCP Server) that expose tools and workflows for managing external systems.

The Railway MCP server runs on Railway's infrastructure. The railway mcp command connects to it over stdio and attaches credentials from your railway login session to each request. Editors that support OAuth connect directly instead.

Prerequisites

Connecting to the Railway MCP server requires a Railway account. The default CLI connection also requires an installed Railway CLI and a railway login session so it can reuse those credentials. OAuth doesn't require the CLI.

Example usage

Use prompts that describe the Railway outcome you want the agent to produce.

  • Create and deploy a new app

    Create a Next.js app in this directory and deploy it to Railway.
    Also assign it a domain.
  • Deploy from a template

    Deploy a Postgres database
  • Pull environment variables

    Pull environment variables for my project and save them to a .env file
  • Debug a failing deployment (uses the railway-agent tool)

    Use the railway agent to figure out why my backend service is
    crashing on deploy
  • Redeploy a service

    Redeploy my api service in the production environment
  • Manage feature flags

    List feature flags for project <projectId>
    Set the checkout-v2 feature flag to true on project <projectId>

Available MCP tools

The Railway MCP Server exposes the following tools. Your AI assistant selects tools based on your request. Use railway-agent for multi-step operations.

  • Account
    • whoami
  • Projects
    • list-projects, create-project, list-services
  • Feature flags
    • list-feature-flags, get-feature-flag
    • set-feature-flag, delete-feature-flag (admin; destructive delete is marked at the protocol level)
  • Deployments
    • redeploy
    • accept-deploy: commit staged changes and deploy (destructive; clients prompt for confirmation)
  • Agent
    • railway-agent: hand a natural-language request to Railway's AI agent for multi-step operations like log analysis, debugging, and service configuration

Run the server locally

The CLI also ships an in-process MCP server for machines that can't reach mcp.railway.com, for example on egress-restricted networks. Start it with railway mcp local, or write the configuration for supported editors with railway mcp install --local. It talks directly to the Railway API using your CLI credentials, marks destructive tools with protocol-level hints, and returns a preview before requiring confirm: true.

The local server exposes a different tool set from mcp.railway.com:

Security considerations

The Railway MCP Server invokes Railway APIs on your behalf. Keep these points in mind:

  • CLI authentication. The railway mcp command reads and refreshes your railway login credentials. Editor configuration doesn't contain a long-lived Railway credential.
  • OAuth scoping. With OAuth, you choose which workspaces and projects the client can access. Tokens are short-lived and can be revoked from your Railway account settings.
  • Destructive actions are marked at the protocol level. Clients that respect these hints will prompt for confirmation.
  • Project tokens are not accepted. The server requires a user identity for billing and audit trails.

You should still:

  • Review actions requested by the LLM before approving them, especially destructive ones (redeploy, accept-deploy, railway-agent, and the local server's remove_service, delete_domain, remove_tcp_proxy, remove_bucket, and remove_volume).
  • Restrict access to ensure only trusted users can invoke the MCP server.
  • Avoid production risks by limiting usage to non-critical environments where possible.

Feature requests

Share feature requests on the Railway MCP Server Central Station post.