Railway MCP Server
Allows creating services in Railway projects from Docker images.
Allows creating services in Railway projects from GitHub repositories.
Provides full access to Railway.app infrastructure, enabling management of projects, services, deployments, environments, variables, domains, logs, and volumes through natural conversation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Railway MCP Server list my projects"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Railway MCP Server
A Model Context Protocol (MCP) server that gives Claude (and other MCP-compatible AI tools) full access to your Railway.app infrastructure. Deploy, manage services, check logs, configure environment variables — all through natural conversation.
Supports multiple workspaces — use one token per workspace and the server merges results across all of them.
Quick Start
1. Get Railway API Tokens
Go to railway.com/account/tokens and create a workspace-scoped token for each workspace you want to access. Tokens scoped to "No workspace" can only see account-level info, not projects.
2. Install & Build
cd railway-mcp-server
npm install
npm run build3. Configure in Claude Desktop
Open your Claude Desktop config file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Multiple workspaces (recommended)
Use named env vars — one per workspace:
{
"mcpServers": {
"railway": {
"command": "node",
"args": ["/FULL/PATH/TO/railway-mcp-server/build/index.js"],
"env": {
"RAILWAY_TOKEN_MYCOMPANY": "token-scoped-to-company-workspace",
"RAILWAY_TOKEN_PERSONAL": "token-scoped-to-personal-workspace"
}
}
}
}The label after RAILWAY_TOKEN_ becomes the workspace name in results (e.g. mycompany, personal).
Single workspace
If you only need one workspace, you can use the simpler format:
{
"mcpServers": {
"railway": {
"command": "node",
"args": ["/FULL/PATH/TO/railway-mcp-server/build/index.js"],
"env": {
"RAILWAY_API_TOKEN": "your-token-here"
}
}
}
}All token formats supported
Env var | Behavior |
| Named tokens — one per workspace (recommended) |
| Comma-separated list of tokens |
| Single token (backwards compatible) |
4. Restart Claude Desktop
The Railway tools will appear automatically.
Related MCP server: Railway MCP Server
Available Tools (30 total)
Teams
Tool | Description |
| List all teams/organizations you belong to |
Projects
Tool | Description |
| List ALL projects across all workspaces |
| List only your personal projects |
| List projects for a specific team |
| Get project details (services, environments) |
| Create a new project |
| Delete a project |
Services
Tool | Description |
| List services in a project |
| Create from GitHub repo or Docker image |
| Remove a service |
Deployments
Tool | Description |
| List deployments for a service |
| Get deployment status and details |
| Trigger a new deployment |
| Redeploy the latest version |
| Restart a running deployment |
| Cancel/remove a deployment |
Environments
Tool | Description |
| List environments (production, staging, etc.) |
| Create a new environment |
| Remove an environment |
Variables
Tool | Description |
| Read environment variables |
| Set one or more variables (upsert) |
| Delete a variable |
Domains
Tool | Description |
| Generate a *.up.railway.app domain |
| Attach your own domain |
| Remove the Railway domain |
Logs
Tool | Description |
| Runtime/application logs |
| Build output logs |
Volumes
Tool | Description |
| Create persistent storage for a service |
Advanced
Tool | Description |
| Run any GraphQL query/mutation directly |
| Discover all available API operations |
How Multi-Workspace Works
When you configure multiple tokens, the server handles routing automatically:
Listing projects: Queries all workspaces in parallel and merges results, labeled by workspace name.
ID-based lookups (get project, deploy, check logs, etc.): Tries each token until one succeeds. Since Railway IDs are globally unique, it finds the right workspace automatically.
Create operations: Uses the first configured token by default.
Example Usage (in Claude)
"List my Railway projects"
"Deploy my-app service to production"
"Show me the logs for the latest deployment of api-server"
"Set DATABASE_URL on my backend service in staging"
"Create a new project called 'my-saas' with a Postgres database"
Development
npm run dev # Watch mode — recompiles on changes
npm run build # One-time build
npm start # Run the serverHow It Works
This server communicates with Railway's public GraphQL API at backboard.railway.com/graphql/v2. It runs locally on your machine via STDIO transport, so your API tokens never leave your computer.
The raw_graphql tool is an escape hatch — if Railway adds new API operations before this server is updated, you (or Claude) can still access them by writing the GraphQL directly.
License
MIT
Available Tools
30 toolscreate_custom_domainC
Attach a custom domain to a service
Inputs: domain (required), serviceId (required), environmentId (required).
create_environmentB
Create a new environment in a project
Inputs: name (required), projectId (required).
create_projectB
Create a new Railway project
Inputs: name (required), description.
create_serviceB
Create a new service in a project (from GitHub repo or Docker image)
Inputs: name (required), projectId (required), repo, image.
create_service_domainA
Generate a Railway-provided domain (*.up.railway.app) for a service
Inputs: serviceId (required), environmentId (required).
create_volumeA
Create a persistent volume attached to a service
Inputs: mountPath (required), projectId (required), serviceId (required), environmentId (required).
delete_environmentA
Delete an environment from a project
Inputs: environmentId (required).
delete_projectA
Delete a Railway project (irreversible!)
Inputs: projectId (required).
delete_serviceB
Delete a service from a project
Inputs: serviceId (required).
delete_service_domainA
Remove the Railway-provided domain from a service
Inputs: serviceId (required), environmentId (required).
delete_variableB
Delete a single environment variable
Inputs: name (required), projectId (required), serviceId (required), environmentId (required).
deploy_serviceC
Trigger a new deployment for a service
Inputs: serviceId (required), environmentId (required).
get_build_logsB
Get build logs for a deployment
Inputs: deploymentId (required).
get_deploymentA
Get details of a specific deployment
Inputs: deploymentId (required).
get_deployment_logsA
Get runtime/application logs for a deployment
Inputs: deploymentId (required), limit.
get_projectA
Get details of a specific Railway project
Inputs: projectId (required).
get_variablesB
Get environment variables for a service
Inputs: projectId (required), environmentId (required), serviceId.
introspect_schemaA
Fetch the full Railway GraphQL schema. Useful for discovering available operations beyond the built-in tools.
Inputs: no named parameters.
list_deploymentsB
List deployments for a service in an environment
Inputs: projectId (required), serviceId (required), environmentId (required).
list_environmentsA
List all environments in a project
Inputs: projectId (required).
list_personal_projectsA
List only your personal Railway projects
Inputs: no named parameters.
list_projectsA
List ALL Railway projects — both personal and from all teams/orgs. Returns projects grouped by personal vs each team.
Inputs: no named parameters.
list_servicesA
List all services in a Railway project
Inputs: projectId (required).
list_team_projectsA
List projects for a specific team/organization
Inputs: teamId (required).
list_teamsA
List all teams/organizations you belong to
Inputs: no named parameters.
raw_graphqlA
Execute an arbitrary GraphQL query/mutation against Railway's API. Use this for operations not covered by other tools.
Inputs: query (required), variables.
redeploy_serviceB
Redeploy the latest deployment of a service
Inputs: serviceId (required), environmentId (required).
remove_deploymentB
Remove/cancel a specific deployment
Inputs: deploymentId (required).
restart_deploymentB
Restart a specific deployment
Inputs: deploymentId (required).
set_variablesA
Set one or more environment variables (upsert)
Inputs: projectId (required), serviceId (required), variables (required), environmentId (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 30 tools
Most tools target distinct resources/actions, but a few overlap: list_projects/personal/team_projects and deploy/redeploy/restart could cause selection errors. Descriptions help clarify, but boundaries are not razor-sharp.
Uses mostly verb_noun (list_*, create_*, delete_*) but 'remove_deployment' breaks delete_* pattern, and 'redeploy_service'/'deploy_service' are closely named. Otherwise predictable.
30 tools is excessive for an MCP server, even for a comprehensive platform. Several tools (list_personal_projects, list_team_projects) could be folded into list_projects. The count weighs on agent tool selection.
Covers CRUD for projects, deployments, environments, variables, domains, logs, and volumes partially. Missing update operations for projects/services/environments, get_service, and volume list/delete. raw_graphql mitigates gaps but the built-in surface is incomplete.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
Hosted CallRail MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that integrates Claude with the Terraform Cloud API, allowing Claude to manage your Terraform infrastructure through natural conversation.6223MIT
- AlicenseNot gradedqualityDmaintenanceEnables comprehensive management of Railway infrastructure, including projects, services, variables, and deployments, directly through the Railway GraphQL API. It is designed to work as a remote service over HTTP, allowing seamless integration with cloud-based MCP clients like claude.ai.MIT
- AlicenseNot gradedqualityDmaintenanceUnofficial MCP server for Railway that enables managing Railway infrastructure through natural language, including projects, services, deployments, environments, variables, templates, domains, volumes, observability, integrations, networking, and workflows.83 npm2MIT
- FlicenseNot gradedqualityDmaintenanceA team-wide, remote MCP server that lets Claude operate Railway projects through natural language, with safety guardrails to prevent irreversible actions without human approval.-