# InstaDomain > MCP server for domain registration. AI agents check availability, suggest names, and purchase domains. Pay with Stripe (card) or x402 (USDC on Base). L402 and MPP coming soon. ## Connect MCP server URL (Streamable HTTP transport): https://instadomain.fly.dev/mcp/ Configuration for claude_desktop_config.json: ```json { "mcpServers": { "instadomain": { "type": "http", "url": "https://instadomain.fly.dev/mcp/" } } } ``` No API key or authentication required to connect. ## Tools ### buy_domain Purchase via Stripe checkout. Returns a checkout URL for the user. - Input: domain (string) - Output: order_id, checkout_url (Stripe), price_cents, price_display - IMPORTANT: Always show the user the price from check_domain and get explicit confirmation before calling this. - The checkout_url should be opened in the user's browser. ### buy_domain_crypto Purchase via x402 protocol. Pay with USDC on Base. - Input: domain (string) - Output: order_id, pay_url, price_usdc, price_cents, network, asset - Two-step flow: (1) call this tool to get pay_url, (2) make a GET request to pay_url with an x402-enabled HTTP client. The client receives HTTP 402, auto-pays USDC, and the domain is registered. - Requires an x402-compatible HTTP client with a funded USDC wallet on Base. - After payment, poll with get_domain_status(order_id) until complete. ### check_domain Check if a single domain is available and get its price. - Input: domain (string, e.g. "coolstartup.com") - Output: availability status, price in cents, formatted price (e.g. "$14.09") - Always call this before purchasing to show the price. ### check_domains_bulk Check availability of up to 50 domains in one call. - Input: domains (list of strings, max 50) - Output: per-domain availability, summary counts (total/available/taken) - Uses RDAP lookups. No pricing included. ### suggest_domains Generate domain name ideas from a keyword and check availability. - Input: keyword (string, e.g. "taskflow") - Output: 10-15 candidates across .com, .io, .ai, .dev, .co with availability status - Uses prefix/suffix patterns (get-, my-, try-, -app, -hq, etc.) ### get_domain_status Poll the status of a domain purchase order. - Input: order_id (string, e.g. "ord_abc123") - Output: order status, domain, nameservers, Cloudflare DNS API token (when complete) - Polls automatically for up to 120 seconds until the order completes or fails. ### get_transfer_code Get EPP auth code for transferring a domain to another registrar. - Input: order_id (string) - Output: auth_code, domain ### unlock_domain Unlock a domain for transfer to another registrar. - Input: order_id (string) - Output: success status ### renew_domain Renew domain registration via Stripe checkout. - Input: order_id (string) - Output: checkout_url, price ## Payment methods **Stripe (card):** Agent calls buy_domain, gets a checkout_url. User clicks the link, pays with card. Domain is registered after payment. **x402 (USDC on Base):** Agent calls buy_domain_crypto, gets a pay_url, makes an x402 HTTP request. USDC is transferred on Base. Domain is registered. **Coming soon:** L402 (Bitcoin Lightning), MPP (Stripe Machine Payments Protocol). All payment paths lead to the same result: OpenSRS registration, Cloudflare DNS zone, scoped API token, WHOIS privacy. ## Pricing Wholesale registry cost plus a small flat markup. No hidden fees. Accepts Stripe (card) and x402 (USDC on Base). L402 and MPP coming soon. | TLD | Typical price | |------|---------------| | .com | ~$14 | | .dev | ~$19 | | .io | ~$45 | Exact price is always returned by check_domain before purchase. ## REST API (no auth required) For direct HTTP integration without MCP: - GET /check/{domain} - check one domain - POST /check (body: {"domains": [...]}) - bulk check up to 50 - GET /suggest?keyword=X - generate and check domain ideas - POST /buy/crypto (body: {"domain": "X"}) - create x402 crypto order - GET /pay/{order_id} - x402-paywalled endpoint (returns 402 with payment requirements) - GET /docs - OpenAPI documentation Base URL: https://instadomain.fly.dev