A cross-platform DNS query MCP server using fastmcp with support for Windows/Linux/macOS
Three tools with clear verb-noun naming (dns_query, reverse_dns_lookup, dns_lookup_batch) and basic descriptions. All tools have input schemas with type definitions and parameter descriptions. However, descriptions are minimal (10-40 chars), lacking context on WHEN to use each tool and what distinguishes them. Output schemas are not documented. No error handling guidance, no parameter constraints (e.g., valid record types), and no mention of timeout behavior or failure modes. Tool descriptions do not explain prerequisites or dependencies between tools.
Perform batch DNS lookups for multiple hosts
Query DNS record for a host
Perform reverse DNS lookup for an IP address
Descriptions are too brief (10-40 chars). Rubric baseline is 194 chars. Descriptions lack WHEN to use each tool, what distinguishes dns_query from dns_lookup_batch, and what output format to expect.
Output schemas are not documented. LLMs cannot plan downstream calls or extract fields without knowing what dns_query returns (e.g., does it return a list of records, a single record, or raw DNS response?).
No error handling guidance. Code has try/except blocks but tool descriptions do not explain what happens on timeout, invalid hostname, or DNS resolution failure. LLMs cannot self-correct without recovery hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
record_type parameter accepts free-form strings with no enum constraint. Valid values (A, AAAA, MX, CNAME, TXT, NS, SOA) are mentioned in description but not enforced. LLMs may hallucinate invalid record types.
dns_lookup_batch accepts a 'hosts' array but no limit or pagination guidance. Large arrays could cause timeouts or memory issues. No mention of max batch size or result truncation.