Skip to main content
Glama

set-variables

Defines environment variables for active environments on Railway MCP Server. Specify workspace paths, key-value pairs, and optional parameters like service, environment, or deploy triggers.

Instructions

Set environment variables for the active environment

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
environmentNoThe environment to set variables for (optional)
serviceNoThe service to set variables for (optional)
skipDeploysNoSkip triggering deploys when setting variables (optional)
variablesYesArray of '{key}={value}' environment variable pairs to set
workspacePathYesThe path to the workspace to set variables in

Implementation Reference

  • The MCP tool handler for 'set-variables', which calls the CLI helper setRailwayVariables and formats success/error responses using createToolResponse.
    handler: async ({ workspacePath, variables, service, environment, skipDeploys, }: SetVariablesOptions) => { try { const result = await setRailwayVariables({ workspacePath, variables, service, environment, skipDeploys, }); return createToolResponse(result); } catch (error: unknown) { const errorMessage = error instanceof Error ? error.message : "Unknown error occurred"; return createToolResponse( "❌ Failed to set Railway variables\n\n" + `**Error:** ${errorMessage}\n\n` + "**Next Steps:**\n" + "• Ensure you have a Railway project linked\n" + "• Check that the service and environment exist\n" + "• Verify you have permissions to set variables\n" + "• Ensure variable format is correct (KEY=value)\n" + "• Run `railway link` to ensure proper project connection", ); } },
  • Zod schema defining the input parameters for the set-variables tool.
    inputSchema: { workspacePath: z .string() .describe("The path to the workspace to set variables in"), variables: z .array(z.string()) .describe("Array of '{key}={value}' environment variable pairs to set"), service: z .string() .optional() .describe("The service to set variables for (optional)"), environment: z .string() .optional() .describe("The environment to set variables for (optional)"), skipDeploys: z .boolean() .optional() .describe("Skip triggering deploys when setting variables (optional)"), },
  • src/index.ts:21-31 (registration)
    Dynamic registration of all tools (including set-variables) on the MCP server by iterating over exports from src/tools/index.ts.
    Object.values(tools).forEach((tool) => { server.registerTool( tool.name, { title: tool.title, description: tool.description, inputSchema: tool.inputSchema, }, tool.handler, ); });
  • Supporting utility function that constructs and executes the Railway CLI 'variables --set' command to set environment variables.
    export const setRailwayVariables = async ({ workspacePath, variables, service, environment, skipDeploys, }: SetVariablesOptions): Promise<string> => { try { await checkRailwayCliStatus(); const result = await getLinkedProjectInfo({ workspacePath }); if (!result.success) { throw new Error(result.error); } let command = "railway variables"; if (service) { command += ` --service ${service}`; } if (environment) { command += ` --environment ${environment}`; } if (skipDeploys) { command += " --skip-deploys"; } // Add each variable with --set flag variables.forEach((variable) => { command += ` --set "${variable}"`; }); const { output } = await runRailwayCommand(command, workspacePath); return output; } catch (error: unknown) { return analyzeRailwayError(error, "railway variables --set"); } };

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/railwayapp/railway-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server