dns_lookup
DNS records for a domain (A, AAAA, MX, TXT, NS by default; also CNAME, SOA).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | ||
| domain | Yes | Domain name, e.g. example.com |
DNS records for a domain (A, AAAA, MX, TXT, NS by default; also CNAME, SOA).
| Name | Required | Description | Default |
|---|---|---|---|
| types | No | ||
| domain | Yes | Domain name, e.g. example.com |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint, so the safety profile is covered. The description adds genuine behavioral value by stating the default record types resolved when types is omitted, but says nothing about failure behavior (NXDOMAIN, timeouts) or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence with zero filler, front-loaded with the resource and defaults. It loses a point only because the missing verb makes the opening slightly less immediately parseable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter external lookup with no output schema, the description covers inputs but leaves the agent guessing at the return format and error cases. Adequate for invocation, thin for interpreting results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% — domain is documented in the schema but types is not — so the description must compensate. It does so well by enumerating the allowed record types and, crucially, explaining which are fetched by default, which the schema never states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (DNS records for a domain) and the record types returned, which lets an agent distinguish it from whois or ssl_check. But it omits a verb entirely — it reads as a noun phrase, so the agent must infer that this performs a lookup rather than describing a domain's stored records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this over siblings like whois (registration data) or http_headers, despite obvious overlap in the 'investigate a domain' workflow. The default type set is mentioned but not framed as decision guidance (e.g., when to pass an explicit types array).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.