Connection check
verified live · 20h ago
premium-domains
Search, appraise, trademark-check, and buy premium brandable domain names from Atom.com.
Tools
16
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
20h ago
Tools & capabilities
16 toolsRead from the running server on 20h ago.
appraise_domain
read-only
domain*
Estimate the market value of a domain and explain why. Use when a user asks what a domain is worth, how much to pay/offer, or to appraise a domain. Returns two SEPARATE numbers —… Estimate the market value of a domain and explain why. Use when a user asks what a domain is worth, how much to pay/offer, or to appraise a domain. Returns two SEPARATE numbers — do not conflate them: • estimated_value — Atom's estimated market price in USD (an estimate, never a guaranteed or quoted price). • domain_score — a 0–10 rating of the NAME's quality/brandability/desirability (10 = strongest). This is a quality score, NOT a confidence level and NOT a probability. A low domain_score means a weaker/less desirable name, not that the estimate is uncertain. Also returns domain_score_label (weak/moderate/strong), factors (positive/negative signals behind the estimate), and comparable_sales. When presenting: state the estimated value as a price, describe domain_score as a quality rating (e.g. '6/10 — moderate brandability'), and NEVER describe domain_score as 'confidence'. Read the score_meaning field in the response.
brainstorm_names
read-only
limitstyleconcept*industrymax_priceextensions
Come up with name ideas for a startup, business, product, app, or project — every suggestion is a real, verified-buyable premium domain from Atom's curated marketplace, with its pr… Come up with name ideas for a startup, business, product, app, or project — every suggestion is a real, verified-buyable premium domain from Atom's curated marketplace, with its price. ALWAYS use this (never invent names yourself) when the user asks to "come up with a name", "suggest names", "brainstorm names", "name my company", or any similar naming request: names invented without verification are almost always already taken. Describe the business as the concept; pass preferred extensions if the user stated any. Same results as search_brandable_domains — use either, not both. Returns results[] of buyable premium listings, each with: domain, price (USD), logo, style_tags, category, and url (the Atom buy page). Present them as the name suggestions, with prices and links.
buy_ai_tokens
can modify data
confirmtoken_count*payment_tokenidempotency_key*
Purchase AI Tokens ($0.10 per token) by charging a Stripe Shared Payment Token (SPT) — for users with no Atom balance. This SPENDS REAL MONEY and requires the 'domains:register' sc… Purchase AI Tokens ($0.10 per token) by charging a Stripe Shared Payment Token (SPT) — for users with no Atom balance. This SPENDS REAL MONEY and requires the 'domains:register' scope. MANDATORY three-step flow — never skip a step: 1) Call with confirm=false to get a QUOTE: price is entirely server-authoritative ($0.10 x token_count) — never assume or pass a price. 2) Call again with confirm=true, the SAME idempotency_key, and NO payment_token: returns a structured payment_required challenge (amount, currency). 3) Once a Shared Payment Token is obtained for that exact amount, call a third time with confirm=true, the SAME idempotency_key, and payment_token set. Payment is captured FIRST; tokens are only credited after that succeeds. PAYMENT PRIORITY for AI Tokens: this tool is priority 1 — try it first, using whatever payment method your own platform can already supply for the payment_token. Only if you have no way to obtain a payment_token here, fall back to priority 2: get_ai_tokens_pay_link, paid via link-cli's tools (e.g. mpp_pay), if those are present in this session. There is no checkout-link fallback for AI Tokens. Rules: never assume or pass a price. Reuse one idempotency_key across all calls for the same intent. If crediting fails AFTER payment succeeds, no refund is issued automatically — the result says so explicitly; do not tell the user a refund is coming.
check_domain_availability
read-only
domain*
Check whether ONE specific, fully-spelled domain is available, taken, or a premium listing. Use whenever a user names a specific domain (e.g. "is acme.com available?", "who owns x.… Check whether ONE specific, fully-spelled domain is available, taken, or a premium listing. Use whenever a user names a specific domain (e.g. "is acme.com available?", "who owns x.io?", "can I get nova.ai?"). For open-ended "suggest names for my idea" requests use search_brandable_domains instead. If the user wants to PURCHASE a domain they already know is an Atom marketplace listing, use get_domain_details instead — this tool checks fresh-registration availability, which will misleadingly report an already-listed/owned domain as "taken." Returns: status ("available" = registrable now | "taken" = registered/unavailable | "premium" = for sale on Atom), registrable (bool), price + currency when applicable, estimated_value (rough appraisal, optional), and alternatives[] — when the domain is taken or premium, the closest available premium names from Atom (each with domain, price, url) so the user always has a buyable path. IMPORTANT — which tool to call next depends on status, and the top-level url means different things accordingly: status "available" (a fresh domain, NOT an Atom marketplace listing) → call register_domain to register it directly in this conversation; its url is a self-service registration page on Atom, only worth mentioning if the user prefers to do it themselves. Status "taken" or "premium" (an existing Atom marketplace listing) → call purchase_domain to buy it directly in this conversation; its url is the marketplace listing page. Never call register_domain for a "premium"/"taken" domain or purchase_domain for an "available" one — each rejects the wrong case with a clear error. Both tools quote a real price breakdown and ask you to state the payment method (Atom balance or saved card) before charging anything. If register_domain reports error registrant_contact_required, that's expected for a fresh domain and not a dead end: ask the user for their name, phone, address, city, zip, and country, call create_registrant_contact with those, then retry register_domain with confirm=true.
create_registrant_contact
read-only
zip*city*name*emailphone*state
+3
Create or update the authenticated user's registrant (WHOIS) contact — the name/address/phone/email a domain registry requires to complete a registration or marketplace-domain tran… Create or update the authenticated user's registrant (WHOIS) contact — the name/address/phone/email a domain registry requires to complete a registration or marketplace-domain transfer. Call this when a tool reports error 'registrant_contact_required'. All fields are required except state and organization (state only where applicable). This does NOT charge anything. If a contact already exists, this UPDATES it with the fields you pass — always send the full current set of fields, not just the ones that changed.
generate_domain_names
read-only
countstyleconcept*industryextensions
Invent NEW brandable domain name candidates for a concept, then ground each against live availability and Atom premium inventory — so every returned name is actually obtainable. Us… Invent NEW brandable domain name candidates for a concept, then ground each against live availability and Atom premium inventory — so every returned name is actually obtainable. Use when search_brandable_domains' curated results aren't enough, or the user explicitly wants fresh/invented/made-up names they can register. (For existing curated listings, prefer search_brandable_domains.) Returns results[], each with: domain (full name incl. extension), status ('available' = registrable now | 'premium' = an Atom listing), price + currency when known, style_tags, and url. Only names with availability/price attached are returned — never ungrounded ideas. Present as a list noting which are register-now vs Atom premium listings.
get_ai_tokens_pay_link
read-only
token_count*
Get a real, payable Machine Payment Protocol (MPP) URL to top up AI Tokens ($0.10/token) — for use with an MPP-native payment agent (e.g. Stripe's link-cli), NOT with buy_ai_tokens… Get a real, payable Machine Payment Protocol (MPP) URL to top up AI Tokens ($0.10/token) — for use with an MPP-native payment agent (e.g. Stripe's link-cli), NOT with buy_ai_tokens's own payment flow (that tool's challenge cannot be paid by an external MPP agent). Use this ONLY when an MPP-native agent's tools (e.g. link-cli's mpp_pay) are available in this session. PAYMENT PRIORITY: this is priority 2 for AI Tokens — reach for it only after buy_ai_tokens's own in-band payment flow (priority 1) isn't viable (no payment_token available from your own platform), and only when link-cli is present. Always hand over the exact server-computed pay_url/price returned here — never estimate or recompute the amount yourself. There is no checkout-link fallback for AI Tokens. Returns a pay_url that a real HTTP 402 challenge is served from — hand it directly to the MPP agent's pay tool (e.g. mpp_pay) rather than fetching or decoding it yourself.
get_checkout_link
read-only
domain*term_years
Generate a pre-filled Atom checkout URL for a chosen domain so the user can pay on Atom. Use when a user wants to BUY a domain but is not using balance registration, lacks sufficie… Generate a pre-filled Atom checkout URL for a chosen domain so the user can pay on Atom. Use when a user wants to BUY a domain but is not using balance registration, lacks sufficient balance, or prefers to pay per purchase (card/PayPal). This is the no-debit alternative to register_domain. PAYMENT PRIORITY: this is priority 3, the LAST RESORT — only for buying a premium/marketplace domain, only after BOTH register_domain (Atom balance, priority 1) is insufficient AND get_domain_purchase_pay_link + link-cli (priority 2) isn't available. There is no equivalent of this tool for a fresh domain registration or an AI Tokens purchase — neither has a checkout-link fallback. IMPORTANT: this tool only returns a link — it does NOT charge anything or complete a purchase, and the link is NOT pre-authenticated. Tell the user they must already be logged into atom.com in the browser where they open it, or they will hit a login page instead of checkout. If the domain is already sold or is a make-offer/price-on-request listing, this errors with 'not_found' or 'not_for_sale' rather than returning a link — check get_domain_details first if unsure. Returns: domain, price + currency, checkout_url (give this to the user to finish payment), and expires_at. Present the price and the checkout link; tell the user payment completes on Atom.
get_domain_details
read-only
domain*
Get the full detail record for ONE specific Atom domain listing — the deep-dive after a user picks a name from search_brandable_domains or generate_domain_names, or asks to know mo… Get the full detail record for ONE specific Atom domain listing — the deep-dive after a user picks a name from search_brandable_domains or generate_domain_names, or asks to know more about a particular domain. Returns: status, price + currency, extension_options[] (other TLDs of the name for sale, with prices), category, description, age/traffic when available, and purchase_url/details_url. If the domain is not an Atom listing, returns error "not_found" (then use check_domain_availability for registry status). Present price, key attributes, and the purchase link. IMPORTANT: when price_on_request is true, price is null on purpose — this listing's price is deliberately undisclosed (make-offer/price-on-request). Never state or imply a price (including "$0" or "free") in that case; tell the user to contact the seller or make an offer via purchase_url. When available_for_purchase is false, the listing has already been sold — purchase_url is not usable; tell the user this domain is no longer available.
get_domain_purchase_pay_link
read-only
domain*
Get a real, payable Machine Payment Protocol (MPP) URL to purchase an ALREADY-LISTED Atom marketplace domain via Stripe SPT (the SPT-paid sibling of register_domain, which pays fro… Get a real, payable Machine Payment Protocol (MPP) URL to purchase an ALREADY-LISTED Atom marketplace domain via Stripe SPT (the SPT-paid sibling of register_domain, which pays from an Atom balance instead) — for use with an MPP-native payment agent (e.g. Stripe's link-cli). Use this ONLY when an MPP-native agent's tools (e.g. link-cli's mpp_pay) are available in this session, and only for domains that are curated Atom listings — for a fresh, unlisted domain, use get_domain_register_pay_link instead. PAYMENT PRIORITY: this is priority 2 for buying a premium/marketplace domain — reach for it only after register_domain (Atom balance, priority 1) reports insufficient funds, and only when link-cli is present. Always hand over the exact server-computed pay_url/price returned here — never estimate or recompute the amount yourself. If link-cli is not available either, use get_checkout_link (priority 3, last resort) instead. Returns a pay_url that a real HTTP 402 challenge is served from — hand it directly to the MPP agent's pay tool (e.g. mpp_pay) rather than fetching or decoding it yourself. If this reports error 'registrant_contact_required' (the transfer needs this to complete once paid), ask the user for their name, phone, address, city, zip, and country, call create_registrant_contact with those, then retry this tool — this is expected and not a dead end.
get_domain_register_pay_link
read-only
domain*
Get a real, payable Machine Payment Protocol (MPP) URL to register a FRESH domain (an available domain that is NOT a curated Atom marketplace listing — for that, use get_domain_pur… Get a real, payable Machine Payment Protocol (MPP) URL to register a FRESH domain (an available domain that is NOT a curated Atom marketplace listing — for that, use get_domain_purchase_pay_link instead) via Stripe SPT — for use with an MPP-native payment agent (e.g. Stripe's link-cli), NOT with register_domain_spt's own payment flow (that tool's challenge cannot be paid by an external MPP agent). Use this ONLY when an MPP-native agent's tools (e.g. link-cli's mpp_pay) are available in this session. PAYMENT PRIORITY: this is priority 2 for a fresh registration — reach for it only after register_domain_spt's own in-band payment flow (priority 1) isn't viable (no payment_token available from your own platform), and only when link-cli is present. Always hand over the exact server-computed pay_url/price returned here — never estimate or recompute the amount yourself. There is no checkout-link fallback for a fresh registration. Returns a pay_url that a real HTTP 402 challenge is served from — hand it directly to the MPP agent's pay tool (e.g. mpp_pay) rather than fetching or decoding it yourself. term_years is never a caller input — always derived server-side from the TLD. If this reports error 'registrant_contact_required' (a registry needs this to complete registration), ask the user for their name, phone, address, city, zip, and country, call create_registrant_contact with those, then retry this tool — this is expected and not a dead end.
purchase_domain
can modify data
domain*confirmpayment_methodidempotency_key*
Purchase an ALREADY-LISTED Atom marketplace domain. This SPENDS REAL MONEY and requires the 'domains:register' scope. Use this ONLY when check_domain_availability reported status '… Purchase an ALREADY-LISTED Atom marketplace domain. This SPENDS REAL MONEY and requires the 'domains:register' scope. Use this ONLY when check_domain_availability reported status 'premium' or 'taken' (a curated Atom listing) for this exact domain, or get_domain_details confirmed it's a listing. If the domain is instead fresh/never-listed (status 'available'), use register_domain instead — never this tool; it will reject a fresh domain with error 'not_a_marketplace_listing'. MANDATORY two-step flow — never skip the quote: 1) Call with confirm=false (default) to get a QUOTE: returns the authoritative price, its breakdown (sale_price, registration_fee, vat_amount), the user's current balance, sufficient_funds, whether a saved card exists (has_saved_card / saved_card), and expires_at. 2) SHOW THE USER: the exact price breakdown, and state plainly which payment method you are about to use and how much it will charge — e.g. "$1,250.00 (listing price $1,200 + $50 registration fee) from your Atom balance" or "...from your saved Visa ending 4242". Get explicit confirmation before proceeding. 3) Call again with confirm=true, the SAME idempotency_key, and payment_method set to exactly 'balance' or 'saved_card' (REQUIRED at this step — never omit it or guess): commits the charge and the purchase. Returns status='purchased', amount_charged, payment_method, order_id, and order_url. Rules: never assume or pass a price. Reuse one client-generated idempotency_key across both calls (and any retry) to prevent double-charging. If payment_method='balance' and funds are insufficient, error 'insufficient_funds' reports required/available/top_up_url and whether a saved card exists as an alternative — tell the user both options plainly, do not silently retry with the other method. If payment_method='saved_card' and the charge fails, error 'card_payment_failed' reports why (including if it needs 3D Secure authentication, which cannot be completed here — offer balance or a different card instead). If it reports error 'registrant_contact_required' (a marketplace-domain transfer needs this to complete), ask the user for their name, phone, address, city, zip, and country, call create_registrant_contact with those, then retry with confirm=true — this is expected and not a dead end.
register_domain
can modify data
domain*confirmpayment_methodidempotency_key*
Register a FRESH domain — an available domain that is NOT an existing Atom marketplace listing — directly at the registrar. This SPENDS REAL MONEY and requires the 'domains:registe… Register a FRESH domain — an available domain that is NOT an existing Atom marketplace listing — directly at the registrar. This SPENDS REAL MONEY and requires the 'domains:register' scope. Use this ONLY when check_domain_availability reported status 'available' for this exact domain. If the domain is instead an Atom marketplace listing (status 'premium'/'taken'), use purchase_domain instead — never this tool; it will reject a marketplace domain with error 'is_marketplace_listing'. MANDATORY two-step flow — never skip the quote: 1) Call with confirm=false (default) to get a QUOTE: returns the authoritative price, its breakdown (unit_price, icann_total, vat_amount), term_years (server-derived from the TLD — never assume or pass one), the user's current balance, sufficient_funds, whether a saved card exists (has_saved_card / saved_card), and expires_at. 2) SHOW THE USER: the exact price breakdown, and state plainly which payment method you are about to use and how much it will charge — e.g. "$19.98 (domain $17.99 + ICANN fee $1.99) from your Atom balance" or "...from your saved Visa ending 4242". Get explicit confirmation before proceeding. 3) Call again with confirm=true, the SAME idempotency_key, and payment_method set to exactly 'balance' or 'saved_card' (REQUIRED at this step — never omit it or guess): commits the charge and the registration. Returns status='registered', amount_charged, payment_method, and registrar_domain_id — the domain now shows up in the user's Atom account (dashboard → My Domains). Rules: never assume or pass a price. Reuse one client-generated idempotency_key across both calls (and any retry) to prevent double-charging. If it reports error 'registrant_contact_required' (a registry needs this to complete registration), call create_registrant_contact with the user's name, phone, address, city, zip, and country, then retry with confirm=true. If payment_method='balance' and funds are insufficient, error 'insufficient_funds' reports required/available/top_up_url and whether a saved card exists as an alternative — tell the user both options plainly, do not silently retry with the other method. If payment_method='saved_card' and the charge fails, error 'card_payment_failed' reports why (including if it needs 3D Secure authentication, which cannot be completed here — offer balance or a different card instead).
register_domain_spt
can modify data
domain*confirmpayment_tokenidempotency_key*
Register a FRESH domain (an available domain that is NOT a curated Atom marketplace listing) by charging a Stripe Shared Payment Token (SPT) — for users with no Atom balance. This… Register a FRESH domain (an available domain that is NOT a curated Atom marketplace listing) by charging a Stripe Shared Payment Token (SPT) — for users with no Atom balance. This SPENDS REAL MONEY and requires the 'domains:register' scope. For already-listed marketplace domains paid from an Atom balance, use register_domain instead. MANDATORY three-step flow — never skip a step: 1) Call with confirm=false to get a QUOTE: price and term_years, both entirely server-authoritative (term_years is derived from the TLD; there is no such input — never invent one). 2) Call again with confirm=true, the SAME idempotency_key, and NO payment_token: returns a structured payment_required challenge (amount, currency). 3) Once a Shared Payment Token is obtained for that exact amount, call a third time with confirm=true, the SAME idempotency_key, and payment_token set. Payment is captured FIRST; registration only starts after that succeeds. PAYMENT PRIORITY for a fresh registration: this tool is priority 1 — try it first, using whatever payment method your own platform can already supply for the payment_token (no external tool needed). Only if you have no way to obtain a payment_token here, fall back to priority 2: get_domain_register_pay_link, paid via link-cli's tools (e.g. mpp_pay), if those are present in this session. There is no checkout-link fallback for a fresh registration — get_checkout_link only works for an already-listed marketplace domain. Rules: never assume or pass a price or term_years. Reuse one idempotency_key across all calls for the same intent. If registration fails AFTER payment succeeds, the registrar submission itself attempts a real refund of the charge — the result reports whether that happened. If it reports error 'registrant_contact_required', ask the user for their name, phone, address, city, zip, and country, call create_registrant_contact with those, then retry from step 1 — this is expected and not a dead end.
screen_trademark_conflicts
read-only
modename*limitstatustrademark_class
Run a PRELIMINARY screen for existing trademark conflicts on a brand or domain name against public USPTO records. ALWAYS use this for ANY trademark question about a name — "any tra… Run a PRELIMINARY screen for existing trademark conflicts on a brand or domain name against public USPTO records. ALWAYS use this for ANY trademark question about a name — "any trademark issues?", "is this trademarked?", "is it safe to use as a brand?" — including follow-ups about a name discussed earlier in the conversation. Do NOT answer trademark questions from web search or memory; this tool queries the actual USPTO register. Returns preliminary exact/close matches with status and owner — this is a screen, not legal advice or a clearance opinion.
search_brandable_domains
read-only
limitstyleconcept*industrymax_priceextensions