WHOIS/RDAP lookup server implementing MCP protocol for querying domain names, IP addresses, and ASNs
The whois server defines 2 tools with clear action verbs (whois_lookup, whois_batch_lookup) and solid descriptions. Both tools have explicit input schemas with typed parameters and descriptions. However, output schemas are not documented, the code returns raw text via mcp.TextContent without specifying the structure of the WHOIS/RDAP response. Error handling is present (rate limiting, batch validation, input classification) but lacks detailed recovery guidance. The tool composition is sound (two related but distinct tools), and parameter descriptions adequately explain constraints. The main weakness is the absence of documented output structure, which forces LLMs to parse unstructured text responses.
Query WHOIS/RDAP information for multiple domain names, IP addresses/CIDR prefixes, or ASNs in one call. Results are returned per query with individual statuses. Disabled unless the operator enables batch queries.
Query WHOIS/RDAP information for a domain name, IP address or CIDR prefix (v4 or v6), or ASN
Output schemas are not documented. Both tools return mcp.TextContent with raw WHOIS/RDAP response body, but the structure (JSON fields, format, required vs optional fields) is not declared. LLMs must guess what the response contains, risking parse errors and inability to chain results to downstream tools.
Parameter descriptions mention example values (e.g., 'e.g. AS12345') which LLMs may reuse literally rather than adapt to context. Per pattern:constrained-input, examples should be replaced with formal constraints (regex, enum, format declarations in JSON Schema).
whois_batch_lookup description notes the tool is 'Disabled unless the operator enables batch queries' but the tool does not declare what permission or scope is required. Agents cannot determine in advance whether the tool will be available, forcing failed calls and recovery loops.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 70 | 2026-07-28+ | v2 |
Error messages are basic (e.g., 'Invalid input: please provide a valid domain, IP address, or ASN'). Per pattern:recovery-guide, errors should include actionable next steps. E.g., 'Invalid input. Expected domain (example.com), IPv4/IPv6 (192.0.2.1), CIDR (192.0.2.0/24), or ASN (AS12345). Try again or call search_* first if you need help discovering valid identifiers.'