Skip to main content
Glama

list_service_variables

Retrieve and review all environment variables for a service in Railway projects. Simplify configuration audits, validate connection strings, and assess shared variables.

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

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

Input Schema (JSON Schema)

{ "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "environmentId": { "description": "ID of the environment to list variables from (usually obtained from service_list)", "type": "string" }, "projectId": { "description": "ID of the project containing the service", "type": "string" }, "serviceId": { "description": "Optional: ID of the service to list variables for, if not provided, shared variables across all services will be listed", "type": "string" } }, "required": [ "projectId", "environmentId" ], "type": "object" }

Implementation Reference

  • The async handler function for the 'list_service_variables' tool that delegates execution to variableService.listVariables(projectId, environmentId, serviceId).
    async ({ projectId, environmentId, serviceId }) => { return variableService.listVariables(projectId, environmentId, serviceId); }
  • Zod input schema defining required projectId and environmentId, optional serviceId for the tool.
    { 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") },
  • Registration of the 'list_service_variables' tool via createTool, including description, schema, and handler.
    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); } ),
  • VariableService.listVariables: Fetches variables using the API client, formats them as a newline-separated key=value list, provides context-specific messaging for service or shared variables, and handles empty results and errors.
    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)}`); } }
  • VariableRepository.getVariables: Performs GraphQL query to retrieve environment variables for a project, environment, and optional service.
    async getVariables(projectId: string, environmentId: string, serviceId?: string): Promise<Record<string, string>> { const data = await this.client.request<VariablesResponse>(` query variables($projectId: String!, $environmentId: String!, $serviceId: String) { variables(projectId: $projectId, environmentId: $environmentId, serviceId: $serviceId) } `, { projectId, environmentId, serviceId }); return data.variables || {}; }

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/jason-tan-swe/railway-mcp'

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