MCP Server
Check domain availability and live registry pricing from Claude, Cursor, or any MCP client. It's free to use, with no account and no API key.
Endpoint
https://www.orbitfour.com/mcp
Streamable HTTP, JSON-RPC 2.0, no authentication
Connect your client
Claude Code
claude mcp add --transport http orbitfour https://www.orbitfour.com/mcp
Claude (web and desktop)
Open Settings → Connectors, choose Add custom connector, and paste the endpoint URL.
Cursor
Add it to ~/.cursor/mcp.json:
{
"mcpServers": {
"orbitfour": {
"url": "https://www.orbitfour.com/mcp"
}
}
}
VS Code
Add it to .vscode/mcp.json in your workspace:
{
"servers": {
"orbitfour": {
"type": "http",
"url": "https://www.orbitfour.com/mcp"
}
}
}
Any other client: add a remote server at the endpoint URL using the Streamable HTTP transport. There's no key to configure.
Tools
check_domain
Check domain availability and price
Look up exact domain names: whether each can be registered now, and its per-year registration, renewal and transfer price in USD, premium names included, from a live registry check. Use it for names you already have and to confirm a search_domains suggestion. Up to 10 names per call; read-only. available is true, false, or null (the registry could not be asked; not the same as taken). An unavailable name says why in reason: taken, reserved, unavailable or unknown. purchasable is false for an available name OrbitFour can't sell now, and for a null one, and purchase_blocker says why. first_term is the shortest term (min_years: .ai is 2) and its total with the ICANN fee. A malformed name or an extension OrbitFour doesn't sell comes back with an error field. pricing_source says where the registration price came from: "registry" is a live quote for that name, "baseline" is the extension's standard rate and final for the name (the extension has no premium names, or the registry quoted none for it), and "unconfirmed" means the registry lookup did not finish, so the price is not final for a name that may be premium. pricing_sources breaks this out per action.
| Parameter | Type | Description |
|---|---|---|
names
required
|
string[] | Domain names to check, e.g. ["example.com", "example.net"]. Max 10. |
years
|
integer (1–10) | Registration term in years (default 1). |
search_domains
Search for available domain names
Find domain names from a free-text idea, brand or phrase; a phrase yields short combinations of its words. top_picks answers "how does my name look": the name as typed (when its extension isn't .com/.net/.org) and the name on .com, .net and .org, or on each extension in tlds, with its real status, taken and unknown included, as check_domain reports it. suggestions are up to `limit` ranked names a live check found available, never repeating a top pick, with per-year prices in USD, premium names included unless include_premium is false; match is exact_sld or variation, and hack is true for a domain hack such as danger.zone. unchecked_names lists names whose check came back unknown, left_out counts why other names checked aren't suggested, and with tlds, each extension says why it found nothing. Search is advisory: confirm the chosen name with check_domain before quoting it, and a purchase checks again. Read-only, no side effects.
| Parameter | Type | Description |
|---|---|---|
query
required
|
string | Free-text seed, e.g. "learning studio app", a bare SLD, or a full domain. |
include_premium
|
boolean | false leaves premium names out of the suggestions (default true). |
limit
|
integer (1–25) | Target number of suggestions (default 10). |
max_price
|
string | Leave out suggestions whose first_term.total, the first term's price with the ICANN fee (what buying it costs), is above this USD amount, e.g. "25.00". |
tlds
|
string[] | Optional TLDs to restrict the search to, e.g. ["com", "app", "io"]. The name on each becomes a top pick. |
years
|
integer (1–10) | Registration term in years (default 1). |
get_tld_requirements
Get an extension's prices and registration rules
Look up what OrbitFour charges and requires for domain extensions (TLDs): standard per-year registration, renewal, transfer and restore prices in USD plus the ICANN fee, the shortest and longest term, the fixed transfer term, whether WHOIS privacy is allowed, any eligibility restriction, whether browsers require HTTPS for its websites (https_required: .app, .dev), and JSON Schemas for what a registration must include (.us, for example, needs Nexus data on the registrant contact). Up to 10 extensions per call; read-only. These are standard prices: when premium_possible is true a particular name can cost more, so quote it with check_domain. An extension OrbitFour does not sell comes back as tld_not_found.
| Parameter | Type | Description |
|---|---|---|
tlds
required
|
string[] | Extensions without the dot, e.g. ["us", "ai", "com"]. |
check_transfer
Check whether domains can be transferred in
Ask each name's registry whether it can be transferred to OrbitFour now (not locked, no transfer or delete pending) and quote the full first-term transfer price in USD: the per-year price plus the ICANN fee for the registry's transfer term. Up to 5 names per call; read-only. transferable is true, false, or null (the registry could not be asked just now; not the same as locked), and reasons says why: invalid_name, unsupported_tld, already_here, not_registered (nobody holds it, so register it instead), locked, pending_transfer, pending_delete, premium_over_cap, price_unconfirmed, unknown. The price is what the transfer would cost if it goes ahead. Never send a transfer authorization code here: the transfer itself asks for it.
| Parameter | Type | Description |
|---|---|---|
names
required
|
string[] | Domain names, e.g. ["example.com"]. |
Your account
A second server works with your own account: list your domains, read and change DNS records, check your balance and billing history. It needs an API key, which an account owner creates under Account → API keys. The key's scopes decide which tools appear, and every tool returns what the matching REST endpoint returns.
Endpoint
https://www.orbitfour.com/mcp/account
Streamable HTTP, Authorization: Bearer o4_live_...
Claude Code
claude mcp add --transport http orbitfour-account https://www.orbitfour.com/mcp/account --header "Authorization: Bearer o4_live_..."
Cursor
{
"mcpServers": {
"orbitfour-account": {
"headers": {
"Authorization": "Bearer o4_live_..."
},
"url": "https://www.orbitfour.com/mcp/account"
}
}
}
| Tool | What it does | Key scope |
|---|---|---|
whoami |
Show the credential and its account | any |
list_domains |
List the account's domains | domains:read |
get_domain |
Get one domain | domains:read |
get_operation |
Get a paid operation's status | domains:read |
get_purchase_approval |
Get a purchase approval's status | billing:write |
list_dns_records |
List a domain's DNS records | dns:read |
create_dns_record |
Add a DNS record | dns:write |
update_dns_record |
Change a DNS record | dns:write |
delete_dns_record |
Delete a DNS record | dns:write |
list_contacts |
List the account's contacts | contacts:read |
get_contact |
Get one contact | contacts:read |
get_balance |
Get the prepaid balance | account:read |
list_transactions |
List billing transactions | account:read |
list_ledger_entries |
List prepaid balance movements | account:read |
list_invoices |
List invoices | account:read |
update_domain_settings |
Change auto-renew, its terms, or privacy | domains:write |
set_nameservers |
Replace a domain's nameservers | domains:write |
lock_domain |
Lock a domain against transfer | domains:write |
list_events |
List the account's recent events | account:read |
list_watchlist |
List the watchlist | domains:read |
add_to_watchlist |
Watch a domain name | domains:write |
remove_from_watchlist |
Stop watching a domain name | domains:write |
quote_registration |
Quote a domain registration | domains:write billing:write |
register_domain |
Register a domain (spends the balance) | domains:write billing:write |
quote_renewal |
Quote a domain renewal | domains:write billing:write |
renew_domain |
Renew a domain (spends the balance) | domains:write billing:write |
list_webhook_endpoints |
List webhook endpoints | account:read |
list_webhook_deliveries |
List a webhook endpoint's deliveries | account:read |
The tool list shows without a key; calling any tool, the public ones included, needs one. Write tools take an
optional idempotency_key for safe retries.
Connect with OAuth
Hosted clients that can't hold a key sign in instead: add the endpoint as a custom connector, sign in to OrbitFour when asked, choose the account and what the client may do (read-only unless you tick more). A connected client can never spend money, move a domain away, read transfer codes or add webhooks, and you can sign it out under Settings → Signed-in apps & devices.
Buying through an agent
With a key that has domains:write and billing:write,
an agent can register and renew: it asks for a quote, shows you the total, and buys exactly that with the quote's
token. Purchases come from your prepaid balance only, never premium names, up to $100 a day per key unless you set
a different limit when you create it, and every owner gets an email for each one. Transfers stay on the website and
the REST API.
Good to know
-
Prices are per year, in USD. Before you treat a price as a quote, read
min_yearsandpricing_source; the tool descriptions above explain both. - All three tools are read-only. They never register, reserve or hold a domain.
-
check_domaintakes up to 10 names per call. -
Requests are limited to 30 a minute per IP address, shared with the public REST endpoints.
Claude and ChatGPT connectors reach us from their providers' shared addresses, which get a higher limit.
Over the limit, the server answers HTTP 429 with a
Retry-Afterheader. - The tools return the same payloads as the REST endpoints /api/v1/domains/check and /api/v1/domains/search. Agents writing an integration should start with llms.txt.
-
The server speaks MCP 2026-07-28 and the 2025-03-26 through 2025-11-25 revisions. Every tool declares an
outputSchemaand its read-only annotations. - Our privacy policy covers this endpoint. Questions or problems: contact us.