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.
Search for domain availability and pricing across TLDs.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string or string[] | Yes | Domain name(s) to search. Can be full domain ("example.com") or search term ("mybusiness"). Up to 10 queries. |
tlds | string[] | No | TLDs to search (e.g., ["com", "org", "io"]). Max 5. Use ud_tld_list to verify support. |
limit | number | No | Results to return (1-100, default: 20) |
offset | number | No | Results 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'"
Not all ICANN TLDs are supported. Use ud_tld_list first to verify. Prices are returned in cents (USD).
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?"
List domains in your portfolio with filtering and sorting.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
page | number | No | Page number, 1-indexed (default: 1) |
pageSize | number | No | Domains per page (1-100, default: 50) |
searchTerm | string | No | Filter by domain name |
status | string | No | "all", "for-sale", or "unlisted" (default: "all") |
registryType | string | No | "dns" (ICANN) or "web3" (default: "dns") |
expiringWithinDays | number | No | Filter domains expiring within N days (1-365) |
expired | boolean | No | Filter for expired domains |
minLength / maxLength | number | No | Filter by domain label length |
autoRenewal | string | No | "true" or "false" |
tagFilters | string[] | No | Filter by tags (e.g., ["personal", "business"]) |
orderBy | string | No | Sort by: "name", "length", "purchasedAt", "expiresAt", "listingPrice", "offers", "leads", "watchlistCount" |
orderDirection | string | No | "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"
List ICANN contacts for domain registration.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
includeDisabled | boolean | No | Include disabled contacts (default: false) |
Example prompts:
- "Show my ICANN contacts"
- "List all registration contacts including disabled ones"
Create a new ICANN contact for DNS domain registration.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
firstName | string | Yes | Contact first name |
lastName | string | Yes | Contact last name |
email | string | Yes | Contact email address |
phone | object | Yes | { dialingPrefix: "+1", number: "5551234567" } |
street | string | Yes | Street address |
city | string | Yes | City |
stateProvince | string | Yes | State/province code |
postalCode | string | Yes | Postal/ZIP code |
countryCode | string | Yes | Two-letter ISO country code (e.g., "US") |
organization | string | No | Company 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"
Required before purchasing .com, .org, .net, and other ICANN domains.
Get shopping cart contents with pricing breakdown.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
discountCode | string | No | Promo code to apply |
Example prompts:
- "Show my cart"
- "What's in my shopping cart?"
- "Apply promo code SAVE20 to my cart"
Add primary (unregistered) domains to cart.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domains | array | Yes | Array of domain objects |
domains[].name | string | Yes | Full domain name (e.g., "example.com") |
domains[].quantity | number | No | Registration 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"
Add marketplace-listed domains to cart (buy-now or lease-to-own).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domains | array | Yes | Array of domain objects (max 50) |
domains[].name | string | Yes | Listed domain name |
domains[].leaseToOwnOptions | object | No | Lease-to-own configuration |
domains[].leaseToOwnOptions.type | string | No | "equal_installments" or "down_payment_plus_equal_installments" |
domains[].leaseToOwnOptions.termLength | number | No | Payment term (3-24 months) |
domains[].leaseToOwnOptions.downPaymentPercentage | number | No | Down 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"
Add domain renewals to cart.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domains | array | Yes | Array of domain objects (max 50) |
domains[].name | string | Yes | Domain to renew (must own) |
domains[].quantity | number | No | Renewal years (1-10, default: 1) |
Example prompts:
- "Renew example.com for 1 year"
- "Add 3-year renewal for mybrand.io"
Remove items from cart.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
productIds | string[] | Yes | Product IDs to remove (from cart response) |
Example prompts:
- "Remove example.com from my cart"
- "Clear the domain I just added"
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?"
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"
Complete checkout using saved payment method or account balance.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
paymentMethodId | string | No | Stripe payment method ID |
useAccountBalance | boolean | No | Use account balance (default: true) |
discountCode | string | No | Promo code |
contactId | string | No | ICANN 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"
For DNS domains (.com, .org, etc.), you must have an ICANN contact. Use ud_contacts_list to find your contact ID.
Generate a checkout URL for browser-based purchase.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
discountCode | string | No | Promo code for checkout |
Example prompts:
- "Give me a checkout link"
- "Generate a URL to complete my purchase"
Create marketplace listings to sell domains.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domains | array | Yes | Array of listing objects (max 50) |
domains[].domainName | string | Yes | Domain to list |
domains[].priceInCents | number | No | Buy-now price in cents (0 for offers-only) |
domains[].expiresAt | string | No | Listing expiration (ISO 8601) |
domains[].isEmailAliasUsed | boolean | No | Enable email contact feature |
domains[].listingSettings | object | No | Additional settings |
domains[].listingSettings.isOfferFeatureEnabled | boolean | No | Accept offers |
domains[].listingSettings.minOfferAmountInCents | number | No | Minimum offer amount |
domains[].leaseToOwnOptions | object | No | Lease-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"
Prices are in cents (e.g., $5,000 = 500000 cents). Set priceInCents to 0 for offers-only listings.
Update existing marketplace listings.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
listings | array | Yes | Array of update objects (max 50) |
listings[].id | number | Yes | Listing ID |
listings[].priceInCents | number | No | New price in cents |
listings[].expiresAt | string | No | New expiration date |
listings[].listingSettings | object | No | Updated settings |
Example prompts:
- "Change mydomain.com listing price to $7,500"
- "Enable offers on my listing with ID 12345"
Cancel marketplace listings.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
listingIds | number[] | Yes | Listing IDs to cancel (max 50) |
Example prompts:
- "Cancel my listing for mydomain.com"
- "Remove mydomain.com from the marketplace"
List incoming offers on your domains.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domainName | string | No | Filter by domain |
group | string | No | "active" or "sold" |
page | number | No | Page number |
Example prompts:
- "Show me all incoming offers"
- "What offers do I have on mydomain.com?"
- "Show my accepted offers"
Accept or reject offers on your domains.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
offers | array | Yes | Array of response objects (max 50) |
offers[].id | number | Yes | Offer ID |
offers[].action | string | Yes | "accept" or "reject" |
Example prompts:
- "Accept offer 12345"
- "Reject the $500 offer on mydomain.com"
List domain conversation leads (buyer-seller messages).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | No | Filter by domain name |
skipEmpty | boolean | No | Skip conversations with no messages (default: false) |
skip | number | No | Pagination offset (default: 0) |
take | number | No | Conversations to return (1-100, default: 20) |
Example prompts:
- "Show my domain conversations"
- "List leads for mydomain.com"
Contact a domain seller to start a conversation.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain to inquire about |
buyerId | string | No | Encoded buyer ID (for offer responses) |
Example prompts:
- "Contact the seller of premium.com"
- "Start a conversation about example.io"
Get messages in a domain conversation.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
conversationId | number | Yes | Conversation ID |
cursor | string | No | Pagination cursor for older messages |
Example prompts:
- "Show messages in conversation 12345"
- "What did the seller say?"
Send a message in a domain conversation.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
conversationId | number | Yes | Conversation ID |
content | string | Yes | Message text (1-1000 characters) |
Example prompts:
- "Send 'I'm interested in your domain' to conversation 12345"
- "Reply asking about their minimum price"
List DNS records for a domain.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
type | string | No | Filter by record type (A, AAAA, CNAME, MX, TXT, NS) |
subName | string | No | Filter by subdomain |
cursor | string | No | Pagination cursor |
Example prompts:
- "Show DNS records for mybrand.io"
- "List all MX records for example.com"
- "What A records does mydomain.com have?"
Add a DNS record to a domain.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
type | string | Yes | Record type: A, AAAA, CNAME, MX, TXT, NS, SRV, CAA |
values | string[] | Yes | Record values |
subName | string | No | Subdomain (default: "@" for root) |
ttl | number | No | Time-to-live in seconds (60-86400, default: 3600) |
upsertMode | string | No | "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"
Use subName: "@" for root domain records. Use upsertMode: "replace" to overwrite existing records of the same type/subname.
Update an existing DNS record.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
recordId | string | Yes | Record ID (from ud_dns_records_list) |
values | string[] | Yes | New record values |
ttl | number | No | New 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"
Remove a specific DNS record.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
recordId | string | Yes | Record ID to remove |
Example prompts:
- "Delete the old A record"
- "Remove DNS record abc123"
Remove ALL user-created DNS records from a domain.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
confirm | boolean | Yes | Must be true to confirm deletion |
Example prompts:
- "Remove all DNS records from mybrand.io"
- "Clear all my custom DNS settings"
This is destructive. The confirm: true parameter is required.
List nameservers for a domain.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
includeDnssec | boolean | No | Include DNSSEC information |
Example prompts:
- "What nameservers is mybrand.io using?"
- "Show nameserver configuration with DNSSEC status"
Set custom (external) nameservers.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
nameservers | string[] | Yes | Nameserver hostnames (2-12 required) |
dnssec | object | No | DNSSEC DS records |
Example prompts:
- "Point mybrand.io to Cloudflare nameservers"
- "Set custom nameservers: ns1.example.com and ns2.example.com"
Requires 2-12 nameserver hostnames. DNS record management through this tool will be disabled when using custom nameservers.
Reset to Unstoppable Domains default nameservers.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
Example prompts:
- "Switch mybrand.io back to default nameservers"
- "Reset nameservers to UD defaults"
Re-enables DNS record management through these tools.
List hosting/forwarding configurations.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
cursor | string | No | Pagination cursor |
Example prompts:
- "Show hosting configuration for mybrand.io"
- "What redirects are set up for my domain?"
Add hosting configuration (for-sale page, 301/302 redirect).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
type | string | Yes | "LISTING_PAGE", "REDIRECT_301", or "REDIRECT_302" |
targetUrl | string | Conditional | Required for redirects |
subName | string | No | Subdomain to configure |
forceCompatibility | boolean | No | Auto-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"
Remove hosting/forwarding configuration.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
subName | string | No | Subdomain to remove config from |
deleteAll | boolean | No | Remove ALL hosting configs |
confirmDeleteAll | boolean | Conditional | Required if deleteAll is true |
Example prompts:
- "Remove the redirect from mybrand.io"
- "Delete all hosting configurations"
Check status of pending DNS operations.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
domain | string | Yes | Domain name |
includeCompleted | boolean | No | Include operations completed in last 24 hours |
Example prompts:
- "Are there any pending DNS changes for mybrand.io?"
- "Check the status of my nameserver update"
Enable or disable auto-renewal for ICANN domains.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
action | string | Yes | "enable" or "disable" |
domains | array | Yes | Array of domain objects (max 50) |
domains[].name | string | Yes | Domain name |
paymentMethodId | string | No | Payment 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"
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.