Skip to content

GoMain

by gomain.ai · remote · no sign-in to list tools · v1.0.0 · published by ai.gomain

Domain availability and prices from 40+ registrars, name checks, DNS setup, and a domain broker

Changes · 12

15 tools: 12 change things and 3 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http domains https://gomain.hottub.workers.dev/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "list_domain_for_sale" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "list_domain_for_sale" says "list": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

15 tools

Changes things 12Claude Code: ask
  • acquisition_reportFor a domain someone already owns: whether it's listed for sale and where (with the asking price when the sale page shows one), when it could drop, its estimated value, the realist…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    For a domain someone already owns: whether it's listed for sale and where (with the asking price when the sale page shows one), when it could drop, its estimated value, the realistic chance of buying it, the options in order (buy now, make an offer, backorder, have GoMain broker it, watch it) and available alternatives with prices.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • appraise_domainA rough value range for a domain, from its length, how easy it is to say, its TLD, its age and how many popular TLDs have the same name registered.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    A rough value range for a domain, from its length, how easy it is to say, its TLD, its age and how many popular TLDs have the same name registered. Use it to set a realistic budget before trying to buy a taken name. Not a comparable-sales appraisal.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • check_availabilityCheck whether domain names are registered, asking each TLD's registry directly (RDAP).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check whether domain names are registered, asking each TLD's registry directly (RDAP). Returns registered, available, likely_available (no registry lookup service, but no DNS records either) or unknown, plus the registrar and dates for taken names and the cheapest prices for open ones. Up to 20 names per call. A lookup is not a reservation: names can be taken at any moment, and premium or reserved names may still be priced higher or blocked at checkout.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • check_nameIs a project name usable everywhere it'll be needed?No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Is a project name usable everywhere it'll be needed? Checks the domain across TLDs (with prices), GitHub, npm, PyPI and crates.io, and gives links for trademark and social-handle checks that can't be automated.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • dns_setupThe exact DNS records to add so a domain serves a website (Vercel, Netlify, GitHub Pages, Cloudflare Pages) and receives email (Google Workspace, Microsoft 365, Fastmail, Zoho, Pro…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The exact DNS records to add so a domain serves a website (Vercel, Netlify, GitHub Pages, Cloudflare Pages) and receives email (Google Workspace, Microsoft 365, Fastmail, Zoho, Proton), plus a starting DMARC policy. Checks live DNS to show which records are already in place and warns about clashes such as two SPF records. Values a provider generates per account are marked as such.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • list_domain_for_saleList a domain the user owns for sale.1 finding

    Why it is in this group

    • The name "list_domain_for_sale" says "list": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "list_domain_for_sale" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "list_domain_for_sale" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    List a domain the user owns for sale. The first call returns a DNS TXT record that proves ownership; once it's added, calling again with the same domain and email activates the listing. asking_price is shown to buyers; floor_price, the lowest offer accepted automatically, never is. Sales close through Escrow.com.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
  • make_offerOffer to buy a domain listed with GoMain.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Offer to buy a domain listed with GoMain. Offers at or above the asking price buy it outright; lower offers are negotiated automatically with a counter-offer, for up to three rounds, then the seller decides. An accepted offer opens an Escrow.com transaction, so the money is only released once the domain arrives. Confirm the amount and email with the user before calling; to answer a counter-offer, pass the deal_id and status_key from the last answer.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
  • price_historyEvery recorded price change for one TLD, oldest first, from GoMain's daily archive.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Every recorded price change for one TLD, oldest first, from GoMain's daily archive. A registrar's first entry is its price when the archive began (or when it started selling the TLD); later entries are changes. Prices are per year, in US dollars unless `currency` says otherwise.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • request_acquisitionAsk GoMain's brokerage to acquire a domain someone else owns.No findings

    Why it is in this group

    • The name "request_acquisition" says "request": a word for a change.
    Description, as the server wrote it
    Ask GoMain's brokerage to acquire a domain someone else owns. GoMain researches it, approaches the owner without naming the buyer, negotiates within the budget (which the owner never sees), and closes through Escrow.com. Confirm the buyer's email and budget with the user before calling. Returns a deal id and status key for broker_status.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
  • suggest_namesTurn a few keywords into domain name candidates (the words joined, with common prefixes and suffixes, across several TLDs), check each with its registry, and return the available o…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Turn a few keywords into domain name candidates (the words joined, with common prefixes and suffixes, across several TLDs), check each with its registry, and return the available ones with prices. For your own name ideas, use check_availability.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • tld_infoWho runs a TLD, its type (generic, country-code, ...), when it was delegated, its registry's website and lookup servers (from IANA), and its cheapest first-year, renewal and 3-year…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Who runs a TLD, its type (generic, country-code, ...), when it was delegated, its registry's website and lookup servers (from IANA), and its cheapest first-year, renewal and 3-year prices.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • watch_domainGoMain checks a domain daily and emails when it drops (or is about to), changes hands, or is listed for sale.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    GoMain checks a domain daily and emails when it drops (or is about to), changes hands, or is listed for sale. Returns a watch id and status key for broker_status.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • readOnlyHint: false
Only reads 3Claude Code: allow
  • broker_statusThe status and history of a brokerage deal (id d_…) or a watch (id w_…), given the id and status key returned when it was created.No findings

    Why it is in this group

    • The name "broker_status" says "status": a word for reading.
    Description, as the server wrote it
    The status and history of a brokerage deal (id d_…) or a watch (id w_…), given the id and status key returned when it was created.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • compare_pricesEvery tracked registrar's price for one TLD, in US dollars per year, refreshed daily from 40+ registrars.No findings

    Why it is in this group

    • The name "compare_prices" says "compare": a word for reading.
    Description, as the server wrote it
    Every tracked registrar's price for one TLD, in US dollars per year, refreshed daily from 40+ registrars. Sorted by 3-year cost (first year plus two renewals) by default, because a cheap first year often hides an expensive renewal. Each offer links to where to buy.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true
  • search_domains_for_saleSearch domains their owners have listed for sale with GoMain (each owner proved control of the name).No findings

    Why it is in this group

    • The name "search_domains_for_sale" says "search": a word for reading.
    Description, as the server wrote it
    Search domains their owners have listed for sale with GoMain (each owner proved control of the name). Returns asking prices where set; make_offer buys or negotiates.

    Annotations the server declares

    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http domains https://gomain.hottub.workers.dev/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__domains__compare_prices",
      "mcp__domains__search_domains_for_sale",
      "mcp__domains__broker_status"
    ],
    "ask": [
      "mcp__domains__check_availability",
      "mcp__domains__suggest_names",
      "mcp__domains__tld_info",
      "mcp__domains__price_history",
      "mcp__domains__check_name",
      "mcp__domains__dns_setup",
      "mcp__domains__appraise_domain",
      "mcp__domains__acquisition_report",
      "mcp__domains__request_acquisition",
      "mcp__domains__make_offer",
      "mcp__domains__list_domain_for_sale",
      "mcp__domains__watch_domain"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as domains. Review it before you use it.