domain_check
Verify domain availability for pre-deployment checks. Ensure your domain is free before creating it.
Instructions
[API] Check if a domain is available for use
⚡️ Best for: ✓ Validating domain availability ✓ Pre-deployment checks ✓ Domain planning
→ Next steps: domain_create
→ Related: domain_list
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain name to check availability for |
Implementation Reference
- src/services/domain.service.ts:126-148 (handler)The `checkDomainAvailability` method in DomainService class is the core logic that executes the domain_check tool. It calls the Railway API client's `serviceDomainAvailable` method and returns a formatted success or error response depending on availability.
/** * Check if a service domain is available * @param domain Domain to check */ async checkDomainAvailability(domain: string): Promise<CallToolResult> { try { const result = await this.client.domains.serviceDomainAvailable(domain); if (result.available) { return createSuccessResponse({ text: `Domain ${domain} is available`, data: result }); } else { return createSuccessResponse({ text: `Domain ${domain} is not available: ${result.message}`, data: result }); } } catch (error) { return createErrorResponse(`Error checking domain availability: ${formatError(error)}`); } } - src/tools/domain.tool.ts:86-88 (schema)The Zod input schema for the domain_check tool requires a single string parameter 'domain' with a description of the domain name to check availability for.
{ domain: z.string().describe("Domain name to check availability for") }, - src/tools/domain.tool.ts:71-92 (registration)The domain_check tool is registered via `createTool()`, with tool name 'domain_check', a formatToolDescription() for its metadata, a Zod schema for inputs, and an async handler that delegates to `domainService.checkDomainAvailability(domain)`.
createTool( "domain_check", formatToolDescription({ type: 'API', description: "Check if a domain is available for use", bestFor: [ "Validating domain availability", "Pre-deployment checks", "Domain planning" ], relations: { nextSteps: ["domain_create"], related: ["domain_list"] } }), { domain: z.string().describe("Domain name to check availability for") }, async ({ domain }) => { return domainService.checkDomainAvailability(domain); } ), - src/services/base.service.ts:1-8 (helper)BaseService provides the `client` property (RailwayApiClient) used by DomainService to access `this.client.domains.serviceDomainAvailable()`.
import { RailwayApiClient, railwayClient } from '@/api/api-client.js'; export class BaseService { protected client: RailwayApiClient; constructor() { this.client = railwayClient; }