Connect your AI agent to Unstoppable Domains

Modified on: Sat, 21 Feb, 2026 at 7:06 PM

The Unstoppable Domains MCP (Model Context Protocol) server enables you to search, purchase, and manage domain names through natural conversation inside ChatGPT, Claude, or using automated AI agents. This guide explains how to connect an AI agent to your Unstoppable Domains account and setup permissions for various interactions.


What Can You Do?

With the MCP server, you can ask AI assistants to:

  • Search & Purchase Domains - Find available domains, check pricing, and complete purchases
  • Manage Your Portfolio - View your domains, filter by status, track expirations
  • Configure DNS - Set up A records, CNAME, MX, TXT, and other DNS records
  • Sell on Marketplace - List domains for sale, manage offers, negotiate with buyers
  • Communicate - Contact domain sellers and manage conversations

Getting Started

Connecting via OAuth (Recommended)

Most MCP-compatible tools support OAuth 2.0 authentication. These tools follow the general approach below to add a custom MCP connection:

  1. Add the Unstoppable Domains MCP server URL to your AI tool. See the table below for specific instructions for each tool.
    1. https://api.unstoppabledomains.com/mcp/v1
  2. When prompted, authenticate via your browser
  3. Authorize the requested permissions
  4. Start a chat to manage your domains using natural language

Manage your connections: Go to Account Settings to view connected apps, their scopes, and disconnect if needed.

Instructions for Popular AI Tools

ToolSetup Method
Claude Codeclaude mcp add unstoppable-domains --transport http https://api.unstoppabledomains.com/mcp/v1/
Claude Desktop (Paid)
Settings  Connectors  Add Connector Enter MCP URL: 

https://api.unstoppabledomains.com/api/mcp/v1
Claude Desktop (Free)Edit ~/Library/Application Support/Claude/claude_desktop_config.json
ChatGPT Custom GPTImport the API endpoint directly + OAuth 2.0 (OpenAPI spec)
Bots & ScriptsUse the API endpoint directly + API Key (OpenAPI spec)
Other MCP ToolsFollow tool-specific MCP server configuration

Authentication Options

OAuth 2.0 (Recommended)

OAuth provides scoped access through browser-based authentication:

  • Easy setup - Just authenticate when prompted using your Unstoppable Domains account
  • Granular permissions - Only grant access to what you need
  • Revocable - Disconnect apps anytime from Account Settings


Available scopes:

ScopeAccess
domains:searchSearch domains, check availability
portfolio:readView your domains, DNS records, offers
portfolio:writeManage DNS, create listings, send messages
cart:readView cart and payment methods
cart:writeAdd/remove cart items
checkoutComplete purchases

API Key (Advanced)

For manual configuration or custom integrations:

  1. Go to Account Settings
  2. Scroll to bottom and click Advanced
  3. Find the MCP API Key section
  4. Generate a key (format: ud_mcp_*)
  5. Copy your key (available anytime from this page)

Use the key in the Authorization header:

Authorization: Bearer ud_mcp_your_key_here

Security tip: Store your API key in an environment variable to avoid exposing it in shell history or process listings:

export UD_MCP_API_KEY="ud_mcp_your_key_here"
# Then reference $UD_MCP_API_KEY in your scripts or configuration

Note: API keys grant full access to all tools. Use OAuth for scoped access.

Common Workflows

Once connected to your Unstoppable Domains account, your AI agent is ready to talk with you about any topic related to domains. Here are some examples of conversation starters to inspire your imagination.

Register a New Domain

"Help me think of domain name ideas for by new kite business"
"Find me available .com domains with 'coffee' in the name"
"Add coffeeshop.com to my cart"
"Create an ICANN contact with my business details"
"Complete the checkout"

Tools used: ud_domains_searchud_contact_createud_cart_add_domainud_cart_checkout

Set Up DNS for a Website

"Show me the DNS records for mybrand.io"
"Add an A record pointing to 192.0.2.1"
"Add a CNAME record for www pointing to mybrand.io"
"Add MX records for Google Workspace"

Tools used: ud_dns_records_listud_dns_record_add (multiple)

List a Domain for Sale

"List mydomain.com for sale at $5,000"
"Enable the offer feature with minimum $1,000"
"Show me any incoming offers"
"Accept the offer from buyer123"

Tools used: ud_listing_createud_offers_listud_offer_respond

Buy from the Marketplace

"Search for premium.com"
"Add it to my cart with lease-to-own (12 months)"
"Show me my cart total"
"Generate a checkout link"

Tools used: ud_domains_searchud_cart_add_domain_listedud_cart_getud_cart_get_url

Negotiate with a Seller

"Contact the seller of example.io"
"Send them a message asking about the price"
"Show me their reply"

Tools used: ud_domain_contact_sellerud_lead_message_sendud_lead_messages_list

Available Tools

The following section is a detailed description of all the tools available in the Unstoppable Domains MCP server. While this documentation is provided for your information, the LLM will automatically choose the specific tools required to complete the tasks from your conversation.

ud_domains_search

Search for domain availability and pricing across TLDs.

Parameters:

ParameterTypeRequiredDescription
querystring or string[]YesDomain name(s) to search. Can be full domain ("example.com") or search term ("mybusiness"). Up to 10 queries.
tldsstring[]NoTLDs to search (e.g., ["com", "org", "io"]). Max 5. Use ud_tld_list to verify support.
limitnumberNoResults to return (1-100, default: 20)
offsetnumberNoResults to skip for pagination (default: 0)

Example prompts:

  • "Search for available domains with 'startup' in the name"
  • "Check if example.com is available"
  • "Find .io domains containing 'dev'"

Notes:

  • Not all ICANN TLDs are supported. Use ud_tld_list first to verify.
  • Prices are returned in cents (USD).

ud_tld_list

List all available ICANN TLDs supported by the registrar.

Parameters: None

Example prompts:

  • "What TLDs can I register?"
  • "Show me all available domain extensions"
  • "Is .ai supported?"

Portfolio Management

ud_portfolio_list

List domains in your portfolio with filtering and sorting.

Parameters:

ParameterTypeRequiredDescription
pagenumberNoPage number, 1-indexed (default: 1)
pageSizenumberNoDomains per page (1-100, default: 50)
searchTermstringNoFilter by domain name
statusstringNo"all", "for-sale", or "unlisted" (default: "all")
registryTypestringNo"dns" (ICANN) or "web3" (default: "dns")
expiringWithinDaysnumberNoFilter domains expiring within N days (1-365)
expiredbooleanNoFilter for expired domains
minLength / maxLengthnumberNoFilter by domain label length
autoRenewalstringNo"true" or "false"
tagFiltersstring[]NoFilter by tags (e.g., ["personal", "business"])
orderBystringNoSort by: "name", "length", "purchasedAt", "expiresAt", "listingPrice", "offers", "leads", "watchlistCount"
orderDirectionstringNo"asc" or "desc" (default: "asc")

Example prompts:

  • "Show me all my domains"
  • "List domains expiring in the next 30 days"
  • "Show domains I have listed for sale, sorted by price"
  • "Find my 4-letter domains"

ICANN Contacts

ud_contacts_list

List ICANN contacts for domain registration.

Parameters:

ParameterTypeRequiredDescription
includeDisabledbooleanNoInclude disabled contacts (default: false)

Example prompts:

  • "Show my ICANN contacts"
  • "List all registration contacts including disabled ones"

ud_contact_create

Create a new ICANN contact for DNS domain registration.

Parameters:

ParameterTypeRequiredDescription
firstNamestringYesContact first name
lastNamestringYesContact last name
emailstringYesContact email address
phoneobjectYes{ dialingPrefix: "+1", number: "5551234567" }
streetstringYesStreet address
citystringYesCity
stateProvincestringYesState/province code
postalCodestringYesPostal/ZIP code
countryCodestringYesTwo-letter ISO country code (e.g., "US")
organizationstringNoCompany name

Example prompts:

  • "Create an ICANN contact for John Smith at 123 Main St, New York, NY 10001"
  • "Add a business contact for Acme Corp"

Notes:

  • Required before purchasing .com, .org, .net, and other ICANN domains.

Cart Management

ud_cart_get

Get shopping cart contents with pricing breakdown.

Parameters:

ParameterTypeRequiredDescription
discountCodestringNoPromo code to apply

Example prompts:

  • "Show my cart"
  • "What's in my shopping cart?"
  • "Apply promo code SAVE20 to my cart"

ud_cart_add_domain

Add primary (unregistered) domains to cart.

Parameters:

ParameterTypeRequiredDescription
domainsarrayYesArray of domain objects
domains[].namestringYesFull domain name (e.g., "example.com")
domains[].quantitynumberNoRegistration years (1-10, default: 1)

Example prompts:

  • "Add example.com to my cart"
  • "Add mybrand.io for 2 years"
  • "Add startup.com and startup.io to my cart"

ud_cart_add_domain_listed

Add marketplace-listed domains to cart (buy-now or lease-to-own).

Parameters:

ParameterTypeRequiredDescription
domainsarrayYesArray of domain objects (max 50)
domains[].namestringYesListed domain name
domains[].leaseToOwnOptionsobjectNoLease-to-own configuration
domains[].leaseToOwnOptions.typestringNo"equal_installments" or "down_payment_plus_equal_installments"
domains[].leaseToOwnOptions.termLengthnumberNoPayment term (3-24 months)
domains[].leaseToOwnOptions.downPaymentPercentagenumberNoDown payment (10-90%, required for down_payment type)

Example prompts:

  • "Add premium.com to my cart"
  • "Add premium.com with lease-to-own over 12 months"
  • "Add premium.com with 20% down payment and 12 monthly installments"

ud_cart_add_domain_renewal

Add domain renewals to cart.

Parameters:

ParameterTypeRequiredDescription
domainsarrayYesArray of domain objects (max 50)
domains[].namestringYesDomain to renew (must own)
domains[].quantitynumberNoRenewal years (1-10, default: 1)

Example prompts:

  • "Renew example.com for 1 year"
  • "Add 3-year renewal for mybrand.io"

ud_cart_remove

Remove items from cart.

Parameters:

ParameterTypeRequiredDescription
productIdsstring[]YesProduct IDs to remove (from cart response)

Example prompts:

  • "Remove example.com from my cart"
  • "Clear the domain I just added"

Payment & Checkout

ud_cart_get_payment_methods

Get saved payment methods and account balance.

Parameters: None

Example prompts:

  • "Show my payment methods"
  • "What's my account balance?"
  • "What cards do I have on file?"

ud_payment_method_add_url

Get a URL to add a new payment method (for example, when you don't have any cards on file).

Parameters: None

Example prompts:

  • "Give me a link to add a new card"
  • "I don't have any payment methods, how do I add one?"
  • "Generate a URL so I can add a payment method"

ud_cart_checkout

Complete checkout using saved payment method or account balance.

Parameters:

ParameterTypeRequiredDescription
paymentMethodIdstringNoStripe payment method ID
useAccountBalancebooleanNoUse account balance (default: true)
discountCodestringNoPromo code
contactIdstringNoICANN contact ID for DNS domains

Example prompts:

  • "Complete my purchase using my account balance"
  • "Checkout using my Visa ending in 4242"
  • "Complete checkout with contact ID abc123"

Notes:

  • For DNS domains (.com, .org, etc.), you must have an ICANN contact. Use ud_contacts_list to find your contact ID.

ud_cart_get_url

Generate a checkout URL for browser-based purchase.

Parameters:

ParameterTypeRequiredDescription
discountCodestringNoPromo code for checkout

Example prompts:

  • "Give me a checkout link"
  • "Generate a URL to complete my purchase"

Marketplace Listings

ud_listing_create

Create marketplace listings to sell domains.

Parameters:

ParameterTypeRequiredDescription
domainsarrayYesArray of listing objects (max 50)
domains[].domainNamestringYesDomain to list
domains[].priceInCentsnumberNoBuy-now price in cents (0 for offers-only)
domains[].expiresAtstringNoListing expiration (ISO 8601)
domains[].isEmailAliasUsedbooleanNoEnable email contact feature
domains[].listingSettingsobjectNoAdditional settings
domains[].listingSettings.isOfferFeatureEnabledbooleanNoAccept offers
domains[].listingSettings.minOfferAmountInCentsnumberNoMinimum offer amount
domains[].leaseToOwnOptionsobjectNoLease-to-own configuration

Example prompts:

  • "List mydomain.com for $5,000"
  • "List mydomain.com for offers only with $1,000 minimum"
  • "List mydomain.com for $10,000 with lease-to-own option"

Notes:

  • Prices are in cents (e.g., $5,000 = 500000 cents).
  • Set priceInCents to 0 for offers-only listings.

ud_listing_update

Update existing marketplace listings.

Parameters:

ParameterTypeRequiredDescription
listingsarrayYesArray of update objects (max 50)
listings[].idnumberYesListing ID
listings[].priceInCentsnumberNoNew price in cents
listings[].expiresAtstringNoNew expiration date
listings[].listingSettingsobjectNoUpdated settings

Example prompts:

  • "Change mydomain.com listing price to $7,500"
  • "Enable offers on my listing with ID 12345"

ud_listing_cancel

Cancel marketplace listings.

Parameters:

ParameterTypeRequiredDescription
listingIdsnumber[]YesListing IDs to cancel (max 50)

Example prompts:

  • "Cancel my listing for mydomain.com"
  • "Remove mydomain.com from the marketplace"

ud_offers_list

List incoming offers on your domains.

Parameters:

ParameterTypeRequiredDescription
domainNamestringNoFilter by domain
groupstringNo"active" or "sold"
pagenumberNoPage number

Example prompts:

  • "Show me all incoming offers"
  • "What offers do I have on mydomain.com?"
  • "Show my accepted offers"

ud_offer_respond

Accept or reject offers on your domains.

Parameters:

ParameterTypeRequiredDescription
offersarrayYesArray of response objects (max 50)
offers[].idnumberYesOffer ID
offers[].actionstringYes"accept" or "reject"

Example prompts:

  • "Accept offer 12345"
  • "Reject the $500 offer on mydomain.com"

Domain Conversations

ud_leads_list

List domain conversation leads (buyer-seller messages).

Parameters:

ParameterTypeRequiredDescription
domainstringNoFilter by domain name
skipEmptybooleanNoSkip conversations with no messages (default: false)
skipnumberNoPagination offset (default: 0)
takenumberNoConversations to return (1-100, default: 20)

Example prompts:

  • "Show my domain conversations"
  • "List leads for mydomain.com"

ud_domain_contact_seller

Contact a domain seller to start a conversation.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain to inquire about
buyerIdstringNoEncoded buyer ID (for offer responses)

Example prompts:

  • "Contact the seller of premium.com"
  • "Start a conversation about example.io"

ud_lead_messages_list

Get messages in a domain conversation.

Parameters:

ParameterTypeRequiredDescription
conversationIdnumberYesConversation ID
cursorstringNoPagination cursor for older messages

Example prompts:

  • "Show messages in conversation 12345"
  • "What did the seller say?"

ud_lead_message_send

Send a message in a domain conversation.

Parameters:

ParameterTypeRequiredDescription
conversationIdnumberYesConversation ID
contentstringYesMessage text (1-1000 characters)

Example prompts:

  • "Send 'I'm interested in your domain' to conversation 12345"
  • "Reply asking about their minimum price"

DNS Records

ud_dns_records_list

List DNS records for a domain.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
typestringNoFilter by record type (A, AAAA, CNAME, MX, TXT, NS)
subNamestringNoFilter by subdomain
cursorstringNoPagination cursor

Example prompts:

  • "Show DNS records for mybrand.io"
  • "List all MX records for example.com"
  • "What A records does mydomain.com have?"

ud_dns_record_add

Add a DNS record to a domain.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
typestringYesRecord type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA
valuesstring[]YesRecord values
subNamestringNoSubdomain (default: "@" for root)
ttlnumberNoTime-to-live in seconds (60-86400, default: 3600)
upsertModestringNo"append", "replace", or "disallowed"

Example prompts:

  • "Add an A record for mybrand.io pointing to 192.0.2.1"
  • "Add a CNAME for www.mybrand.io pointing to mybrand.io"
  • "Add MX records for Google Workspace"
  • "Add a TXT record for domain verification"

Notes:

  • Use subName: "@" for root domain records.
  • Use upsertMode: "replace" to overwrite existing records of the same type/subname.

ud_dns_record_update

Update an existing DNS record.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
recordIdstringYesRecord ID (from ud_dns_records_list)
valuesstring[]YesNew record values
ttlnumberNoNew TTL (60-86400, default: 3600)

Example prompts:

  • "Update my A record to point to 192.0.2.2"
  • "Change the TTL on record abc123 to 300 seconds"

ud_dns_record_remove

Remove a specific DNS record.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
recordIdstringYesRecord ID to remove

Example prompts:

  • "Delete the old A record"
  • "Remove DNS record abc123"

ud_dns_records_remove_all

Remove ALL user-created DNS records from a domain.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
confirmbooleanYesMust be true to confirm deletion

Example prompts:

  • "Remove all DNS records from mybrand.io"
  • "Clear all my custom DNS settings"

Notes:

  • This is destructive. The confirm: true parameter is required.

DNS Nameservers

ud_dns_nameservers_list

List nameservers for a domain.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
includeDnssecbooleanNoInclude DNSSEC information

Example prompts:

  • "What nameservers is mybrand.io using?"
  • "Show nameserver configuration with DNSSEC status"

ud_dns_nameservers_set_custom

Set custom (external) nameservers.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
nameserversstring[]YesNameserver hostnames (2-12 required)
dnssecobjectNoDNSSEC DS records

Example prompts:

  • "Point mybrand.io to Cloudflare nameservers"
  • "Set custom nameservers: ns1.example.com and ns2.example.com"

Notes:

  • Requires 2-12 nameserver hostnames.
  • DNS record management through this tool will be disabled when using custom nameservers.

ud_dns_nameservers_set_default

Reset to Unstoppable Domains default nameservers.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name

Example prompts:

  • "Switch mybrand.io back to default nameservers"
  • "Reset nameservers to UD defaults"

Notes:

  • Re-enables DNS record management through these tools.

DNS Hosting

ud_dns_hosting_list

List hosting/forwarding configurations.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
cursorstringNoPagination cursor

Example prompts:

  • "Show hosting configuration for mybrand.io"
  • "What redirects are set up for my domain?"

ud_dns_hosting_add

Add hosting configuration (for-sale page, 301/302 redirect).

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
typestringYes"LISTING_PAGE", "REDIRECT_301", or "REDIRECT_302"
targetUrlstringConditionalRequired for redirects
subNamestringNoSubdomain to configure
forceCompatibilitybooleanNoAuto-configure nameservers if needed

Example prompts:

  • "Set up a for-sale landing page for mybrand.io"
  • "Redirect mybrand.io to https://mynewsite.com with a 301"
  • "Add a 302 redirect from old.mybrand.io to mybrand.io/new"

ud_dns_hosting_remove

Remove hosting/forwarding configuration.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
subNamestringNoSubdomain to remove config from
deleteAllbooleanNoRemove ALL hosting configs
confirmDeleteAllbooleanConditionalRequired if deleteAll is true

Example prompts:

  • "Remove the redirect from mybrand.io"
  • "Delete all hosting configurations"

Domain Operations

ud_domain_pending_operations

Check status of pending DNS operations.

Parameters:

ParameterTypeRequiredDescription
domainstringYesDomain name
includeCompletedbooleanNoInclude operations completed in last 24 hours

Example prompts:

  • "Are there any pending DNS changes for mybrand.io?"
  • "Check the status of my nameserver update"

ud_domain_auto_renewal_update

Enable or disable auto-renewal for ICANN domains.

Parameters:

ParameterTypeRequiredDescription
actionstringYes"enable" or "disable"
domainsarrayYesArray of domain objects (max 50)
domains[].namestringYesDomain name
paymentMethodIdstringNoPayment method ID (uses default card if omitted)

Example prompts:

  • "Enable auto-renewal for mybrand.io"
  • "Turn off auto-renewal for example.com"
  • "Enable auto-renewal for all my domains using my Visa"

Notes:

  • When enabling, a payment method is used. If paymentMethodId is omitted, your default card will be used. Use ud_cart_get_payment_methods to see available methods.

API Reference

ItemValue
Endpointhttps://api.unstoppabledomains.com/mcp/v1/
OpenAPI Spechttps://api.unstoppabledomains.com/mcp/v1/openapi.json
AuthenticationAuthorization: Bearer <token>
ProtocolMCP (Model Context Protocol) over HTTP

Troubleshooting

Tools not appearing

Claude Code:

claude mcp list  # Check if server is configured

Claude Desktop:

  • Restart the app completely
  • Verify config file: cat ~/Library/Application\ Support/Claude/claude_desktop_config.json

Authentication errors

  • Verify your API key starts with ud_mcp_
  • For OAuth, try disconnecting and reconnecting in Account Settings
  • Check that your token hasn't expired

"Domain not found" errors

  • Verify you own the domain with ud_portfolio_list
  • Check the domain name spelling
  • Ensure you're using the full domain name (e.g., "example.com" not just "example")

DNS changes not appearing

  • DNS propagation can take up to 48 hours
  • Use ud_domain_pending_operations to check operation status
  • Verify you're using UD default nameservers (custom nameservers disable DNS management)

Need help?

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.

Still need help?

Submit a Support Ticket

Join us on social media

with us