// AGENT DOMAINS · MCP SERVER
Domain MCP server: search, buy, point and edit DNS
Most domain MCP servers stop at one question: is this name available? Clize exposes nine tools that go past it — search availability and price, register the domain (only with an explicit confirm, otherwise you get a quote), read and set the nameserver delegation, and list, set and delete DNS records. It is one stdio server, registered in one line, and the same tools work in Claude Code, Codex and OpenClaw. Registration and renewal cost money, so the money gate is part of the tool contract rather than a policy you have to write in a system prompt.
The nine tools, and what each one actually does
Start the server with --profile domains and its tools/list holds exactly these nine. Six are the domain surface; three are the account surface every profile carries, because an agent that cannot report a price or a balance cannot pass a spend gate.
| Tool | What it does |
|---|---|
clize_domain_search | Availability and price for one name or a list of them. A query with a dot is taken as a full domain; without one, a tld argument applies. This is the part the other servers also do. |
clize_domain_buy | Registers the domain. Without confirm: true it returns a quote and registers nothing. Auto-renew is on unless you turn it off, so a domain your agent bought does not quietly expire. |
clize_domain_ns | With no nameservers, shows the delegation: registrar, current nameservers, target nameservers. With them, sets it. It warns before pointing a domain away, because that is what takes a mailbox or a site offline. |
clize_dns_list | Every DNS record on the domain — A, AAAA, CNAME, MX, TXT and the rest. |
clize_dns_set | Adds or changes one record: type, name (@ for the apex), content, and optionally TTL, MX priority and whether it is proxied. It overwrites an existing record with the same type and name rather than stacking a duplicate — which is what you want when the caller is a retrying agent. |
clize_dns_rm | Deletes one record, located by type and name. Idempotent: deleting what is already gone is a success, not an error. |
clize_status · clize_balance · clize_recharge | Account state, the running balance, and where to top it up. Read-only apart from the last, which returns a link rather than charging anything. |
Two design choices are worth naming. Tool names and arguments are identical across every profile, so switching profiles never makes an agent relearn the surface. And the skipped tools are genuinely absent from tools/list rather than registered and hidden — the full server is 32 tools, and the twenty-three you did not ask for cost your context nothing.
Availability is where the other domain MCP servers stop
Search this term and the results are consistent: a GitHub project that checks availability across dozens of TLDs, a domain-search product that wrapped its own search endpoint, a WHOIS data vendor, and three directories listing more of the same. They are useful, and they are all the same shape — a lookup. None of them completes the purchase, and none of them touches the part that comes after it.
That gap is not an oversight, it is the hard half. Checking a name is a read against a public dataset. Registering one means holding an account with a registrar, taking money, being accountable for renewals, and dealing with an agent that might loop. Everything after registration — pointing the delegation, creating the records, noticing when it breaks — needs the same account and outlives the transaction by years.
So the honest comparison is not "more tools". It is a different scope:
| Availability-checker MCP servers | Clize --profile domains | |
|---|---|---|
| Is this name free? | Yes | Yes, with the price |
| Register it | No | Yes, behind a confirm gate |
| Point the nameservers | No | Yes |
| Create and edit DNS records | No | Yes |
| Spend controls | Not applicable | Quote by default, explicit confirm to charge |
The money gate is in the tool, not in your prompt
Handing an agent a tool that spends money is where most of these designs get uncomfortable, and Cloudflare's own registrar API announcement says so out loud in a section about agents and non-refundable purchases. A domain registration is exactly that: once it is registered, it is registered for a year.
Clize answers it at the tool contract. clize_domain_buy called without confirm: true returns a quote — the name, the price, the term — and registers nothing. Only the second call, with the flag set explicitly, spends. The same rule covers every paid action in the product: the bare call quotes, the confirmed call acts.
Three things follow from putting the gate there rather than in a system prompt. It survives the model: a fresh session, a different agent, a cron job with nobody watching all hit the same gate. It is visible: the quote lands in the transcript, so a human reading later can see what a purchase would have cost before it happened. And it is not the same thing as a permission boundary — a profile is a context budget, so if you need to restrict what a key can actually do, restrict the key, not the tool list.
After you buy: nameservers, records, and what stays in the CLI
The registrar is chosen per TLD automatically: TLDs Cloudflare Registrar supports go there at cost price, and the rest go through a second registrar covering 556 TLDs, so .ai, .io, .co and .me are available from the same call. Your agent does not choose a registrar; it asks for a name.
Once the domain exists, clize_domain_ns and the three DNS tools are the whole configuration loop: point the delegation, create the apex and www records, add MX and TXT for mail, verify with a list. A typical agent sequence is four calls — search, buy with confirm, set nameservers, set records — and there is no dashboard step in the middle.
What is deliberately not in this tool list. Health monitoring is a CLI and platform capability, not an MCP tool: clize domain check runs a four-layer check — registry delegation read from two public resolvers, then the provider zone, then the hostname's binding to the serving worker, then whether content is actually served — and the platform re-runs that probe against every managed domain every 30 minutes, emailing you after two consecutive failures. Importing a domain you already own, listing what you have, removing a record of one, and canonicalising www to the apex are also CLI-only today. If your agent needs those, give it the shell, or run the server with no profile and pair it with the CLI. We would rather say that than let you discover it in week three. The check exists because we lived through a four-day delegation outage that no dashboard reported.
Install it
One package, one command, and the profile decides the tool list. There is no separate domains package to install — the MCP registry lists a single server, ai.clize/clize, and a product line is a --profile, not a different download.
$ npm i -g @clize/clize
$ clize login
Then register it with whichever host you use. The syntax differs, which is the usual source of a wasted ten minutes:
# Claude Code
$ claude mcp add domains -- clize-mcp --profile domains
# Codex
$ codex mcp add domains -- clize-mcp --profile domains
# no global install: run it straight from npm
$ claude mcp add domains -- npx -y -p @clize/clize clize-mcp --profile domains
OpenClaw takes the stdio command in a --command argument with no -- separator; the OpenClaw page has that syntax alongside the rest of the setup. If you would rather have the whole surface, clize install --mcp registers the server with no profile: all 32 tools, covering email, deploys, payments and the shop as well as domains.
Two details worth knowing on day one. serverInfo.name becomes clize-domains, so the host shows which line is connected rather than a generic entry. And an unrecognised profile value exits non-zero listing the valid ones — a silent fallback would hand you 32 tools while you believed you had installed nine.
// FAQ
Is there an MCP server that can actually register a domain, not just check availability?
Yes. Clize run with --profile domains exposes clize_domain_buy, which registers the domain through the platform account — no registrar API key of your own. Called without confirm: true it returns a quote and registers nothing; the confirmed call charges your Clize balance and registers the name with auto-renew on by default. The rest of the servers that rank for this query are availability lookups, which is a read against public data rather than a transaction.
How many tools does the Clize domains MCP profile expose?
Nine. Six domain tools — domain search, domain buy, domain ns, dns list, dns set, dns rm — plus status, balance and recharge, which every profile includes so the agent can report a price and a balance before it spends. The full server without a profile is 32 tools across domains, email, deploys, payments and the shop. Tools you did not ask for are never registered, so they cost nothing in context.
How do I stop an AI agent from buying domains on its own?
You do not have to configure that; it is the default. clize_domain_buy without confirm: true returns a quote — name, price, term — and registers nothing, so a purchase always takes a second, explicit call. The gate lives in the tool contract rather than in a system prompt, so it also holds in a fresh session, in a different host, and in an unattended cron run. To restrict what a key can do at all, use a scoped key: a profile is a context budget, not a permission boundary.
Can this MCP server manage DNS records too?
Yes — that is the dns half of the profile. clize_dns_list returns every record on the domain; clize_dns_set adds or changes one, taking type, name, content and optionally TTL, MX priority and proxy status, overwriting any existing record with the same type and name instead of stacking duplicates; clize_dns_rm deletes one by type and name and is idempotent. The domain's nameservers have to be pointed at Cloudflare for these to apply, which is what clize_domain_ns is for.
Which TLDs can it register?
The registrar is chosen per TLD automatically. TLDs that Cloudflare Registrar supports are registered there at cost price; everything else goes through a second registrar whose supported list was measured at 556 TLDs, which covers .ai, .io, .co, .me and the long tail. Your agent asks for a name and gets a price; it never picks a registrar. clize domain tlds prints the registrable list from the CLI.
Is domain health monitoring part of the MCP tool surface?
No, and that is deliberate. clize domain check — the four-layer check that reads the registry delegation from two public resolvers, then the provider zone, then the hostname binding, then the served content — is a CLI command, as are import, list, remove and canonicalize. The scheduled probe that runs against every managed domain every 30 minutes and emails after two consecutive failures is a platform behaviour with no tool call at all. If your agent needs those, give it the shell alongside the MCP server.
Let the agent finish the job, not just the search.
Search a name, buy it with an explicit confirm, point the nameservers and write the records — without a registrar dashboard and without a registrar API key of your own.
$ npm i -g @clize/clize && clize login $ claude mcp add domains -- clize-mcp --profile domains[ Agent Domains → ]