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
- Go to Backboard Developer Portal
- Create a new OAuth application
- Configure your redirect URI
- 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:
openidprofileemailworkspace:adminproject: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