railway-mcp

railway-mcp

Let Claude and Cursor manage your Railway infrastructure through natural language. Deploy, configure, and monitor - autonomously and safely.

jason-tan-swe

Cloud Platforms
Developer Tools
Virtualization
Visit Server

Tools

domain_delete

[API] Delete a domain from a service ⚡️ Best for: ✓ Removing unused domains ✓ Cleaning up configurations ✓ Domain management ⚠️ Not for: × Temporary domain disabling × Port updates (use domain_update) → Prerequisites: domain_list → Alternatives: domain_update → Related: service_update

database_list_types

[QUERY] List all available database types that can be deployed using Railway's official templates ⚡️ Best for: ✓ Discovering supported database types ✓ Planning database deployments ✓ Checking template availability ⚠️ Not for: × Listing existing databases × Getting database connection details → Alternatives: service_create_from_image → Next steps: database_deploy → Related: database_deploy, service_create_from_image

domain_update

[API] Update a domain's configuration ⚡️ Best for: ✓ Changing target ports ✓ Updating domain settings ✓ Reconfiguring endpoints ⚠️ Not for: × Changing domain names (delete and recreate instead) × TCP proxy configuration → Prerequisites: domain_list → Next steps: domain_list → Related: service_update

database_deploy_from_template

[WORKFLOW] Deploy a pre-configured database using Railway's official templates and best practices ⚡️ Best for: ✓ Standard database deployments ✓ Quick setup with security defaults ✓ Common database types (PostgreSQL, MongoDB, Redis) ⚠️ Not for: × Custom database versions × Complex configurations × Unsupported database types → Prerequisites: database_list_types → Alternatives: service_create_from_image → Next steps: variable_list, service_info → Related: volume_create, service_update

deployment_list

[API] List recent deployments for a service in a specific environment ⚡️ Best for: ✓ Viewing deployment history ✓ Monitoring service updates → Prerequisites: service_list → Next steps: deployment_logs, deployment_trigger → Related: service_info, service_restart

deployment_trigger

[API] Trigger a new deployment for a service ⚡️ Best for: ✓ Deploying code changes ✓ Applying configuration updates ✓ Rolling back to previous states ⚠️ Not for: × Restarting services (use service_restart) × Updating service config (use service_update) × Database changes → Prerequisites: service_list → Alternatives: service_restart → Next steps: deployment_logs, deployment_status → Related: variable_set, service_update

deployment_logs

[API] Get logs for a specific deployment ⚡️ Best for: ✓ Debugging deployment issues ✓ Monitoring deployment progress ✓ Checking build output ⚠️ Not for: × Service runtime logs × Database logs → Prerequisites: deployment_list → Next steps: deployment_status → Related: service_info, deployment_trigger

deployment_status

[API] Check the current status of a deployment ⚡️ Best for: ✓ Monitoring deployment progress ✓ Verifying successful deployments ✓ Checking for deployment failures ⚠️ Not for: × Service runtime logs × Database logs → Prerequisites: deployment_list, deployment_trigger → Next steps: deployment_logs → Related: service_info, service_restart, deployment_wait

domain_list

[API] List all domains (both service and custom) for a service ⚡️ Best for: ✓ Viewing service endpoints ✓ Managing domain configurations ✓ Auditing domain settings → Prerequisites: service_list → Next steps: domain_create, domain_update → Related: service_info, tcp_proxy_list

domain_create

[API] Create a new domain for a service ⚡️ Best for: ✓ Setting up custom domains ✓ Configuring service endpoints ✓ Adding HTTPS endpoints ⚠️ Not for: × TCP proxy setup (use tcp_proxy_create) × Internal service communication → Prerequisites: service_list, domain_check → Alternatives: tcp_proxy_create → Next steps: domain_update → Related: service_info, domain_list

domain_check

[API] Check if a domain is available for use ⚡️ Best for: ✓ Validating domain availability ✓ Pre-deployment checks ✓ Domain planning → Next steps: domain_create → Related: domain_list

project_list

[API] List all projects in your Railway account ⚡️ Best for: ✓ Getting an overview of all projects ✓ Finding project IDs ✓ Project discovery and management → Next steps: project_info, service_list → Related: project_create, project_delete

project_info

[API] Get detailed information about a specific Railway project ⚡️ Best for: ✓ Viewing project details and status ✓ Checking environments and services ✓ Project configuration review → Prerequisites: project_list → Next steps: service_list, variable_list → Related: project_update, project_delete

project_create

[API] Create a new Railway project ⚡️ Best for: ✓ Starting new applications ✓ Setting up development environments ✓ Creating project spaces ⚠️ Not for: × Duplicating existing projects → Next steps: service_create_from_repo, service_create_from_image, database_deploy → Related: project_delete, project_update

project_delete

[API] Delete a Railway project and all its resources ⚡️ Best for: ✓ Removing unused projects ✓ Cleaning up test projects ⚠️ Not for: × Temporary project deactivation × Service-level cleanup (use service_delete) → Prerequisites: project_list, project_info → Alternatives: service_delete → Related: project_create

project_environments

List all environments in a project

service_list

[API] List all services in a specific Railway project ⚡️ Best for: ✓ Getting an overview of a project's services ✓ Finding service IDs ✓ Checking service status → Prerequisites: project_list → Next steps: service_info, deployment_list → Related: project_info, variable_list

service_info

[API] Get detailed information about a specific service ⚡️ Best for: ✓ Viewing service configuration and status ✓ Checking deployment details ✓ Monitoring service health → Prerequisites: service_list → Next steps: deployment_list, variable_list → Related: service_update, deployment_trigger

service_create_from_repo

[API] Create a new service from a GitHub repository ⚡️ Best for: ✓ Deploying applications from source code ✓ Services that need build processes ✓ GitHub-hosted projects ⚠️ Not for: × Pre-built Docker images (use service_create_from_image) × Database deployments (use database_deploy) × Static file hosting → Prerequisites: project_list → Alternatives: service_create_from_image, database_deploy → Next steps: variable_set, service_update → Related: deployment_trigger, service_info

service_create_from_image

[API] Create a new service from a Docker image ⚡️ Best for: ✓ Custom database deployments ✓ Pre-built container deployments ✓ Specific version requirements ⚠️ Not for: × Standard database deployments (use database_deploy) × GitHub repository deployments (use service_create_from_repo) × Services needing build process → Prerequisites: project_list → Alternatives: database_deploy, service_create_from_repo → Next steps: variable_set, service_update, tcp_proxy_create → Related: volume_create, deployment_trigger

variable_delete

[API] Delete a variable for a service in a specific environment ⚡️ Best for: ✓ Removing unused configuration ✓ Security cleanup ✓ Configuration management ⚠️ Not for: × Temporary variable disabling × Bulk variable removal → Prerequisites: service_list → Next steps: deployment_trigger, service_restart → Related: variable_list, variable_set

service_update

[API] Update a service's configuration ⚡️ Best for: ✓ Changing service settings ✓ Updating resource limits ✓ Modifying deployment configuration ⚠️ Not for: × Updating environment variables (use variable_set) × Restarting services (use service_restart) × Triggering new deployments (use deployment_trigger) → Prerequisites: service_list, service_info → Next steps: deployment_trigger → Related: service_restart, variable_set

service_delete

[API] Delete a service from a project ⚡️ Best for: ✓ Removing unused services ✓ Cleaning up test services ✓ Project reorganization ⚠️ Not for: × Temporary service stoppage (use service_restart) × Updating service configuration (use service_update) → Prerequisites: service_list, service_info → Alternatives: service_restart → Related: project_delete

service_restart

[API] Restart a service in a specific environment ⚡️ Best for: ✓ Applying configuration changes ✓ Clearing service state ✓ Resolving runtime issues ⚠️ Not for: × Deploying new code (use deployment_trigger) × Updating service config (use service_update) × Long-term service stoppage (use service_delete) → Prerequisites: service_list → Alternatives: deployment_trigger → Related: service_info, deployment_logs

tcp_proxy_list

[API] List all TCP proxies for a service in a specific environment ⚡️ Best for: ✓ Viewing TCP proxy configurations ✓ Managing external access ✓ Auditing service endpoints → Prerequisites: service_list → Next steps: tcp_proxy_create → Related: domain_list, service_info

tcp_proxy_create

[API] Create a new TCP proxy for a service ⚡️ Best for: ✓ Setting up database access ✓ Configuring external connections ✓ Exposing TCP services ⚠️ Not for: × HTTP/HTTPS endpoints (use domain_create) × Internal service communication → Prerequisites: service_list → Alternatives: domain_create → Next steps: tcp_proxy_list → Related: service_info, service_update

tcp_proxy_delete

[API] Delete a TCP proxy ⚡️ Best for: ✓ Removing unused proxies ✓ Security management ✓ Endpoint cleanup ⚠️ Not for: × Temporary proxy disabling × Port updates → Prerequisites: tcp_proxy_list → Related: service_update

list_service_variables

[API] List all environment variables for a service ⚡️ Best for: ✓ Viewing service configuration ✓ Auditing environment variables ✓ Checking connection strings → Prerequisites: service_list → Next steps: variable_set, variable_delete → Related: service_info, variable_bulk_set

variable_set

[API] Create or update an environment variable ⚡️ Best for: ✓ Setting configuration values ✓ Updating connection strings ✓ Managing service secrets ⚠️ Not for: × Bulk variable updates (use variable_bulk_set) × Temporary configuration changes → Prerequisites: service_list → Alternatives: variable_bulk_set → Next steps: deployment_trigger, service_restart → Related: variable_list, variable_delete

variable_bulk_set

[WORKFLOW] Create or update multiple environment variables at once ⚡️ Best for: ✓ Migrating configuration between services ✓ Initial service setup ✓ Bulk configuration updates ⚠️ Not for: × Single variable updates (use variable_set) × Temporary configuration changes → Prerequisites: service_list → Alternatives: variable_set → Next steps: deployment_trigger, service_restart → Related: variable_list, service_update

variable_copy

[WORKFLOW] Copy variables from one environment to another ⚡️ Best for: ✓ Environment migration ✓ Configuration sharing ✓ Environment duplication ⚠️ Not for: × Single variable updates (use variable_set) × Temporary configuration changes → Prerequisites: service_list → Alternatives: variable_set → Next steps: deployment_trigger, service_restart → Related: variable_list, service_update

configure_api_token

[UTILITY] Configure the Railway API token for authentication (only needed if not set in environment variables) ⚡️ Best for: ✓ Initial setup ✓ Token updates ✓ Authentication configuration ⚠️ Not for: × Project configuration × Service settings × Environment variables → Next steps: project_list, service_list → Related: project_create

volume_list

[API] List all volumes in a project ⚡️ Best for: ✓ Viewing persistent storage configurations ✓ Managing data volumes ✓ Auditing storage usage → Prerequisites: project_list → Next steps: volume_create → Related: service_info, database_deploy

volume_create

[API] Create a new persistent volume for a service ⚡️ Best for: ✓ Setting up database storage ✓ Configuring persistent data ✓ Adding file storage ⚠️ Not for: × Temporary storage needs × Static file hosting × Memory caching → Prerequisites: service_list → Next steps: volume_list → Related: service_update, database_deploy

volume_update

Update a volume's properties

volume_delete

[API] Delete a volume from a service ⚡️ Best for: ✓ Removing unused storage ✓ Storage cleanup ✓ Resource management ⚠️ Not for: × Temporary data removal × Data backup (use volume_backup first) → Prerequisites: volume_list → Related: service_update

README

Railway MCP Server

<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://avatars.githubusercontent.com/u/66716858?s=200&v=4" /> <source media="(prefers-color-scheme: light)" srcset="https://avatars.githubusercontent.com/u/66716858?s=200&v=4" /> <img alt="Railway" src="https://avatars.githubusercontent.com/u/66716858?s=200&v=4" height="40" /> </picture>    <picture> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/38db1bcd-50df-4a49-a106-1b5afd924cb2" /> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/82603097-07c9-42bb-9cbc-fb8f03560926" /> <img alt="MCP" src="https://github.com/user-attachments/assets/82603097-07c9-42bb-9cbc-fb8f03560926" height="40" /> </picture> </p>

<p align="center"> <strong> Let Claude and other MCP clients manage your Railway.app infrastructure. Deploy services, manage variables, and monitor deployments - all through natural language. </strong> </p> <p align="center"> <table align="center"> <th align="center"> Please Note: This is under development and not all features are available yet. 🚧 </th> </table> </p>

<a href="https://glama.ai/mcp/servers/lwn74iwigz"> <img width="380" height="200" src="https://glama.ai/mcp/servers/lwn74iwigz/badge" alt="railway-mcp MCP server" /> </a>

A Model Context Protocol (MCP) server for integrating with the Railway.app platform.

smithery badge

Table of Contents

<p align="center"> <a href="#features">Features</a> • <a href="#installation">Installation</a> • <a href="#available-tools">Available Tools</a> • <a href="#example-workflows">Example Workflows</a> • <a href="#security-considerations">Security</a> • <a href="#troubleshooting">Troubleshooting</a> • <a href="#contributing">Contributing</a> </p>

Features

Status Meaning
Complete
🚧🔨⏳ Being Built or Needs Testing
Not Built at the moment
  • ✅ Authentication with Railway API tokens
  • ✅ Project management (list, info, delete)
  • ✅ Deployment management (list, restart)
  • ✅ Service management (create from GitHub repo or Docker image, list)
  • ✅ Variable management (list, create/update, delete)
  • ✅ Service Network management
  • ✅ Volume management
  • ❌ Full support for all templates
    • 🚧🔨⏳ Database template support
    • Automatic database and networking workflows
  • 🚧🔨⏳ Most commonly used workflows
  • ❌ Automatic GitHub repository linking for services

Installation

Prerequisites

  • Node.js 18+ (for built-in fetch API support)
  • An active Railway account
  • A Railway API token (create one at https://railway.app/account/tokens)

Quick Start

This MCP server is designed to work with MCP Clients like:

  • Claude for Desktop | ✅ Battle-Tested
  • Cursor | ✅ Needs Testing
  • Cline | 🚧🔨⏳ Needs Testing
  • Windsurf | 🚧🔨⏳ Needs Testing
  • Other MCP Clients | 🚧🔨⏳ Needs Testing

Installing via Smithery

To install railway-mcp automatically, we recommend using Smithery

Claude Desktop

npx -y @smithery/cli install @jason-tan-swe/railway-mcp --client claude

Cursor

npx -y @smithery/cli@latest run @jason-tan-swe/railway-mcp --config "{\"railwayApiToken\":\"token\"}"

<details> <summary> <h3>Manual Installation For Cursor</h3></summary>

  1. Head to your cursor settings and find the MCP section

  2. Click 'Add new MCP server'

  3. Name it however, you like, we recommend railway-mcp for better clarity

  4. Paste this command into the 'Command' section, where <RAILWAY_API_TOKEN> is your accounts Railway token:

npx -y @jasontanswe/railway-mcp <RAILWAY_API_TOKEN>

</details>

<details>

<summary><h3>Manual Installation For Claude</h3></summary>

  1. Create or edit your Claude for Desktop config file:

    • macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Add the railway-mcp server to your configuration with your API token:

   "railway": {
      "command": "npx",
      "args": ["-y", "@jasontanswe/railway-mcp"],
      "env": {
         "RAILWAY_API_TOKEN": "your-railway-api-token-here"
      }
   }

When you have multiple MCP servers, your config file might look like this:

{
  "mcpServers": {
    // ... All of your existing MCP servers ...

    // Add the railway-mcp server to your configuration with your API token
    "railway": {
      "command": "npx",
      "args": ["-y", "@jasontanswe/railway-mcp"],
      "env": {
        "RAILWAY_API_TOKEN": "your-railway-api-token-here"
      }
    }
  }
}
  1. Restart Claude for Desktop

  2. You can now start using Railway tools directly in Claude. For example:

Please list all my Railway projects
  1. Alternatively, if you don't want to add your token to the configuration file, you can configure it within Claude using:
Please configure the Railway API with my token: {YOUR_API_TOKEN_HERE}

</details>

Recommendations and Other Information

This server best combines with MCP-clients that have access to terminal or with Git (Cursor, Windsurf). Using this MCP with others is recommended as railway-mcp orchestrates containers and streamlines your deployment process seamlessly.

Recommended MCP servers to combine with

For Claude

  • Out of the box, Claude does not have terminal access, so it cannot trigger deployments as it will not be able to get the latest commit.
  • Spinning up different services and monitoring them are the best use case with Claude.

For Cursor

  • Use with GitHub MCP or have the repository already setup on GitHub and cloned locally on your machine to leverage full integration with railway-mcp.
  • When Cursor makes a change, it may forget to push it's changes to GitHub causing it to try and deploy a commit that Railway cannot pull.
    • SOLUTION: Always ask or include somewhere in your prompt: Have you pushed our changes to GitHub yet?

Security Considerations

  • Railway API tokens provide full access to your account. Keep them secure.
  • When using the environment variable method, your token is stored in the Claude Desktop configuration file.
  • Sensitive variable values are automatically masked when displayed.
  • All API calls use HTTPS for secure communication.
  • The server's memory-only token storage means your token is never written to disk outside of the configuration file.

Troubleshooting

If you encounter issues:

  1. Token Authentication Issues

    • Ensure your API token is valid and has the necessary permissions
    • If using the environment variable method, check that the token is correctly formatted in the config file
    • Try using the configure tool directly in Claude if the environment token isn't working
  2. Server Connection Issues

    • Check that you've installed the latest version of the server
    • Verify that Node.js version 18 or higher is installed
    • Restart Claude for Desktop after making changes to the configuration
  3. API Errors

    • Verify that you're using correct project, environment, and service IDs
    • Check Railway's status page for any service disruptions
    • Railway API has rate limits - avoid making too many requests in a short period

Contributing

We welcome contributions from the community! Please see our Contributing Guidelines for details on how to get started, development guidelines, and debugging information.

</details>

Available Tools

<details> <summary>View All</summary>

Authentication

  • configure - Set your Railway API token (only needed if not provided in environment variables)

Projects

  • project-list - List all projects in your account
  • project-info - Get detailed information about a specific project
  • project-create - Create a new project with optional team ID
  • project-delete - Delete a project
  • project-environments - List all environments in a project

Services

  • service-list - List all services in a specific project
  • service-info - Get detailed information about a specific service
  • service-create-from-repo - Create a new service from a GitHub repository
  • service-create-from-image - Create a new service from a Docker image
  • service-delete - Delete a service from a project
  • service-restart - Restart a service in a specific environment
  • service-update - Update service configuration (build command, start command, etc.) | 🚧 Needs Testing

Deployments

  • deployment-list - List recent deployments for a service
  • deployment-trigger - Trigger a new deployment for a service
  • deployment-logs - Get logs for a specific deployment
  • deployment-health-check - Check the health/status of a deployment

Variables

  • variable-list - List variables for a service or environment
  • variable-set - Create or update a variable
  • variable-delete - Delete a variable
  • variable-bulk-set - Bulk update variables for a service | 🚧 Needs Testing
  • variable-copy - Copy variables between environments | 🚧 Needs Testing

Databases

  • database-list-types - List all available database types that can be deployed
  • database-deploy - Deploy a new database service </details>

<details> <summary>Example Workflows</summary>

Setting up a new service

  1. List projects to get the project ID
  2. Create a new service from a template
  3. Add environment variables
  4. View the service deployment

Managing environment variables

  1. List projects to find your project ID
  2. List variables to see what's currently set
  3. Create or update variables as needed
  4. Delete any obsolete variables

</details>

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
MCP Package Docs Server

MCP Package Docs Server

Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.

Featured
Local
TypeScript
Claude Code MCP

Claude Code MCP

An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Featured
Local
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

Featured
Local
JavaScript
contentful-mcp

contentful-mcp

Update, create, delete content, content-models and assets in your Contentful Space

Featured
TypeScript
Linear MCP Server

Linear MCP Server

Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.

Featured
JavaScript
Supabase MCP Server

Supabase MCP Server

A Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.

Featured
JavaScript
mermaid-mcp-server

mermaid-mcp-server

A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.

Featured
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP server to provide Jira Tickets information to AI coding agents like Cursor

Featured
TypeScript