get_transfer_status
Check the status of domain transfers between providers to monitor progress and resolve visibility issues during active transfers.
Instructions
Get domain transfer status. During an in-flight transfer the domain may not appear in list_domains yet — specify provider explicitly in that case.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| provider | No | Provider name (recommended during active transfers) |
Implementation Reference
- src/tools/transfer.ts:10-14 (handler)Main handler function that resolves the provider (from input or auto-detected from domain), validates transfer feature support, and delegates to the provider's getTransferStatus method
export async function handleGetTransferStatus(input: { domain: string; provider?: string }, registry: ProviderRegistry) { const provider = input.provider ? registry.get(input.provider) : await registry.resolveProviderForDomain(input.domain); assertTransfer(provider.name(), (f) => provider.supports(f)); return provider.getTransferStatus(input.domain); } - src/providers/types.ts:104-104 (schema)Interface definition in Provider contract: getTransferStatus(domain: string): Promise<Transfer>
getTransferStatus(domain: string): Promise<Transfer>; - src/server.ts:306-317 (registration)MCP tool registration with name 'get_transfer_status', description, input schema (domain and optional provider), and async handler that imports and calls handleGetTransferStatus
server.tool('get_transfer_status', 'Get domain transfer status. During an in-flight transfer the domain may not appear in list_domains yet — specify provider explicitly in that case.', { domain: domainSchema, provider: z.string().optional().describe('Provider name (recommended during active transfers)'), }, async (input) => { try { const { handleGetTransferStatus } = await import('./tools/transfer.js'); const result = await handleGetTransferStatus(input as { domain: string; provider?: string }, registry); return { content: [{ type: 'text', text: JSON.stringify(result) }] }; } catch (err) { return { content: [{ type: 'text', text: formatErrorForAgent(err) }], isError: true }; } }); - src/tools/guards.ts:15-24 (helper)Validation helper function assertTransfer that checks if a provider supports the Transfer feature, throwing AgentError if not supported
export function assertTransfer(providerName: string, supports: (f: Feature) => boolean): void { if (!supports(Feature.Transfer)) { throw new AgentError( 'FEATURE_NOT_SUPPORTED', `Provider '${providerName}' does not support domain transfers via API.`, 'Use Porkbun, Namecheap, or GoDaddy for domain transfers.', providerName, ); } }