Railway MCP server for AI agents and assistants

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Railway MCP or direct API to inspect projects, manage services, track deployments, and review environments through natural language.

Railway logoRailway
Api KeyOauth2

Railway is a deployment platform for building, shipping, and scaling applications with managed infrastructure. It helps teams deploy faster with instant builds, automatic scaling, and simple project operations.

59 Tools

Try Railway now

Type what you want done — sign in and watch it run live in the Tool Router playground.

TOOL ROUTER PLAYGROUND
Railway
Try asking
TOOLS

Supported Tools

Every Railway action and event your agent gets out of the box.

Cancel Deployment

Cancel a Railway deployment that is queued or building, preventing that in-progress deployment from completing.

Collect Deployment Evidence

Collect a bounded, best-effort Railway deployment evidence bundle from live-validated deployment, snapshot, event, service-instance, log, and metric sources.

Commit Environment Changes

Commit existing staged changes for a Railway environment, completing a staged STAGE_TEMPLATE or create-environment workflow.

Configure Buckets and Private Network

Commit an explicit Railway patch for bucket creation, updates, or deletion and the environment private-network enabled state.

Create Domain

Create either a generated railway.

Create Environment

Create an empty Railway environment or clone an existing environment, with explicit initial-deployment and change-staging behavior.

Create Plugin

Creates a new plugin in Railway for the specified project.

Create Project

Create a Railway project in an accessible workspace and return its project and default-environment IDs.

Create Service

Create an empty, repository-backed, image-backed, or template-backed service in a Railway project.

Create Volume

Create a persistent Railway volume and optionally attach it to one service and environment.

Delete Deployment

Permanently delete a completed Railway deployment from deployment history and stop any remaining project usage from it.

Delete Domain

Permanently delete one generated Railway domain or custom domain by ID after explicit confirmation.

Delete Environment

Permanently delete one Railway environment and its deployments.

Delete Variable

Delete a Railway environment variable.

Delete Volume

Permanently delete a persistent volume and all its associated data from Railway.

Delete workspace

Delete a Railway workspace and all data associated with it.

Deploy Service

Start a Railway deployment from a service's already connected repository or image source, optionally at a repository commit SHA, and return the deployment ID.

Deploy Template

Deploy a complete Railway template configuration into a new project or an existing project environment.

Disconnect Discord account

Disconnects the authenticated user's Railway account from Discord.

Get Build Logs

Return a bounded, optionally filtered time window of build-phase logs for one Railway deployment.

Get Deployment

Return one deployment's status, timestamps, metadata, and rollback eligibility.

Get Deployment Logs

Retrieve runtime logs for a deployment.

Get Environment

Get details of a specific Railway environment by its ID, including service instances and deployment information.

Get GitHub PR Info

Get information for a GitHub pull request associated with a Railway service.

Get HTTP Logs

Return a bounded date-anchor window of HTTP request logs for one deployment, including request, response, timing, and routing fields.

Get HTTP Metrics

Return either HTTP request counts grouped by status code or p50/p90/p95/p99 response-time series for one Railway service and environment.

Get Resource Metrics

Return sampled CPU, memory, disk, network, backup, or volume measurements for selected Railway resources and time range.

Get Template

Return a Railway template's ID, name, and serialized configuration required for deterministic deployment.

Get User Kickback Earnings

Get the total kickback earnings for the authenticated Railway user.

List API Tokens

Retrieve all API tokens for the authenticated user from Railway.

List Deployments

List one page of Railway deployments filtered by project, environment, service, status, or deletion state.

List Domains

List Railway and custom domains for a service, including IDs, ports, DNS records, certificate state, and custom-domain verification token.

List Environment Patches

Retrieve all patches for a Railway environment using the GraphQL API.

List Environments

List one page of project environments with IDs, pull-request metadata, source environment, and staged-change count.

List GitHub Repos

Retrieve a list of GitHub repositories that Railway has access to.

List GitHub Writable Scopes

Retrieve the list of GitHub scopes the user has installed the installation to.

List Integration Auths

Retrieve all integration auths for the authenticated user from Railway.

List Notification Deliveries

Retrieve notification deliveries for the authenticated user.

List Projects

List one page of projects in an accessible Railway workspace with project and workspace identifiers.

List Services

List one page of service IDs and names in a project for service, deployment, logs, metrics, domain, and volume tools.

List Railway Trusted Domains

Fetch all trusted domains for the authenticated Railway workspace.

List Variables

Return Railway shared-environment or service variables.

List Volumes

List one page of persistent volume IDs and names in a project for storage configuration and metrics workflows.

Redeploy Deployment

Create a new Railway deployment with the selected deployment's exact code and build/deploy configuration, optionally using its previous image tag.

Rename Environment

Rename one environment without changing or deploying its configuration.

Replace Variables

Replace the entire Railway shared-environment or service variable collection with the supplied complete map.

Restart Deployment

Restart a running or crashed Railway deployment by reusing its existing image without rebuilding or creating a deployment from newer source.

Retry Domain Certificate

Read the corrected Railway domainStatus object, then retry custom-domain certificate issuance only when Railway reports certificateRetryable=true.

Rollback Deployment

Restore a previous Railway deployment's Docker image and custom variables as the active deployment without rebuilding.

Search Templates

Search one cursor-controlled page of Railway templates by text, verification state, and category.

Stage Template

Create all resources from a complete Railway template configuration in a new project or an existing project environment, but leave the resulting changes staged.

Stop Deployment

Stop a currently running Railway deployment without deleting the service or its deployment-history record.

Update Domain

Update the hostname or target port of one generated Railway domain, or update the target port of one custom domain.

Update Project

Update project settings and configuration on Railway.

Update Service

Update a service's name or icon without changing environment-specific deployment settings.

Update Service Instance

Update build/deploy settings for a service in a specific environment on Railway.

Update Volume

Rename a Railway volume without changing any volume instance.

Update Volume Instance

Update a Railway volume's environment-specific mount path, attached service, or state.

Upsert Variables

Create or update a non-empty map of Railway shared-environment or service variables without deleting variables omitted from the submitted map.

SETUP GUIDE

Connect Railway MCP Tool with your Agent

1

Install Composio

typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
Install the Composio SDK and your agent framework
2

Create a session with MCP enabled

typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["railway"],
  mcp: true,
});
Create a session scoped to Railway and read its MCP URL and headers
3

Connect your agent to the MCP server

typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List recent failed deployments in my Railway project",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
Pass the session's MCP URL and headers to your agent and run a Railway request
SETUP GUIDE

Connect Railway API Tool with your Agent

1

Install Composio

typescript
npm install @composio/core @composio/openai openai
Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
2

Create a Composio session

typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["railway"] });
const tools = await session.tools();
Initialize Composio with the OpenAI Responses provider and create a session scoped to Railway
3

Run Railway tools with your agent

typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List recent failed deployments in my Railway project" }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
Send a request, execute the Railway tool calls through the session, and print the final answer

Why Use Composio?

AI Native Railway Integration

  • Supports both Railway MCP and direct API based integrations
  • Structured, LLM-friendly schemas for reliable Railway project and deployment actions
  • Rich coverage for reading, writing, and querying Railway resources like services, environments, and deployments

Managed Auth

  • Handles Railway API key and OAuth based authentication flows securely
  • Central place to manage, scope, and revoke Railway access
  • Per user and per environment credentials instead of hard-coded keys in your agent code

Agent Optimized Design

  • Railway tools are tuned using real error and success rates to improve reliability over time
  • Comprehensive execution logs so you always know what Railway action ran, when, and on whose behalf

Enterprise Grade Security

  • Fine-grained RBAC so you control which agents and users can access Railway
  • Scoped, least privilege access to Railway projects, services, and environments
  • Full audit trail of agent actions to support review and compliance

Rolling this out across your team?

Give your team centralized access control across every framework with Composio’s MCP Gateway.

EXPLORE MCP GATEWAY
FAQ

Frequently asked questions

Railway requires connections to go through your own OAuth app. You register it once with Railway, add its client ID and secret in the Composio dashboard, and from then on everyone connects by signing in to Railway as usual. Composio handles the rest of the flow and the token refresh.

Yes! Composio's Tool Router enables agents to use multiple toolkits. Learn more.

Yes. Composio is SOC 2 Type II compliant and is built to keep your Railway connection and credentials secure. OAuth tokens and API keys are encrypted, and sensitive customer data is protected at rest and in transit.

Composio also undergoes independent security testing and continuously monitors its systems for security threats. You can review the latest reports and policies in the Composio Trust Center.

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

When you connect a Railway account through Composio, every action runs under that account, so anything the agent creates, sends, or changes shows up in Railway as done by you. Keep an approval step in your prompt for actions with side effects, such as sending or deleting, and have the agent draft first.

Exactly the ones Railway lists on its consent screen when you connect. Review that screen before approving. If you connect a work account, your Railway administrator may need to approve the app first, and you can revoke the access inside Railway whenever you want.

Yes. Composio supports multiple connected accounts for the same app, and that works in Claude, ChatGPT, or any other assistant you connect through Composio. Give each Railway connection a name such as work or personal, and the assistant uses the one you mention in the request. Each account keeps its own credentials and nothing is merged.

Composio refreshes Railway tokens automatically, so day to day you do nothing. If you revoke access inside Railway, or Railway invalidates the session, the connection shows as expired in Composio and the agent stops acting on that account until you reconnect it, which is a single sign-in.

Composio's free Hobby plan includes 100,000 tool calls per month with no credit card, which covers most personal Railway use. Paid plans add higher limits and team features. Your Railway plan and its API limits still apply as usual.

Built-in connectors usually give one AI access to a limited set of apps. Many people use Composio because it lets their AI connect to more apps than it normally supports, or connect to multiple accounts for the same app (e.g. connect Claude to multiple Railway accounts).

With Composio, you connect Railway once and then use it across different AI assistants without setting it up separately in each one. Connect your apps to Composio once, then connect Composio to whichever AI you use, whether that's Claude, ChatGPT, Hermes, or your own custom assistant.

Start with Railway.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Railway tool your agent needs.Free to start.

Start building