Domain WHOIS & RDAP Lookup MCP Server avatar

Domain WHOIS & RDAP Lookup MCP Server

Pricing

from $3.00 / 1,000 read operations

Go to Apify Store
Domain WHOIS & RDAP Lookup MCP Server

Domain WHOIS & RDAP Lookup MCP Server

Domain WHOIS and RDAP lookup MCP server for Claude, ChatGPT, Cursor and other AI agents. Get a domain's registrar, age, expiry date, status codes and name servers from its registry over RDAP, the successor of WHOIS, or check 5 names at once. Over 500 TLDs, .com and .org included.

Pricing

from $3.00 / 1,000 read operations

Rating

0.0

(0)

Developer

MrBridge

MrBridge

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

7 days ago

Last modified

Security

Limited permissions

Share

🌐 Domain WHOIS & RDAP Lookup MCP Server

Domain WHOIS & RDAP Lookup MCP Server is an MCP server that lets Claude, ChatGPT, Cursor, VS Code and other AI agents read domain registration data from the registries themselves, over RDAP, the protocol that replaced WHOIS. Its 6 read-only tools look up a domain, check up to five names at once, look up a name server host, find an ICANN registrar by IANA ID or name, and explain which top-level domains are covered.

Ask Claude "how old is wikipedia.org, when does it expire, and is it locked against transfer?" and it calls web_lookup_domain. You get the registration and expiry dates with the days left, the registrar with its abuse contact, and each EPP status code explained in plain words. Coverage is limited to the registries whose terms were reviewed, Verisign (.com, .net), Public Interest Registry (.org), Identity Digital and Google Registry, for over 500 top-level domains in total.

Quick start

  1. Copy your API token from Apify Console > Settings > API & Integrations.
  2. Add https://mrbridge--web-intel-mcp.apify.actor/mcp to your AI client with the header Authorization: Bearer <token>. The Connect section below has a ready-made snippet for each client.
  3. Ask a question such as "are mybrand.com, mybrand.net and mybrand.org registered?"

What this server exposes

This server gives an AI client 6 read-only tools over domain registration data, read from the registries themselves through RDAP, the protocol that replaced WHOIS. For one domain it returns the registrar with its IANA ID and abuse contact, the registration, expiry and last change dates with the days left before expiry, the EPP status codes with a plain-language meaning, the transfer lock, the name servers, the DNSSEC state and, when the registry publishes them, the registrant's organisation, region and country. A second tool checks up to five names at once and tells which ones have no registration record. The others look up a name server host at its registry, an ICANN registrar in the IANA Registrar IDs registry, the RDAP service of a top-level domain, and the list of top-level domains the server covers. Registries are located through the IANA RDAP bootstrap file. Coverage is limited to the registries whose terms of use were reviewed: Verisign (.com, .net), Public Interest Registry (.org), Identity Digital (for example .info) and Google Registry (for example .app, .dev). No account or API key is needed. This server is not affiliated with any registry, IANA or ICANN.

Tools

ToolWhat it answersBilled event
web_lookup_domainLook up the registration record of a domaintool-read
web_check_domainsCheck whether domain names are registeredtool-action
web_lookup_nameserverLook up a name server host at its registrytool-read
web_lookup_registrarLook up an ICANN registrar by IANA ID or nametool-read
web_get_tld_infoGet the RDAP service and coverage of a top-level domaintool-read
web_list_covered_tldsList the top-level domains this server coverstool-read

web_lookup_domain: Look up the registration record of a domain

Use this when you need the registration record of one domain name from its registry, through RDAP (the successor of WHOIS): registrar with IANA ID and abuse contact, registration, expiry and last change dates with the days left before expiry, EPP status codes with their meaning, transfer lock, name servers, DNSSEC, and the registrant organisation, region and country when the registry publishes them. Personal contact details are removed. Covers the TLDs of Verisign (.com, .net), Public Interest Registry (.org), Identity Digital (for example .info) and Google Registry (for example .app, .dev). Do not use for several names or an availability check (web_check_domains), a name server host (web_lookup_nameserver), a registrar by IANA ID (web_lookup_registrar) or a TLD that is not covered (web_get_tld_info explains why). Parameters: domain (domain name, URL or e-mail address, e.g. "example.com"), response_format ("concise" default, or "detailed" for events, name server addresses, DS records, contacts by role, record links and registry notices).

ParameterTypeRequiredExample
domainstringyes"example.com"
response_format"concise" or "detailed"no"concise"

Returns { domain, unicode_domain, normalized_from, tld, registry, registrar, dates, status[], transfer_locked, nameservers[], dnssec_signed, registrant, personal_data, details, attribution }. Upstream: IANA RDAP bootstrap, Verisign RDAP, Public Interest Registry RDAP, Identity Digital RDAP, Google Registry RDAP. Cache: hourly (1 hour). Read-only.

web_check_domains: Check whether domain names are registered

Use this when you need to know, for 1 to 5 domain names at once, whether each one is registered at its registry and, when it is, its registrar, expiry date, days left and transfer lock, read through RDAP (the successor of WHOIS). A name without a registry record is reported as not_registered (likely available, confirm with a registrar), a name under a TLD this server does not cover as not_covered. Covers the TLDs of Verisign (.com, .net), Public Interest Registry (.org), Identity Digital and Google Registry (for example .info, .app, .dev). Do not use for the full record of one domain (web_lookup_domain) or for bulk checks of more than five names, which the registries forbid. Parameter: domains (array of 1 to 5 domain names, e.g. ["example.com", "example.org"]).

ParameterTypeRequiredExample
domainsarray of stringyes["example.com","example.org"]

Returns { results[], summary, attribution }. Upstream: IANA RDAP bootstrap, Verisign RDAP, Public Interest Registry RDAP, Identity Digital RDAP, Google Registry RDAP. Cache: hourly (1 hour). Read-only.

web_lookup_nameserver: Look up a name server host at its registry

Use this when you need what a registry holds about a name server host (RDAP host object): its IPv4 and IPv6 glue addresses and its status codes with their meaning. Registries hold host objects mainly for name servers under their own TLD, for example ns1.example.com at the .com registry. Covers the TLDs of Verisign (.com, .net), Public Interest Registry (.org), Identity Digital and Google Registry. Do not use for the name servers a domain delegates to (web_lookup_domain lists them) or for live DNS resolution, which this server does not do. Parameters: hostname (e.g. "ns1.example.com"), response_format ("concise" default, or "detailed" for events, the record link and registry notices).

ParameterTypeRequiredExample
hostnamestringyes"ns1.example.com"
response_format"concise" or "detailed"no"concise"

Returns { nameserver, unicode_nameserver, tld, registry, ipv4[], ipv6[], status[], details, attribution }. Upstream: IANA RDAP bootstrap, Verisign RDAP, Public Interest Registry RDAP, Identity Digital RDAP, Google Registry RDAP. Cache: daily (1 day). Read-only.

web_lookup_registrar: Look up an ICANN registrar by IANA ID or name

Use this when you need an ICANN registrar from the IANA Registrar IDs registry: its name, accreditation status (accredited, terminated or reserved) and RDAP base URL, found by its IANA ID (as returned by web_lookup_domain) or by a name search. Do not use for the registrar of a given domain (web_lookup_domain returns it) or for country-code registrars outside ICANN accreditation, which this registry does not list. Parameters: iana_id (integer or numeric string, e.g. 292) or name (at least 2 characters, e.g. "network solutions"), exactly one of them, status ("any" default, "accredited", "terminated", "reserved"), limit (1 to 50, default 10), offset (default 0), response_format ("concise" or "detailed" with cache information).

ParameterTypeRequiredExample
iana_idvalueno292
namestringno"network solutions"
status"any" or "accredited" or "terminated" or "reserved"no"accredited"
limitintegerno10
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { registrars[], pagination, attribution }. Upstream: IANA Registrar IDs. Cache: daily (1 day). Read-only.

web_get_tld_info: Get the RDAP service and coverage of a top-level domain

Use this when you need to know whether a top-level domain has an RDAP service registered with IANA, at which base URLs, which registry runs it, and whether this server can look up domains under it, with the reason when it cannot (registry terms not reviewed, plain HTTP only). Do not use for a full domain name (web_lookup_domain) or for the list of every covered TLD (web_list_covered_tlds). Parameter: tld (a top-level domain with or without the dot, IDN accepted, e.g. "app", ".org" or "xn--q9jyb4c").

ParameterTypeRequiredExample
tldstringyes"app"

Returns { tld, unicode_tld, rdap_base_urls[], covered, registry, not_covered_reason, iana_root_zone_page, bootstrap_publication, attribution }. Upstream: IANA RDAP bootstrap. Cache: daily (1 day). Read-only.

web_list_covered_tlds: List the top-level domains this server covers

Use this when you need the list of top-level domains whose domains this server can look up, optionally for one registry (Verisign, Public Interest Registry, Identity Digital, Google Registry) or filtered by a substring, with a count per registry and its terms URL. Do not use for one TLD, covered or not (web_get_tld_info), or for domain lookups (web_lookup_domain). Parameters: registry ("all" default, or one of "verisign", "pir", "identity-digital", "google"), contains (substring, e.g. "app"), limit (1 to 200, default 50), offset (default 0), response_format ("concise", or "detailed" with each RDAP base URL).

ParameterTypeRequiredExample
registry"all" or "verisign" or "pir" or "identity-digital" or "google"no"google"
containsstringno"app"
limitintegerno50
offsetintegerno0
response_format"concise" or "detailed"no"concise"

Returns { tlds[], registries[], pagination, bootstrap_publication, attribution }. Upstream: IANA RDAP bootstrap. Cache: daily (1 day). Read-only.

Connect

Endpoint (Streamable HTTP): https://mrbridge--web-intel-mcp.apify.actor/mcp

Every client authenticates with your Apify API token, found in Apify Console > Settings > API & Integrations. Clients that support custom headers send it as Authorization: Bearer <token>. The others use the ?token= URL variant, which must be treated as a secret: keep it out of commits, screenshots and shared logs.

Claude Code

$claude mcp add --transport http web-intel "https://mrbridge--web-intel-mcp.apify.actor/mcp" --header "Authorization: Bearer ${APIFY_TOKEN}"

Cursor, VS Code and other JSON configurations

{
"mcpServers": {
"web-intel": {
"type": "http",
"url": "https://mrbridge--web-intel-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer ${APIFY_TOKEN}"
}
}
}
}

claude.ai and Claude Desktop

Add a custom connector with the URL https://mrbridge--web-intel-mcp.apify.actor/mcp?token=YOUR_APIFY_TOKEN and no authentication. Prefilled link (replace the token placeholder before saving): add Domain WHOIS & RDAP Lookup MCP Server to Claude.

ChatGPT (developer mode)

Settings > Apps > Create, URL https://mrbridge--web-intel-mcp.apify.actor/mcp?token=YOUR_APIFY_TOKEN, authentication "No authentication". ChatGPT snapshots the tool list: after a server update, an admin has to click Refresh on the app.

OpenAI Responses API

{
"type": "mcp",
"server_label": "web_intel",
"server_url": "https://mrbridge--web-intel-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
},
"require_approval": "never"
}

Add allowed_tools to restrict the tool list. Tool calls must finish within about 60 seconds on this API, and every tool of this server answers in under 50 seconds.

Anthropic Messages API

{
"mcp_servers": [
{
"type": "url",
"url": "https://mrbridge--web-intel-mcp.apify.actor/mcp",
"name": "web-intel",
"authorization_token": "YOUR_APIFY_TOKEN"
}
],
"tools": [
{
"type": "mcp_toolset",
"mcp_server_name": "web-intel"
}
]
}

Send the beta header anthropic-beta: mcp-client-2025-11-20.

One-click OAuth alternative

https://mcp.apify.com/?tools=mrbridge/web-intel-mcp connects through Apify OAuth without a token. It exposes the Actor as a single tool rather than the granular tools listed above.

Cost control

Each Standby run has a spending limit (maxTotalChargeUsd). When a call uses the last of it, the result is still returned, and later calls in that run answer CHARGE_LIMIT_REACHED until the limit is raised.

Why use Domain WHOIS & RDAP Lookup MCP Server

  • Straight from the registry. Each lookup goes to the registry found through the IANA RDAP bootstrap file, not to a WHOIS reseller database.
  • Status codes in plain words. Every EPP status, the transfer lock and the days left before expiry are explained in each answer.
  • Domain age at a glance. The registration date comes with every lookup, so "how old is this domain?" takes one call.
  • Five names per check. Registered or not, with registrar and expiry date, in a single call.
  • Privacy filtering built in. Personal contact details are removed from every answer, and each answer says what was removed.
  • Honest coverage. A coverage tool tells you whether a top-level domain is served and, when it is not, why.

Pricing (Pay-per-Event)

Domain WHOIS & RDAP Lookup MCP Server uses pay-per-event pricing. Each successful call is one tool-read event at $0.005, or one tool-action event at $0.01 for a check of up to five names with web_check_domains, so 1,000 lookups cost $5 in events, and a check of five names is a single tool-action event. These are the FREE plan prices, and Apify plan discounts lower them. Apify also bills its standard apify-actor-start event when a Standby run starts, and you pay the platform usage of your own Standby run on top of the events, as explained below. Calls that end in an error carry no event charge, and neither do domains under a top-level domain the server does not cover. See the Pricing tab for the price on your Apify plan.

EventCharged whenPrice
apify-actor-startrun start (platform default)see the Store page
tool-read (primary event)each successful read tool callsee the Store page
tool-actioneach successful call of a detailed or computed toolsee the Store page

Never charged: initialize, tools/list, pings, readiness probes, and any call that ends in an error (invalid input, not found, upstream failure, timeout, spending limit).

Platform usage comes on top of these events. This server runs in Apify Standby mode, and you also pay the platform usage of your own Standby run, billed to your Apify account like any other run: the memory set for the Standby run, for as long as the server is up, idle time included, until the run stops at its idle timeout. The Apify pay-per-event documentation says so: "For runs in Standby mode, users always pay the platform usage costs in addition to the event charges."

Limits, caveats and attribution

  • Coverage. Only four registries are queried, the ones whose RDAP terms allow this kind of service: Verisign, Public Interest Registry, Identity Digital and Google Registry. A domain under any other top-level domain (for example .xyz, .uk, .de or .fr) is answered with the reason it is not covered, without a query to its registry and without a charge. web_list_covered_tlds lists the covered TLDs and web_get_tld_info explains a single one.
  • Registry data only. For .com and .net the registry holds no registrant data: it lives at the registrar. This server does not query registrars. In detailed mode the answer gives the link to the registrar's own RDAP record.
  • Personal data. Personal contact details are removed from every answer: names, e-mail addresses, phone numbers, street, city and postal code. For the registrant and other contacts, only the organisation, region and country are kept. The registrar keeps its name, IANA ID and the e-mail and phone of its abuse desk. Each lookup states how many details were removed and which fields the registry itself declared redacted.
  • Availability. A name without a registration record is reported as not_registered. It is likely available, but reserved, blocked or premium names can still be refused by a registrar. Check with a registrar before relying on it.
  • Volume. The registries forbid high-volume automated querying. This server looks up one name per call (five per availability check), keeps to about one query every two seconds per registry, caches registration records for an hour and host records for a day, and offers no bulk, search or listing of registrations. Heavy use can meet UPSTREAM_RATE_LIMITED.
  • Freshness. A cached record can be up to an hour old, or up to six hours when the registry is unreachable (the answer then says stale). A name that has no record is never cached, so a new registration shows up at once.
  • Not offered. IP address and AS number lookups, DNS resolution, TLS certificate searches, SSL and page speed tests, and web archive lookups are not part of this server: the terms of their public sources do not allow a paid service.
  • Attribution. Every answer carries an attribution block with the registry or IANA source, its terms URL and the notices the registry terms require. Keep it when you reuse the data.

Data terms

By using this server you agree to use the data it returns in line with the terms of the registry that holds it, and to pass the same obligations on to anyone you share the data with. In short, from the terms of the four registries: use the data only for lawful purposes, never to support mass unsolicited commercial advertising or solicitations by e-mail, phone or fax, never to feed high-volume automated querying of the registries or registrars, and never to compile or redistribute a substantial part of a registry database. The registries give no guarantee of accuracy.

The fee for this server pays for the service (hosting, caching, normalisation, privacy filtering), not for a licence on the data.

Use cases

  • Your own domain portfolio. "When do our .com and .org domains expire, and are they all transfer-locked?"
  • Naming a product. "Are these five names registered?" before you spend time on a shortlist.
  • Domain age checks. "When was this domain registered?" before you trust a supplier site or a link.
  • Phishing and abuse triage. "When was this lookalike domain registered, and where do I report it?" returns the creation date and the registrar's abuse contact.
  • IT troubleshooting. Name servers, DNSSEC state and the glue addresses of a name server host, as the registry holds them.
  • Due diligence. Registrar, creation date and status codes of a domain that is part of a deal.

Not for bulk lookups, lead lists or contacting domain holders: the registry terms forbid it, and the server answers one domain per lookup and five per check.

More SEO and AI search tools

FAQ

Why is the first call slower?

The server runs in Apify Standby mode. When no request comes in for a while, the run stops at its idle timeout, and the next call starts a new one. That cold start took about 5 seconds in the last platform test. Calls made while the server is warm skip the delay.

Is this a WHOIS lookup?

Yes, through RDAP, the protocol that replaced WHOIS for generic top-level domains. You get the same registration facts (registrar, dates, status, name servers) in a structured form, straight from the registry.

Which top-level domains are covered?

Over 500, served by Verisign (.com, .net), Public Interest Registry (.org), Identity Digital (for example .info) and Google Registry (for example .app and .dev). Other top-level domains, such as .xyz, .uk, .de or .fr, get a not-covered answer with the reason and no event charge. web_list_covered_tlds gives the full list.

Can it tell me who owns a domain?

Usually not. Personal details are removed from every answer, and for .com and .net the registry holds no registrant data at all. When a registry publishes them, the registrant's organisation, region and country are kept.

Does "not_registered" mean I can buy the name?

Often, but not always. Reserved, blocked and premium names can still be refused by a registrar, so check with one before you rely on it.

Why are DNS, SSL and page speed checks missing?

The public sources for those checks do not allow a paid service in their terms, so this server sticks to registration data.

Can I check thousands of domains?

No. The registries forbid high-volume automated querying, and the server answers one domain per lookup and five per check, with a pace set per registry.

Your feedback

Found a bug or a wrong answer? Open an issue on the Issues tab. Domain WHOIS & RDAP Lookup MCP Server is built by MrBridge. More servers are listed in the MCP server catalogue, and more tools and data studies are at mr-bridge.com.

Changelog

  • 0.1.4: Output, dataset and key-value store schemas, as Apify asks for publication: the Output tab of a run started from the Console shows the connection details and one row per tool.
  • 0.1.3: the Input tab shows the endpoint and how to connect an AI client, and a run started from the Console outputs the connection details and the tool list
  • 0.1.2: pricing events tool-read and tool-action
  • 0.1.1: the server is named Domain WHOIS & RDAP Lookup MCP Server (connector name and connection page), and the web_check_domains description says its answers come from RDAP, the successor of WHOIS, like the other domain tools. The endpoint and the tools do not change.
  • 0.1.0: initial build (private, unpublished)