Railway MCP Server (Experimental)
A Model Context Protocol (MCP) server for interacting with your Railway account. This is a local MCP server provides a set of opinionated workflows and tools for managing Railway resources.
[!IMPORTANT]This is an experimental project (like really experimental). You should expect bugs and missing features. The MCP server doesn't include destructive actions by design, that said, you should still keep an eye on which tools and commands are being executed.
Prerequisites
The Railway CLI is required for this server to function.
Installation
Cursor
Add the following configuration to .cursor/mcp.json
{
"mcpServers": {
"railway-mcp-server": {
"command": "npx",
"args": ["-y", "@railway/mcp-server"],
}
}
}
VS Code:
Add the following configuration to .vscode/mcp.json
{
"servers": {
"railway-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@railway/mcp-server"],
}
}
}
Example Usage
Creating a new project, deploying it, and generating a domain
Create a Next.js app in this directory and deploy it to Railway. Make sure to also assign it a domain. Since we're starting from scratch, there is no need to pull information about the deployment or build for now
Deploy a from a template (database, queue, etc.). Based on your prompt, the appropriate template will be selected and deployed. In case of multiple templates, the agent will pick the most appropriate one. Writing a detailed prompt will lead to a better selection. Check out all of the available templates.
Deploy a Postgres database
Deploy a single node Clickhouse database
Pulling environment variables
I would like to pull environment variables for my project and save them in a .env file
Creating a new environment and setting it as the current linked environment
I would like to create a new development environment called `development` where I can test my changes. This environment should duplicate production. Once the environment is created, I want to set it as my current linked environment
Available MCP Tools
The Railway MCP Server provides the following tools for managing your Railway infrastructure:
check-railway-status- Checks that the Railway CLI is installed and that the user is logged in- Project Management
list-projects- List all Railway projectscreate-project-and-link- Create a new project and link it to the current directory
- Service Management
list-services- List all services in a projectlink-service- Link a service to the current directorydeploy- Deploy a servicedeploy-template- Deploy a template from the Railway Template Library
- Environment Management
create-environment- Create a new environmentlink-environment- Link an environment to the current directory
- Configuration & Variables
list-variables- List environment variablesset-variables- Set environment variablesgenerate-domain- Generate a railway.app domain for a project
- Monitoring & Logs
get-logs- Retrieve build or deployment logs for a service
Development
Prerequisites
- Node.js >= 20.0.0
- pnpm >= 10.14.0
Clone the repository
git clone https://github.com/railwayapp/railway-mcp-server.git cd railway-mcp-serverInstall dependencies
pnpm installStart the development server
pnpm devThis command will generate a build under
dist/and automatically rebuild after making changes.Configure your MCP client
Add the following configuration to your MCP client (e.g., Cursor, VSCode) and replace
/path/to/railway-mcp-server/dist/index.jswith the actual path to your built server.Cursor:
.cursor/mcp.json{ "mcpServers": { "railway-mcp-server": { "command": "node", "args": ["/path/to/railway-mcp-server/dist/index.js"], } } }VSCode:
.vscode/mcp.json{ "servers": { "railway-mcp-server": { "type": "stdio", "command": "node", "args": ["/path/to/railway-mcp-server/dist/index.js"], } } }