Single tool with clear naming (rdap_lookup) and complete input schema. Description is adequate (194 chars) but lacks actionable context for LLM selection. Parameters are typed and described, but missing guidance on when to use this tool vs alternatives, error recovery paths, and output structure documentation. Tool performs read-only domain lookups with proper input validation in implementation.
Look up domain information using the RDAP (Registration Data Access Protocol). Provides structured domain registration details, nameservers, contacts, and status information.
Output schema not documented in tool definition. formatResult() produces complex nested structure (rdap.contacts, rdap.nameserver_details, rdap.dnssec) but LLM has no schema to plan downstream operations or extract fields.
Tool description lacks actionable context. Does not explain WHEN to use rdap_lookup (vs whois, DNS queries), what prerequisites exist (valid domain format), or what the response structure contains. LLM cannot determine if this is the right tool without trial.
No error recovery guidance. execute() throws generic errors ('RDAP lookup failed', 'No RDAP server found') without suggesting next steps. LLM cannot self-correct or choose alternatives when domain lookup fails.
Parameter 'domain' description lacks format constraints. States 'e.g. example.com' but does not specify: TLD required? Subdomains allowed? Max length? Regex pattern? LLM may pass invalid formats like 'localhost' or 'example' without validation hint.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
include_raw parameter lacks guidance on when to use it. Description says 'include raw RDAP response data' but does not explain: what is 'raw'? When is it useful? How large can it be? LLM may request it unnecessarily, bloating responses.