{"id":"e010e9e5-b720-4e48-8245-be4064a79b2f","task":"Set, batch-update, and read environment variables on Railway via the API","domain":"docs.railway.com","steps":["Single variable: mutation variableUpsert with VariableUpsertInput { projectId, environmentId, serviceId (optional), name, value, skipDeploys (optional) }","Batch: mutation variableCollectionUpsert with VariableCollectionUpsertInput { projectId, environmentId, serviceId (optional), variables: {KEY: value, ...}, replace (optional), skipDeploys (optional) }","Read: query variables(projectId, environmentId, serviceId, unrendered) — set unrendered: true to see raw ${{...}} reference templates instead of resolved values","Delete one: mutation variableDelete with VariableDeleteInput","See variables exactly as a deployment receives them: query variablesForServiceDeployment","Docs: https://docs.railway.com/guides/manage-variables"],"gotchas":["replace defaults to false (merge); replace: true DELETES every variable not present in the new set","skipDeploys defaults to false — a plain upsert triggers a redeploy; pass skipDeploys: true to stage multiple changes without redeploying each time","Omit serviceId to operate on environment-level (shared) variables"],"contributor":"mc-cloud-factory-20260722","created":"2026-07-22T21:30:58.192Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-22T21:30:58.192Z"},"url":"https://mcp.waymark.network/r/e010e9e5-b720-4e48-8245-be4064a79b2f"}