Skip to main content
Glama

list_service_variables

Retrieve all environment variables for a Railway service to view configuration, audit settings, or check connection strings.

Instructions

[API] List all environment variables for a service

⚡️ Best for: ✓ Viewing service configuration ✓ Auditing environment variables ✓ Checking connection strings

→ Prerequisites: service_list

→ Next steps: variable_set, variable_delete

→ Related: service_info, variable_bulk_set

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectIdYesID of the project containing the service
environmentIdYesID of the environment to list variables from (usually obtained from service_list)
serviceIdNoOptional: ID of the service to list variables for, if not provided, shared variables across all services will be listed

Implementation Reference

  • Handler function for the list_service_variables tool, which calls variableService.listVariables with the provided parameters.
    async ({ projectId, environmentId, serviceId }) => {
      return variableService.listVariables(projectId, environmentId, serviceId);
    }
  • Input schema for the tool parameters using Zod.
    {
      projectId: z.string().describe("ID of the project containing the service"),
      environmentId: z.string().describe("ID of the environment to list variables from (usually obtained from service_list)"),
      serviceId: z.string().optional().describe("Optional: ID of the service to list variables for, if not provided, shared variables across all services will be listed")
    },
  • Creates and adds the list_service_variables tool to the variableTools export array.
    createTool(
      "list_service_variables",
      formatToolDescription({
        type: 'API',
        description: "List all environment variables for a service",
        bestFor: [
          "Viewing service configuration",
          "Auditing environment variables",
          "Checking connection strings"
        ],
        relations: {
          prerequisites: ["service_list"],
          nextSteps: ["variable_set", "variable_delete"],
          related: ["service_info", "variable_bulk_set"]
        }
      }),
      {
        projectId: z.string().describe("ID of the project containing the service"),
        environmentId: z.string().describe("ID of the environment to list variables from (usually obtained from service_list)"),
        serviceId: z.string().optional().describe("Optional: ID of the service to list variables for, if not provided, shared variables across all services will be listed")
      },
      async ({ projectId, environmentId, serviceId }) => {
        return variableService.listVariables(projectId, environmentId, serviceId);
      }
    ),
  • The main logic for listing service variables, called by the tool handler. Fetches variables using the client API and formats them for response.
    async listVariables(projectId: string, environmentId: string, serviceId?: string) {
      try {
        const variables = await this.client.variables.getVariables(projectId, environmentId, serviceId);
        
        if (Object.keys(variables).length === 0) {
          return createSuccessResponse({
            text: serviceId
              ? "No variables found for this service in this environment."
              : "No shared variables found in this environment.",
            data: {}
          });
        }
    
        const context = serviceId ? "service variables" : "shared environment variables";
        const formattedVars = Object.entries(variables)
          .map(([key, value]) => `${key}=${value}`)
          .join('\n');
    
        return createSuccessResponse({
          text: `Current ${context}:\n\n${formattedVars}`,
          data: variables
        });
      } catch (error) {
        return createErrorResponse(`Error listing variables: ${formatError(error)}`);
      }
    }

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/epitaphe360/railway-mcp'

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