Check domain availability
without leaving Claude
A free, open-source MCP server. Add one URL to Claude, then just ask — “is mybrand.ai available?”
https://domain-checker-mcp.vercel.app/mcp
What this is
One tool, one job
MCP (Model Context Protocol) is the open standard for connecting AI
assistants to external tools. This server adds a single tool —
check_domain_availability — so Claude can look up domains itself instead
of you copy-pasting names into a registrar.
You (or Claude) send
{
"name": "mybrand",
"tld": "ai"
}
Whitespace is trimmed, everything is lower-cased, .AI becomes
ai, and full URLs like https://mybrand.ai are rejected.
You get back
Domain: mybrand.ai
Status: AVAILABLE
TLD Valid: Yes
Check Method: WHOIS
Lookup Time: 704ms
Plus a structured JSON payload so the assistant can reason over the result reliably.
Setup · 30 seconds
Add it to Claude
Open connector settings
In Claude, go to Settings → Connectors (some plans: Feature preview → Model Context Protocol).
Add a custom connector
Click Add custom connector. Name it Domain Checker
and paste the URL:
https://domain-checker-mcp.vercel.app/mcp
Enable it and ask
Save (no login needed). In a chat, turn on Domain Checker from the tools menu, then ask a question. Approve the tool call when prompted.
Remote connectors need Claude Pro, Max, Team or Enterprise. On a free plan, run it locally over stdio — see the README.
One command:
claude mcp add --transport http domain-checker https://domain-checker-mcp.vercel.app/mcp
Then claude mcp list should show it as ✓ connected.
Remove later with claude mcp remove domain-checker.
Any MCP client works. Add to its config (e.g. .cursor/mcp.json):
{
"mcpServers": {
"domain-checker": {
"url": "https://domain-checker-mcp.vercel.app/mcp"
}
}
}
Prompts to try
Check mybrand.ai
Is mybrand.com available?
Check whether mybrand.io is available
Which of acme.dev, acme.io and acme.ai are free?
Built for production
What’s inside
One clear tool
Name + TLD in, a clean AVAILABLE / NOT AVAILABLE status out — plus structured JSON.
Any TLD
.com, .ai, .io, .dev, .co.uk… generic validation, nothing hard-coded.
Forgiving input
Trims spaces, lower-cases, turns .AI into ai, rejects full URLs.
Reliable
Request timeouts via AbortController; rate limits and upstream errors become clean messages.
Safe by design
API key stays server-side — never in responses or logs. No user-controlled URLs, no SSRF.
Serverless
Stateless Streamable HTTP. One-click deploy to Vercel; also runs locally over stdio.
Tested
48 unit tests, strict TypeScript, no unnecessary dependencies.
Open source
MIT. Fork it, read every line, run your own copy for free.
Recommended for real use
Run your own copy — free, ~3 minutes
The shared instance above uses one rate-limited key. Your own deployment gets its own free quota and can’t be throttled by other people.
Get a free RapidAPI key
Sign up at rapidapi.com, open the
Domain Status API, and subscribe to the free tier. Copy your
X-RapidAPI-Key.
Fork & import to Vercel
Fork
the repo,
then import it at vercel.com/new.
The bundled vercel.json configures everything.
Set the key & deploy
Add an environment variable RAPIDAPI_KEY with your real key (replace the
detected placeholder), then Deploy.
Connect your URL to Claude
Use https://<your-project>.vercel.app/mcp in the
steps above. Verify with
/health — it should report "configured": true.
Under the hood
How a check flows
The server is stateless: every request is independent, nothing about your queries is stored, and logs contain no personal data or secrets. The upstream API key lives only in the server’s environment.
Quick API test
curl -s -X POST https://domain-checker-mcp.vercel.app/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"check_domain_availability",
"arguments":{"name":"mybrand","tld":"ai"}}}'
FAQ
Questions
What is Domain Checker MCP?
Domain Checker MCP is a free, open-source
MCP server. You add its URL
(https://domain-checker-mcp.vercel.app/mcp) to an AI assistant such as
Claude, ChatGPT or Gemini as a custom connector, and it gives the assistant one tool,
check_domain_availability, that reports whether a domain name is available
for registration using WHOIS/DNS data.
How do I check domain availability in Claude?
Add this server’s endpoint (https://domain-checker-mcp.vercel.app/mcp)
as a custom connector in Claude’s settings, enable it in a chat, and ask something
like “is mybrand.ai available?”. Claude calls the
check_domain_availability tool and reports the result.
What is an MCP server, in plain terms?
It’s a small web service that exposes “tools” an AI assistant can call during a conversation. Instead of the model guessing whether a domain is taken, it actually runs a lookup. This one exposes exactly one tool.
Is it really free? What’s the catch?
The code is MIT-licensed and free. The hosted instance shares a single free API key, so it’s rate-limited and best for trying things out. For regular use, deploy your own copy — it takes about 3 minutes and uses your own free RapidAPI quota.
Which domains and TLDs can I check?
Any syntactically valid domain and TLD: .com, .ai,
.io, .co, .dev, .app, and multi-level
TLDs like .co.uk. The TLD list is not hard-coded — validation is
generic.
Does it work with ChatGPT, Cursor, or other tools?
Yes. It speaks the standard MCP Streamable HTTP transport, so any MCP-compatible client can connect with just the URL — Claude, Claude Code, Cursor, and others that support remote MCP connectors.
How accurate is the result?
Availability is derived from WHOIS/DNS via the upstream Domain Status API. It’s a strong signal but not a purchase guarantee — always confirm at a registrar before relying on it. Some registries also reserve or premium-price names that look “available”.
Do you store my queries?
No. The server is stateless and keeps no database. Operational logs record events like “request started/completed” and the domain checked, without personal data, and never the API key.
I got a “rate limiting” message.
The shared instance’s free upstream tier allows very few requests per window, and there’s a per-client cap on top. Wait a few seconds, or run your own copy.