{"version":"1.0","protocolVersion":"2025-11-25","serverInfo":{"name":"domaintoolbelt","title":"DomainToolBelt","version":"1.0.0"},"description":"Domain sales, auctions, expiring domains, value estimates and trends for AI assistants. Free, no sign-in.","iconUrl":"https://domaintoolbelt.com/favicon-128.png","websiteUrl":"https://domaintoolbelt.com","documentationUrl":"https://domaintoolbelt.com/apis/mcp-server","transport":{"type":"streamable-http","endpoint":"https://mcp.domaintoolbelt.com"},"remotes":[{"type":"streamable-http","url":"https://mcp.domaintoolbelt.com"}],"capabilities":{"tools":{"listChanged":false}},"authentication":{"required":false,"schemes":["bearer"],"note":"Without a key: top 3 rows per list, 200 calls a day and 10 a minute per address. Send Authorization: Bearer dtb_live_... for your plan's limits."},"instructions":"DomainToolBelt: data for domain investors. Reported domain sales, live auctions, names about to drop, trending keywords in new registrations, last known domain status, value estimates and domain history. PICK A TOOL: one domain -> get_domain_summary first (status, estimate, last sale, links in one call); price questions -> search_domain_sales for comparable sales; buying opportunities -> search_auctions and list_expiring_domains; ideas -> get_trending_keywords. ACCESS: without a key, 200 calls a day per address; a free key (https://console.domaintoolbelt.com) gives 10,000 credits a month, up to 500 a day. Free use returns the top 3 rows of a list; paid plans and topped-up credits return up to 100 rows and add the data tools (get_domain_status, get_domain_summary, get_domain_timeline, search_domain_sales). Without them, send the person to the linked domaintoolbelt.com page. If a list looks short, say more rows need a paid plan instead of calling again. Most tool calls cost 1 credit; the four data tools use 1 data query each from a monthly pool (Pro 500, Investor 2,500; after that 20 topped-up credits each, at most 10 a minute); plan the fewest calls that answer the question and do not repeat a call whose answer you already have. When credits run out the answer says so: tell the person, do not retry. Status is the last known state, not a live registrar check: before anyone buys, send them to the linked page. Estimates are estimates, not offers. Every result carries a domaintoolbelt.com link; cite it. Account tools (watched and saved domains, Keyword Watch, alerts) act on the signed-in person's own lists: confirm with the person before any change. A read-only sign-in cannot change anything.","tools":[{"name":"search_domain_sales","title":"Search domain sales","description":"Paid: search reported domain name sales (name, price, date, venue). Use it for comparable sales, price history of a keyword, or what sold recently.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Keyword to match inside the domain name, e.g. \"coffee\"."},"tld":{"type":"string","description":"Domain ending without the dot, e.g. \"com\", \"ai\", \"io\"."},"min_price":{"type":"integer","minimum":0,"description":"Lowest sale price in USD."},"window":{"type":"string","enum":["24h","7d","30d","all"],"description":"Time window. Defaults to the last 7 days when no query is given, and to all time when one is."},"sort":{"type":"string","enum":["date","price"],"default":"date","description":"Order: newest first, or highest price first."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Rows to return. Free answers hold 3 rows; a paid key gets up to 100 (default 25)."},"page":{"type":"integer","minimum":1,"maximum":50,"description":"Page number, paid keys only (free answers are page 1)."}},"additionalProperties":false},"requiresKey":true},{"name":"search_auctions","title":"Search live domain auctions","description":"Search live expired-domain and aftermarket auctions across marketplaces: current bid, bid count, end time, and our value estimate.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Keyword to match inside the domain name, e.g. \"coffee\"."},"tld":{"type":"string","description":"Domain ending without the dot, e.g. \"com\", \"ai\", \"io\"."},"marketplace":{"type":"string","description":"Marketplace id, e.g. \"godaddy\", \"namejet\", \"dynadot\", \"dropcatch\"."},"min_price":{"type":"integer","minimum":0,"description":"Lowest current bid in USD."},"max_price":{"type":"integer","minimum":0,"description":"Highest current bid in USD."},"ending_soon":{"type":"boolean","description":"Only auctions ending in the next 30 minutes."},"has_bids":{"type":"boolean","description":"Only auctions with at least one bid."},"query_mode":{"type":"string","enum":["contains","starts_with","ends_with"],"default":"contains","description":"Where query sits in the name."},"pattern":{"type":"string","description":"Name shape, one letter per character: L letter, N digit, C consonant, V vowel (a e i o u). E.g. \"LLL\", \"NNN\", \"LLN\", \"NNL\", \"CVC\", \"CVCV\". Sets the length."},"mask":{"type":"string","description":"Fixed characters by position: a-z, 0-9 and - are themselves, ? is any character, and capital L N C V are the classes of pattern. E.g. \"z??\" (3 characters starting with z), \"?a??\", \"ai??\", \"CVCo\". Sets the length and wins over pattern."},"name_type":{"type":"string","enum":["dictionary","two_words","brandable","word_twist","prefix_word","word_suffix"],"description":"dictionary = one dictionary word, two_words = two words, brandable = made-up but easy to say (5-8 letters), word_twist = one letter off a word (kube), prefix_word = prefix + word (getcoffee), word_suffix = word + suffix (coffeely)."},"min_length":{"type":"integer","minimum":1,"maximum":63,"description":"Shortest name, without the ending."},"max_length":{"type":"integer","minimum":1,"maximum":63,"description":"Longest name, without the ending."},"no_hyphens":{"type":"boolean","description":"Leave out names with a hyphen."},"no_numbers":{"type":"boolean","description":"Leave out names with a digit."},"min_age":{"type":"integer","minimum":1,"maximum":50,"description":"Only names first registered at least this many years ago."},"max_age":{"type":"integer","minimum":1,"maximum":50,"description":"Only names first registered at most this many years ago."},"sort":{"type":"string","enum":["ending","price","bids","emd","dr","age","age_newest"],"default":"ending","description":"Order: ending soonest, highest bid, most bids, most endings taken (emd), highest domain rating (dr), oldest name first (age), or newest name first (age_newest)."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Rows to return. Free answers hold 3 rows; a paid key gets up to 100 (default 25)."},"page":{"type":"integer","minimum":1,"maximum":50,"description":"Page number, paid keys only (free answers are page 1)."}},"additionalProperties":false}},{"name":"list_expiring_domains","title":"List expiring domains","description":"List registered domains that expired and are heading toward deletion, with the estimated days until they drop. Days are an estimate from the expiry timeline, not a promise.","inputSchema":{"type":"object","properties":{"query":{"type":"string","description":"Keyword to match inside the domain name, e.g. \"coffee\"."},"tld":{"type":"string","description":"Domain ending without the dot, e.g. \"com\", \"ai\", \"io\"."},"phase":{"type":"string","enum":["all","grace","redemption","pending"],"default":"all","description":"grace = just expired, redemption = owner can still restore, pending = about to be deleted."},"max_days":{"type":"integer","minimum":0,"maximum":90,"description":"Only names estimated to drop within this many days."},"query_mode":{"type":"string","enum":["contains","starts_with","ends_with"],"default":"contains","description":"Where query sits in the name."},"pattern":{"type":"string","description":"Name shape, one letter per character: L letter, N digit, C consonant, V vowel (a e i o u). E.g. \"LLL\", \"NNN\", \"LLN\", \"NNL\", \"CVC\", \"CVCV\". Sets the length."},"mask":{"type":"string","description":"Fixed characters by position: a-z, 0-9 and - are themselves, ? is any character, and capital L N C V are the classes of pattern. E.g. \"z??\" (3 characters starting with z), \"?a??\", \"ai??\", \"CVCo\". Sets the length and wins over pattern."},"name_type":{"type":"string","enum":["dictionary","two_words","brandable"],"description":"dictionary = one dictionary word, two_words = two words, brandable = made-up but easy to say (5-8 letters)."},"min_taken_in":{"type":"integer","minimum":2,"description":"Only names registered in at least this many endings."},"min_length":{"type":"integer","minimum":1,"maximum":63,"description":"Shortest name, without the ending."},"max_length":{"type":"integer","minimum":1,"maximum":63,"description":"Longest name, without the ending."},"no_hyphens":{"type":"boolean","description":"Leave out names with a hyphen."},"no_numbers":{"type":"boolean","description":"Leave out names with a digit."},"min_age":{"type":"integer","minimum":1,"maximum":50,"description":"Only names first registered at least this many years ago."},"max_age":{"type":"integer","minimum":1,"maximum":50,"description":"Only names first registered at most this many years ago."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Rows to return. Free answers hold 3 rows; a paid key gets up to 100 (default 25)."},"page":{"type":"integer","minimum":1,"maximum":50,"description":"Page number, paid keys only (free answers are page 1)."}},"additionalProperties":false}},{"name":"get_trending_keywords","title":"Trending keywords in new registrations","description":"Keywords that were newly registered across many domain endings in the recent window, a signal of rising demand.","inputSchema":{"type":"object","properties":{"window_days":{"type":"integer","minimum":1,"maximum":30,"default":7,"description":"Window in days."},"limit":{"type":"integer","minimum":1,"maximum":20,"description":"Keywords to return. Free answers hold 3; a paid key gets up to 20."}},"additionalProperties":false}},{"name":"get_domain_summary","title":"Domain summary","description":"Paid: headline facts for one domain: status, whether it is for sale or in auction, its last confirmed sale (price and date), our value range and registration year. From our records, not a live check. For how many endings the name is taken in, use check_name_across_tlds. Full history is on the linked page.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Full domain name, e.g. \"coffee.ai\"."}},"required":["domain"],"additionalProperties":false},"requiresKey":true},{"name":"get_domain_status","title":"Domain status","description":"Paid: last known status of up to 100 domains a call: available, registered, or registered and listed for sale (with the asking price). From our records, not a live check.","inputSchema":{"type":"object","properties":{"domains":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":100,"description":"Full domain names, e.g. [\"coffee.ai\", \"brewly.com\"]. Up to 100 in one call."}},"required":["domains"],"additionalProperties":false},"requiresKey":true},{"name":"check_name_across_tlds","title":"Name across endings (EMD)","description":"How many domain endings a name is registered in (its exact-match spread, EMD) and which ones, from registry data. Free answers list the first few endings; a paid key lists every one. Not a live check.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"The name without an ending, e.g. \"coffee\" (a full domain like \"coffee.ai\" also works)."}},"required":["name"],"additionalProperties":false}},{"name":"search_name_atlas","title":"Name Atlas: names taken in many endings","description":"Find names registered in many domain endings (a demand signal), filtered by a keyword, with whether each is in the zone of the ending you target. A name missing from that zone is unconfirmed, not available: check it before buying. Free answers hold the top rows; a paid key pages through up to 100 a page.","inputSchema":{"type":"object","properties":{"target":{"type":"string","description":"The ending you want the name in, without the dot, e.g. \"com\" or \"ai\"."},"keyword":{"type":"string","description":"Only names with this word, e.g. \"shop\"."},"mode":{"type":"string","enum":["starts_with","ends_with","contains"],"default":"contains","description":"Where the keyword sits in the name."},"min_taken_in":{"type":"integer","minimum":0,"default":0,"description":"Only names registered in at least this many endings."},"min_length":{"type":"integer","minimum":1,"maximum":63,"description":"Shortest name, without the ending."},"max_length":{"type":"integer","minimum":1,"maximum":63,"description":"Longest name, without the ending."},"letters_only":{"type":"boolean","description":"Only names made of letters (no digits or hyphens)."},"pattern":{"type":"string","description":"Name shape, one letter per character: L letter, N digit, C consonant, V vowel (a e i o u). E.g. \"LLL\", \"NNN\", \"LLN\", \"NNL\", \"CVC\", \"CVCV\". Sets the length."},"mask":{"type":"string","description":"Fixed characters by position: a-z, 0-9 and - are themselves, ? is any character, and capital L N C V are the classes of pattern. E.g. \"z??\" (3 characters starting with z), \"?a??\", \"ai??\", \"CVCo\". Sets the length and wins over pattern."},"words":{"type":"string","enum":["1","2"],"description":"Only names that are one word (1) or two words (2)."},"not_in":{"type":"string","description":"Comma-separated endings the name must not be registered in, e.g. \"net,org\" (up to 20)."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Rows to return. Free answers hold 3 rows; a paid key gets up to 100 (default 25)."},"page":{"type":"integer","minimum":1,"maximum":50,"description":"Page number, paid keys only (free answers are page 1)."}},"required":["target"],"additionalProperties":false}},{"name":"get_domain_timeline","title":"Domain history timeline","description":"Paid: every recorded sale of one domain (price, date, venue) and its dated history: registrations, drops, listings, price changes and auctions, newest first.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Full domain name, e.g. \"coffee.ai\"."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"History events to return (default 50)."}},"required":["domain"],"additionalProperties":false},"requiresKey":true},{"name":"list_watched_domains","title":"My watched domains","description":"Your account: the domains you watch for changes (owner, nameservers, expiry, auctions, drops), newest first, with your plan limit. sort=price_change ranks them by asking-price change.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Rows per answer (default 50)."},"page":{"type":"integer","minimum":1,"description":"Page number (default 1)."},"sort":{"type":"string","enum":["newest","price_change","expiring"],"default":"newest","description":"newest = newest first; price_change = only domains whose asking price changed, biggest move first (free plan: top 3); expiring = only domains whose registration ends within days, soonest first."},"days":{"type":"integer","minimum":1,"maximum":365,"description":"With sort=price_change: the window back in days (default 30, at most 90). With sort=expiring: how far ahead (default 30, at most 365)."}},"additionalProperties":false},"requiresKey":true,"account":true},{"name":"watch_domain","title":"Watch a domain","description":"Your account: start watching one domain. You get an alert when its owner, nameservers, expiry or status changes, or when it goes to auction or drops. Also saves it to your list. Counts against your plan limit.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Full domain name, e.g. \"example.com\"."}},"required":["domain"],"additionalProperties":false},"requiresKey":true,"account":true,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},{"name":"unwatch_domain","title":"Stop watching a domain","description":"Your account: stop alerts for one watched domain. It stays in your saved list.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Full domain name, e.g. \"example.com\"."}},"required":["domain"],"additionalProperties":false},"requiresKey":true,"account":true,"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},{"name":"list_saved_domains","title":"My saved domains","description":"Your account: the domains you saved (starred), newest first, with last known status, expiry and whether you watch each one. sort=price_change ranks them by asking-price change.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Rows per answer (default 50)."},"page":{"type":"integer","minimum":1,"description":"Page number (default 1)."},"sort":{"type":"string","enum":["newest","price_change","expiring"],"default":"newest","description":"newest = newest first; price_change = only domains whose asking price changed, biggest move first (free plan: top 3); expiring = only domains whose registration ends within days, soonest first."},"days":{"type":"integer","minimum":1,"maximum":365,"description":"With sort=price_change: the window back in days (default 30, at most 90). With sort=expiring: how far ahead (default 30, at most 365)."}},"additionalProperties":false},"requiresKey":true,"account":true},{"name":"save_domain","title":"Save a domain","description":"Your account: add one domain to your saved list (star), without alerts. Use watch_domain for alerts.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Full domain name, e.g. \"example.com\"."}},"required":["domain"],"additionalProperties":false},"requiresKey":true,"account":true,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},{"name":"unsave_domain","title":"Remove a saved domain","description":"Your account: remove one domain from your saved list. This also stops watching it.","inputSchema":{"type":"object","properties":{"domain":{"type":"string","description":"Full domain name, e.g. \"example.com\"."}},"required":["domain"],"additionalProperties":false},"requiresKey":true,"account":true,"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},{"name":"list_keyword_watches","title":"My Keyword Watch","description":"Your account: your saved keywords (Keyword Watch) and their settings, with your plan limit.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"requiresKey":true,"account":true},{"name":"add_keyword_watch","title":"Add a keyword to Keyword Watch","description":"Your account: watch a keyword across auctions, names about to drop, names for sale and recorded sales. Counts against your plan limit.","inputSchema":{"type":"object","properties":{"keyword":{"type":"string","description":"Keyword, 2 to 63 letters, digits or hyphens, e.g. \"coffee\". Leave out with a name_type for a pattern watch (any new name of that kind)."},"match":{"type":"string","enum":["contains","starts","ends","exact"],"default":"contains","description":"Where the keyword sits in the name."},"tlds":{"type":"array","items":{"type":"string"},"maxItems":50,"description":"Endings without the dot, e.g. [\"com\",\"ai\"]. Leave out for all."},"sources":{"type":"array","items":{"type":"string","enum":["auctions","drops","sold","aftermarket"]},"description":"Where to look. Leave out for auctions and drops."},"name_type":{"type":"string","enum":["1-word","2-word","LLL","LLLL","LLLLL","NNN","NNNN","CVCV","CVCVC","brandable"],"description":"Only names of this kind, e.g. \"1-word\". Counts against your plan's watches with a name type (Free 0, Pro 1, Investor 5); leave it out for any name."},"min_emd":{"type":"integer","minimum":1,"description":"Only names taken in at least this many other endings."},"max_length":{"type":"integer","minimum":2,"maximum":63,"description":"Longest name, without the ending."},"no_hyphens":{"type":"boolean"},"no_digits":{"type":"boolean"},"alerts":{"type":"boolean","default":true,"description":"Send alerts for new matches."}},"additionalProperties":false},"requiresKey":true,"account":true,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},{"name":"remove_keyword_watch","title":"Remove a keyword from Keyword Watch","description":"Your account: delete one saved keyword and its alerts.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Keyword Watch id, from list_keyword_watches."}},"required":["id"],"additionalProperties":false},"requiresKey":true,"account":true,"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},{"name":"get_keyword_watch_matches","title":"Matches for one keyword","description":"Your account: what one saved keyword finds now: auctions, names for sale, names about to drop, recent sales and recent catches. New since your last visit are marked.","inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Keyword Watch id, from list_keyword_watches."},"limit":{"type":"integer","minimum":1,"maximum":200,"description":"Rows per answer (default 50)."},"page":{"type":"integer","minimum":1,"description":"Page number (default 1)."}},"required":["id"],"additionalProperties":false},"requiresKey":true,"account":true},{"name":"list_alerts","title":"My alerts","description":"Your account: your latest alerts (up to 50) for watched domains and keywords, newest first, with the unread total.","inputSchema":{"type":"object","properties":{"unread_only":{"type":"boolean","default":false}},"additionalProperties":false},"requiresKey":true,"account":true},{"name":"mark_alerts_read","title":"Mark alerts read","description":"Your account: mark some alerts read (ids from list_alerts), or all of them.","inputSchema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"integer"},"maxItems":200},"all":{"type":"boolean"}},"additionalProperties":false},"requiresKey":true,"account":true,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},{"name":"get_webhook","title":"My alert webhook","description":"Your account: the alert webhook (paid API plans). Shows the URL, whether it is on, and the last delivery. Never shows the signing secret.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"requiresKey":true,"account":true},{"name":"set_webhook","title":"Set my alert webhook","description":"Your account: set the HTTPS URL that receives your alerts as signed JSON POSTs, turn it on or off, or rotate the signing secret. Paid API plans only. The secret is in the answer only when it is new.","inputSchema":{"type":"object","properties":{"url":{"type":["string","null"],"description":"HTTPS URL on a public address. Empty or null removes it."},"enabled":{"type":"boolean","description":"Turn alerts to the webhook on or off."},"regenerate_secret":{"type":"boolean","description":"Make a new signing secret. The old one stops working at once."}},"additionalProperties":false},"requiresKey":true,"account":true,"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":false}},{"name":"test_webhook","title":"Test my alert webhook","description":"Your account: send one signed test alert to your webhook URL now and say how it answered. Up to 5 tests in 10 minutes.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"requiresKey":true,"account":true,"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}}]}