dns_lookup
Resolve DNS records for any hostname, including A, AAAA, MX, TXT, NS, and CNAME types.
Instructions
Look up DNS records for a hostname. record_type: A, AAAA, MX, TXT, NS, CNAME.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | ||
| record_type | No | A |
Implementation Reference
- src/mcp_nettools/server.py:38-49 (registration)The dns_lookup function is registered as an MCP tool via the @mcp.tool() decorator on line 38. This is both the registration and the handler.
@mcp.tool() def dns_lookup(host: str, record_type: str = "A") -> dict: """Look up DNS records for a hostname. record_type: A, AAAA, MX, TXT, NS, CNAME.""" try: answers = dns.resolver.resolve(host, record_type) return { "host": host, "record_type": record_type, "records": [str(r) for r in answers], } except Exception as e: return {"error": str(e), "tool": "dns_lookup", "host": host} - src/mcp_nettools/server.py:38-49 (handler)The dns_lookup function implements the core DNS lookup logic. It takes a host (string) and optional record_type (default 'A'), uses dns.resolver.resolve to query DNS, and returns host, record_type, and records list. On error, it returns an error dict with tool name 'dns_lookup'.
@mcp.tool() def dns_lookup(host: str, record_type: str = "A") -> dict: """Look up DNS records for a hostname. record_type: A, AAAA, MX, TXT, NS, CNAME.""" try: answers = dns.resolver.resolve(host, record_type) return { "host": host, "record_type": record_type, "records": [str(r) for r in answers], } except Exception as e: return {"error": str(e), "tool": "dns_lookup", "host": host} - src/mcp_nettools/server.py:39-39 (schema)The function signature defines the input schema: host (str, required) and record_type (str, default 'A') with docstring listing supported types: A, AAAA, MX, TXT, NS, CNAME.
def dns_lookup(host: str, record_type: str = "A") -> dict: - src/mcp_nettools/server.py:10-10 (helper)Import of dns.resolver (dnspython library) which is the helper dependency used to perform DNS resolutions in dns_lookup.
import dns.resolver