whois: WHOIS and RDAP service with an MCP endpoint
whois
A self-hosted Go service that runs WHOIS and RDAP lookups for domains, IPs, CIDRs and ASNs and exposes them to agents at /mcp
- 66 ★ on the repository
- Last commit
Extended access
Why this level
- The service calls external registries and counts agent queries toward its limits and logs
- An open MCP endpoint without keys answers anyone who can reach the port
Install
- Works in
Manual install
docker run -d --name whois -p 8043:8043 --link redis:redis jinzeyang/whoisThe image from the README, preceded by a redis container. For small loads you can skip Redis and run a binary release instead.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The service calls external registries and counts agent queries toward its limits and logs
- An open MCP endpoint without keys answers anyone who can reach the port
This is third-party code. Review the repository files before installing.
What it does
The Go program answers questions about domain registration, IPv4 and IPv6 addresses, CIDR prefixes and autonomous system numbers. For domains it queries registries over RDAP, and for country zones without RDAP it parses plain WHOIS and converts it to JSON. Only some fields reach the response, in line with ICANN and GDPR rules for personal data. The agent connects to it as an MCP server over Streamable HTTP at an address like http://host:8043/mcp. The main tool, whois_lookup, takes a domain, an address or an ASN. The batch tool whois_batch_lookup takes a list of queries but works only after batch.enabled is switched on in config.yaml. Besides MCP the service exposes a REST API, an OpenAPI 3.1 spec, Prometheus metrics and health endpoints. The cache lives in memory by default, and Redis can back it for several instances. Access can be closed with API keys, each with its own request rate limit.
Who it is for. Admins, domain managers and developers who need their own WHOIS gateway with metrics and want an agent to ask about domains and networks.
Good fit when
- The agent checks whether a domain is free and when its registration expires
- During incident analysis you need to learn who owns an IP address or an autonomous system
- An audit report needs a summary of dozens of domains in a single call
- A team wants an internal WHOIS and RDAP gateway with a cache and limits instead of hitting registries directly
Not a fit when
- You need the domain owner contact details: the service returns a limited set of fields because of GDPR
- You want a ready cloud MCP without deployment: here you run your own service first
- You need the ownership history of a domain: the service returns the current registration record
Example request
Find out when the registration of example.com expires and which registry holds it, then show the network owner of 8.8.8.8.MCP
- Transport
- http
- Authentication
- not required
Limitations
You have to deploy the service yourself: the repository has no ready cloud address for MCP, and the demo sites cover REST. Some country domain zones do not support RDAP, so parsing is limited to adapted suffixes and the rest return a minimal reply noting that the zone is unsupported. The batch query is off by default and meant to run together with API keys. Beyond localhost the MCP endpoint needs protection: enable keys and, for direct connections, DNS rebinding protection. The README is written in Chinese, and an English version lives in README_EN.md.
How to disable. Stop and remove the container with docker rm -f whois and delete the MCP server entry from the client config. Remove Redis and the config file separately if you set them up for the service.
FAQ
What does whois_lookup accept?
A domain, an IPv4 or IPv6 address, a CIDR prefix and an ASN like AS12345. The reply matches the REST API reply and follows the RDAP vocabulary.
Why are owner contacts missing from the reply?
The service follows the ICANN temporary specification for gTLD registration data and GDPR, so it returns only the necessary minimum. Registries themselves hide the full contacts.
Is Redis required?
No. The cache lives in process memory by default with limits on entry count and size. Redis helps with several instances and in production, and the cache.requireRedis option makes it mandatory.
How do I protect the MCP endpoint?
Add one or more keys to auth.keys. Every endpoint except /health and /ready then needs an Authorization Bearer or X-API-Key header. Keys can have a display name and a per-minute rate limit.
Can the service query WHOIS through a proxy?
Yes, config.yaml has a proxy section with address, username, password and a list of suffixes whose queries go through it. The value all routes every RDAP query through it, including IP and ASN.
Discussion
No questions or reviews yet.
Related
MCP serversKeyless Domainstack MCP server: an agent checks registrar, DNS, hosting, certificate, headers and SEO of a domain
mcpd starts MCP servers from one .mcpd.toml file and serves them to agents and scripts as a plain HTTP API on a local port
MCP Gateway Registry
mcp-gateway-registry
One registry and gateway for MCP servers, agents and skills: shared login, OAuth, audit, OpenTelemetry. Community project for Docker and cloud
A Node.js manager for MCP servers: it starts local servers, connects remote ones and gives a client one address, with a REST API for control
A self-hosted gateway that merges several MCP servers into one endpoint with auth and tool selection
Remote Globalping MCP server: ping, traceroute, DNS, MTR and HTTP checks from thousands of probes worldwide, on request
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| whois: WHOIS and RDAP service with an MCP endpoint (this card) | no | not required | 66 | |
| uptimepage | yes | OAuth | 55 | page availability monitoring, without WHOIS |
| SEO Audit Console | no | key is optional | 101 | site SEO auditing in one MCP, without domain registration data |
README in short
The repository covers running through Docker, prebuilt binary releases and building from source, a detailed config.yaml, the endpoint list and the stability promises for version 1.x. A separate docs/mcp.md page explains client setup.