View as Markdown

Railway Integration

Manage Railway workspaces, projects, services, deployments, variables, domains, and volumes

The Railway integration provides access to manage Railway workspaces, projects, services, deployments, variables, domains, and volumes through the Integrate MCP server.

Installation

The Railway integration is included with the SDK:

import { railwayIntegration } from "integrate-sdk/server";

Setup

1. Create a Railway OAuth App

  1. Go to Backboard Developer Portal
  2. Create a new OAuth application
  3. Configure your redirect URI
  4. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Railway integration to your server configuration. The integration automatically reads RAILWAY_CLIENT_ID and RAILWAY_CLIENT_SECRET from your environment variables:

import { createMCPServer, railwayIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    railwayIntegration({
      scopes: ["openid", "profile", "email", "workspace:admin", "project:member"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

railwayIntegration({
  clientId: process.env.CUSTOM_RAILWAY_ID,
  clientSecret: process.env.CUSTOM_RAILWAY_SECRET,
      scopes: ["openid", "profile", "email", "workspace:admin", "project:member"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("railway");
const result = await client.railway.getCurrentUser({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, railwayIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [railwayIntegration()],
});

Configuration Options

export interface RailwayIntegrationConfig {
  /** Railway OAuth client ID (defaults to RAILWAY_CLIENT_ID env var) */
  clientId?: string;

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • openid
  • profile
  • email
  • workspace:admin
  • project:member

Tools

railway_get_current_user

Get current user

No parameters.

railway_get_workspace

Get workspace

export interface RailwayGetWorkspaceParams { workspace_id: string }

railway_list_regions

List regions

No parameters.

railway_list_projects

List projects

export interface RailwayListProjectsParams {
    workspace_id?: string;

railway_get_project

Get project

export interface RailwayGetProjectParams { project_id: string }

railway_create_project

Create project

export interface RailwayCreateProjectParams {
    name: string;

railway_update_project

Update project

export interface RailwayUpdateProjectParams {
    project_id: string;

railway_delete_project

Delete project

export interface RailwayDeleteProjectParams { project_id: string }

railway_transfer_project

Transfer project

export interface RailwayTransferProjectParams {
    project_id: string;

railway_list_project_members

List project members

export interface RailwayListProjectMembersParams { project_id: string }

railway_list_environments

List environments

export interface RailwayListEnvironmentsParams {
    project_id: string;

railway_get_environment

Get environment

export interface RailwayGetEnvironmentParams { environment_id: string }

railway_create_environment

Create environment

export interface RailwayCreateEnvironmentParams {
    project_id: string;

railway_rename_environment

Rename environment

export interface RailwayRenameEnvironmentParams {
    environment_id: string;

railway_delete_environment

Delete environment

export interface RailwayDeleteEnvironmentParams { environment_id: string }

railway_get_environment_logs

Get environment logs

export interface RailwayGetEnvironmentLogsParams {
    environment_id: string;

railway_get_environment_staged_changes

Get environment staged changes

export interface RailwayGetEnvironmentStagedChangesParams { environment_id: string }

railway_commit_environment_staged_changes

Commit environment staged changes

export interface RailwayCommitEnvironmentStagedChangesParams { environment_id: string }

railway_get_service

Get service

export interface RailwayGetServiceParams { service_id: string }

railway_get_service_instance

Get service instance

export interface RailwayGetServiceInstanceParams {
    service_id: string;

railway_create_service

Create service

export interface RailwayCreateServiceParams {
    project_id: string;

railway_update_service

Update service

export interface RailwayUpdateServiceParams {
    service_id: string;

railway_update_service_instance

Update service instance

export interface RailwayUpdateServiceInstanceParams {
    service_id: string;

railway_connect_service

Connect service

export interface RailwayConnectServiceParams {
    service_id: string;

railway_disconnect_service

Disconnect service

export interface RailwayDisconnectServiceParams { service_id: string }

railway_deploy_service

Deploy service

export interface RailwayDeployServiceParams {
    service_id: string;

railway_redeploy_service

Redeploy service

export interface RailwayRedeployServiceParams {
    service_id: string;

railway_get_service_limits

Get service limits

export interface RailwayGetServiceLimitsParams {
    service_id: string;

railway_delete_service

Delete service

export interface RailwayDeleteServiceParams { service_id: string }

railway_list_deployments

List deployments

export interface RailwayListDeploymentsParams {
    project_id: string;

railway_get_deployment

Get deployment

export interface RailwayGetDeploymentParams { deployment_id: string }

railway_get_latest_active_deployment

Get latest active deployment

export interface RailwayGetLatestActiveDeploymentParams {
    project_id: string;

railway_get_deployment_build_logs

Get deployment build logs

export interface RailwayGetDeploymentBuildLogsParams {
    deployment_id: string;

railway_get_deployment_runtime_logs

Get deployment runtime logs

export interface RailwayGetDeploymentRuntimeLogsParams {
    deployment_id: string;

railway_get_deployment_http_logs

Get deployment http logs

export interface RailwayGetDeploymentHttpLogsParams {
    deployment_id: string;

railway_redeploy_deployment

Redeploy deployment

export interface RailwayRedeployDeploymentParams { deployment_id: string }

railway_restart_deployment

Restart deployment

export interface RailwayRestartDeploymentParams { deployment_id: string }

railway_rollback_deployment

Rollback deployment

export interface RailwayRollbackDeploymentParams { deployment_id: string }

railway_stop_deployment

Stop deployment

export interface RailwayStopDeploymentParams { deployment_id: string }

railway_cancel_deployment

Cancel deployment

export interface RailwayCancelDeploymentParams { deployment_id: string }

railway_remove_deployment

Remove deployment

export interface RailwayRemoveDeploymentParams { deployment_id: string }

railway_get_variables

Get variables

export interface RailwayGetVariablesParams {
    project_id: string;

railway_get_unrendered_variables

Get unrendered variables

export interface RailwayGetUnrenderedVariablesParams {
    project_id: string;

railway_upsert_variable

Upsert variable

export interface RailwayUpsertVariableParams {
    project_id: string;

railway_upsert_variables

Upsert variables

export interface RailwayUpsertVariablesParams {
    project_id: string;

railway_delete_variable

Delete variable

export interface RailwayDeleteVariableParams {
    project_id: string;

railway_get_rendered_variables

Get rendered variables

export interface RailwayGetRenderedVariablesParams {
    project_id: string;

railway_list_domains

List domains

export interface RailwayListDomainsParams {
    project_id: string;

railway_create_service_domain

Create service domain

export interface RailwayCreateServiceDomainParams {
    service_id: string;

railway_delete_service_domain

Delete service domain

export interface RailwayDeleteServiceDomainParams { service_domain_id: string }

railway_check_custom_domain_availability

Check custom domain availability

export interface RailwayCheckCustomDomainAvailabilityParams { domain: string }

railway_create_custom_domain

Create custom domain

export interface RailwayCreateCustomDomainParams {
    project_id: string;

railway_get_custom_domain_status

Get custom domain status

export interface RailwayGetCustomDomainStatusParams {
    custom_domain_id: string;

railway_update_custom_domain

Update custom domain

export interface RailwayUpdateCustomDomainParams {
    custom_domain_id: string;

railway_delete_custom_domain

Delete custom domain

export interface RailwayDeleteCustomDomainParams { custom_domain_id: string }

railway_list_project_volumes

List project volumes

export interface RailwayListProjectVolumesParams { project_id: string }

railway_get_volume_instance

Get volume instance

export interface RailwayGetVolumeInstanceParams { volume_instance_id: string }

railway_create_volume

Create volume

export interface RailwayCreateVolumeParams {
    project_id: string;

railway_update_volume

Update volume

export interface RailwayUpdateVolumeParams {
    volume_id: string;

railway_update_volume_instance

Update volume instance

export interface RailwayUpdateVolumeInstanceParams {
    volume_id: string;

railway_delete_volume

Delete volume

export interface RailwayDeleteVolumeParams { volume_id: string }

railway_list_volume_backups

List volume backups

export interface RailwayListVolumeBackupsParams { volume_instance_id: string }

railway_create_volume_backup

Create volume backup

export interface RailwayCreateVolumeBackupParams { volume_instance_id: string }

railway_restore_volume_backup

Restore volume backup

export interface RailwayRestoreVolumeBackupParams {
    volume_instance_backup_id: string;

railway_lock_volume_backup

Lock volume backup

export interface RailwayLockVolumeBackupParams {
    volume_instance_backup_id: string;

railway_delete_volume_backup

Delete volume backup

export interface RailwayDeleteVolumeBackupParams {
    volume_instance_backup_id: string;

railway_list_volume_backup_schedules

List volume backup schedules

export interface RailwayListVolumeBackupSchedulesParams { volume_instance_id: string }

railway_list_tcp_proxies

List tcp proxies

export interface RailwayListTcpProxiesParams {
    service_id: string;

Notes

  • Category: Infrastructure
  • Authentication mode: OAuth