Single tool with adequate naming but significant gaps in schema documentation, parameter descriptions, and error handling. The tool name 'dns-query' follows verb-noun convention and is clear. However, the input schema lacks proper parameter type constraints (no enum for DNS record types, no format/pattern validation), output schema is completely undocumented, and error handling is absent. The code contains a TODO comment ('TODO: Validate inputs') indicating incomplete validation. For a tool operating on external DNS infrastructure, the lack of error guidance, timeout handling, and result documentation is problematic.
Make a DNS query for a given name and type
Output schema completely undocumented. LLMs cannot determine what fields to expect from DNS query results, forcing them to guess downstream parameter mappings.
Parameter 'type' lacks enum constraint for valid DNS record types. Accepts free-form string, inviting hallucinated values like 'INVALID', 'QUERY', or invalid uppercase variants. Should define enum: ['A', 'AAAA', 'MX', 'TXT', 'CNAME', 'NS', 'SOA', 'PTR', 'SRV'].
No error handling or recovery guidance. Code lacks try-catch; if resolver.resolve() fails (invalid domain, network timeout, NXDOMAIN), LLM receives raw error with no actionable next steps. Should categorize errors as retryable (timeout), user-fixable (invalid domain), or fatal.
Parameter 'name' description lacks format/constraint guidance. Should specify: 'A valid domain name (e.g. example.com). Cannot be empty. Use FQDN for reverse lookups (e.g. 1.2.3.4.in-addr.arpa for PTR records).'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 45 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Incomplete input validation. Code contains TODO comment but no actual validation. Should validate: domain name format, record type against enum, non-empty values. Invalid inputs should return clear error ('Invalid DNS record type: must be one of A, AAAA, MX, TXT, CNAME, NS, SOA, PTR, SRV') not silent failures.
No timeout or rate-limit handling. DNS queries can hang indefinitely or be rate-limited by resolvers. Tool should set explicit timeout (e.g. 5 seconds) and return actionable error: 'DNS query timeout after 5s. Server may be unreachable. Try again in 30 seconds.' without timeout handling, agents can deadlock.