@jasontanswe/railway-mcp
Version:
Model Context Protocol server for Railway.app - Enables AI agents to manage Railway infrastructure through natural language
51 lines (50 loc) • 1.72 kB
JavaScript
import { z } from "zod";
/**
* NOTE: ALL NON-METAL RAILWAY REGIONS -- TODO: Update when they've fully migrated to metal 🔄
*/
export const RegionCodeSchema = z.enum([
"asia-southeast1",
"asia-southeast1-eqsg3a",
"europe-west4",
"europe-west4-drams3a",
"us-east4",
"us-east4-eqdc4a",
"us-west1",
"us-west2"
]);
export const ServiceInstanceSchema = z.object({
id: z.string(),
serviceId: z.string(),
serviceName: z.string(),
environmentId: z.string(),
buildCommand: z.string().optional(),
startCommand: z.string().optional(),
rootDirectory: z.string().optional(),
region: RegionCodeSchema.optional(),
healthcheckPath: z.string().optional(),
sleepApplication: z.boolean().optional(),
numReplicas: z.number().optional(),
builder: z.string().optional(),
cronSchedule: z.string().optional(),
healthcheckTimeout: z.number().optional(),
isUpdatable: z.boolean().optional(),
railwayConfigFile: z.string().optional(),
restartPolicyType: z.string().optional(),
restartPolicyMaxRetries: z.number().optional(),
upstreamUrl: z.string().optional(),
watchPatterns: z.array(z.string()).optional()
});
// Database types
export var DatabaseType;
(function (DatabaseType) {
DatabaseType["POSTGRES"] = "postgres";
DatabaseType["MYSQL"] = "mysql";
DatabaseType["MONGODB"] = "mongodb";
DatabaseType["REDIS"] = "redis";
DatabaseType["MINIO"] = "minio";
DatabaseType["SQLITE3"] = "sqlite3";
DatabaseType["POCKETBASE"] = "pocketbase";
DatabaseType["CLICKHOUSE"] = "clickhouse";
DatabaseType["MARIADB"] = "mariadb";
DatabaseType["PGVECTOR"] = "pgvector";
})(DatabaseType || (DatabaseType = {}));