mcpField
D
domain

domain

github.com/railwayappCloud & DevOps338766 installsUpdated 2w ago
Repository

About domain

A Railway skill for adding, viewing, and removing service domains. It covers Railway-provided and custom domains, including the DNS records needed for a custom domain.

Key features

  1. 01Generate a Railway domain
  2. 02Add a custom domain
  3. 03View configured domains
  4. 04Remove domains through environment configuration
  5. 05Return DNS records for custom domains

Use cases

  1. 01Get a public URL for a service
  2. 02Attach a custom domain to a service
  3. 03Check existing service domains
  4. 04Remove a configured domain

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/railwayapp/railway-skills --skill domain

After installing, type/domainin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
environment-config.md
monorepo.md
railpack.md
variables.md

Details

From the project README

Domain Management

Add, view, or remove domains for Railway services.

When to Use

  • User asks to "add a domain", "generate a domain", "get a URL"
  • User wants to add a custom domain
  • User asks "what's the URL for my service"
  • User wants to remove a domain

Add Railway Domain

Generate a railway-provided domain (max 1 per service):

railway domain --json

For a specific service:

railway domain --json --service backend
Response

Returns the generated domain URL. Service must have a deployment.

Add Custom Domain

railway domain example.com --json
Response

Returns required DNS records:

{
  "domain": "example.com",
  "dnsRecords": [
    { "type": "CNAME", "host": "@", "value": "..." }
  ]
}

Tell user to add these records to their DNS provider.

Read Current Domains

Use environment skill to see configured domains, or query directly:

query domains($envId: String!) {
  environment(id: $envId) {
    config(decryptVariables: false)
  }
}

Domains are in config.services.<serviceId>.networking:

  • serviceDomains - Railway-provided domains
  • customDomains - User-provided domains

Remove Domain

Use environment skill to remove domains:

Remove custom domain
{
  "services": {
    "<serviceId>": {
      "networking": {
        "customDomains": { "<domainId>": null }
      }
    }
  }
}
Remove railway domain
{
  "services": {
    "<serviceId>": {
      "networking": {
        "serviceDomains": { "<domainId>": null }
      }
    }
  }
}

Then use environment skill to apply and commit the change.

CLI Options

FlagDescription
[DOMAIN]Custom domain to add (omit for railway domain)
-p, --port <PORT>Port to connect
-s, --service <NAME>Target service (defaults to linked)
--jsonJSON output

Composability

  • Read domains: Use environment skill
  • Remove domains: Use environment skill
  • Apply removal: Use environment skill
  • Check service: Use service skill

Error Handling

No Service Linked
No service linked. Use --service flag or run `railway service` to select one.
Domain Already Exists
Service already has a railway-provided domain. Maximum 1 per service.
No Deployment
Service has no deployment. Deploy first with `railway up`.
Invalid Domain
Invalid domain format. Use a valid domain like "example.com" or "api.example.com".

Comments

Markdown supported