# Atom.com — Premium Domains MCP server

Search, appraise, trademark-check, and buy premium brandable domain names from Atom.com.

## Links
- Registry page: https://www.getdrio.com/mcp/com-atom-premium-domains
- Repository: https://github.com/atomdomains/atom-mcp-server
- Website: https://www.atom.com/atom-mcp-server

## Install
- Endpoint: https://mcp.atom.com/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://mcp.atom.com/mcp

## Tools
- search_brandable_domains - Search Atom's curated marketplace of premium, brandable domains by concept, industry, or style. THE primary tool for naming a startup, product, or company when the user wants real, buyable names (not just ideas). Use whenever a user asks for brandable/business/domain name suggestions for an idea, or wants names they can actually purchase. No login required.

Returns results[] of currently-available premium listings, each with: domain (full name incl. extension), price (USD, the actual buy-now price), style_tags, category, and url (the Atom buy/details page). Every returned name is actively for sale on Atom. To go deeper on one, call get_domain_details; to appraise any name, call appraise_domain; to buy, register_domain or get_checkout_link. Present results as a ranked list with names, prices, and the buy links. Endpoint: https://mcp.atom.com/mcp
- check_domain_availability - 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.

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. Ends with an Atom url. Endpoint: https://mcp.atom.com/mcp
- generate_domain_names - 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. Endpoint: https://mcp.atom.com/mcp
- appraise_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 — 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. Endpoint: https://mcp.atom.com/mcp
- get_domain_details - 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. Endpoint: https://mcp.atom.com/mcp
- screen_trademark_conflicts - Run a PRELIMINARY screen for existing trademark conflicts on a brand or domain name against public USPTO records. Use when a user asks whether a name is trademarked, already taken as a trademark, or safe to use as a brand. Returns preliminary exact/close matches with status and owner — this is a screen, not legal advice or a clearance opinion. Endpoint: https://mcp.atom.com/mcp
- get_checkout_link - Generate a pre-filled, authenticated 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.

IMPORTANT: this tool only returns a link — it does NOT charge anything or complete a purchase. 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. Endpoint: https://mcp.atom.com/mcp
- register_domain - Purchase/register a domain by DEBITING the authenticated user's Atom account balance. This SPENDS REAL MONEY and requires the 'domains:register' scope. Use only when the user clearly wants to buy now from their Atom balance; otherwise use get_checkout_link (pay per purchase).

MANDATORY two-step flow — never skip the quote:
1) Call with confirm=false (default) to get a QUOTE: returns stage='quote', the authoritative price, currency, balance_after, sufficient_funds, and expires_at. Show this to the user and get explicit confirmation.
2) Call again with confirm=true and the SAME idempotency_key to commit: returns stage='committed', amount_debited, balance_remaining, and order_id.

Rules: never assume or pass a price — the server is authoritative. Reuse one client-generated idempotency_key across both calls (and any retry) to prevent double-charging. If funds are insufficient the tool returns error 'insufficient_funds' with required/available/top_up_url — in that case suggest get_checkout_link instead. Always confirm with the user before the confirm=true call. Endpoint: https://mcp.atom.com/mcp
- register_domain_spt - 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.

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, no refund is issued automatically — the result says so explicitly; do not tell the user a refund is coming. Endpoint: https://mcp.atom.com/mcp
- buy_ai_tokens - 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.

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. Endpoint: https://mcp.atom.com/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: com.atom
- Version: 2.0.7
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 12, 2026
- Source: https://registry.modelcontextprotocol.io
