mcp-server-dns
# mcp-server-dns
[](https://www.npmjs.com/package/mcp-server-dns)
[](https://www.npmjs.com/package/mcp-server-dns)
[](https://github.com/ofershap/mcp-server-dns/actions/workflows/ci.yml)
[](https://www.typescriptlang.org/)
[](https://opensource.org/licenses/MIT)
DNS lookups, reverse DNS, WHOIS, and domain checks from your AI assistant. No API keys, no config. Powered by Node.js built-in DNS.
```bash
npx mcp-server-dns
```
> Works with Claude Desktop, Cursor, VS Code Copilot, and any MCP client. Uses Node.js native `dns` module, so there's nothing to sign up for.

<sub>Demo built with <a href="https://github.com/ofershap/remotion-readme-kit">remotion-readme-kit</a></sub>
## Why
DNS and WHOIS lookups come up more often than you'd think during development. Debugging email delivery? You need MX records. Setting up a new domain? Check the nameservers. Investigating a suspicious URL? WHOIS tells you who owns it. The existing MCP options for this require paid API keys (like WhoisXML API). This server uses Node.js built-in DNS resolution and public WHOIS servers, so it works out of the box with zero accounts or credentials.
## Tools
| Tool | What it does |
| ------------------- | ------------------------------------------------------ |
| `dns_lookup` | Look up A, AAAA, MX, TXT, NS, CNAME, SOA, SRV, or PTR |
| `reverse_dns` | Perform reverse DNS (PTR) lookup on an IP address |
| `resolve_all` | Resolve A, AAAA, MX, TXT, NS, CNAME in one call |
| `check_nameservers` | Get nameserver (NS) records for a domain |
| `whois` | Query WHOIS data (follows IANA referrals to registrar) |
## Quick Start
### Cursor
Add to `.cursor/mcp.json`:
```json
{
"mcpServers": {
"dns": {
"command": "npx",
"args": ["-y", "mcp-server-dns"]
}
}
}
```
### Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"dns": {
"command": "npx",
"args": ["-y", "mcp-server-dns"]
}
}
}
```
### VS Code
Add to user settings or `.vscode/mcp.json`:
```json
{
"mcp": {
"servers": {
"dns": {
"command": "npx",
"args": ["-y", "mcp-server-dns"]
}
}
}
}
```
## Examples
- "What are the DNS records for example.com?"
- "Do a reverse DNS lookup on 8.8.8.8"
- "Show me the WHOIS info for github.com"
- "What nameservers does cloudflare.com use?"
- "Resolve all record types for google.com"
- "Check the MX records for my-company.com"
## Development
```bash
git clone https://github.com/ofershap/mcp-server-dns.git
cd mcp-server-dns
npm install
npm test
npm run build
```
## See also
More MCP servers and developer tools on my [portfolio](https://gitshow.dev/ofershap).
## Author
[](https://gitshow.dev/ofershap)
[](https://linkedin.com/in/ofershap)
[](https://github.com/ofershap)
---
<sub>README built with [README Builder](https://ofershap.github.io/readme-builder/)</sub>
## License
MIT © 2026 Ofer Shapira
TDQS
Scored across 5 tools
The tools are mostly distinct with clear purposes: dns_lookup for specific record types, resolve_all for common records in bulk, reverse_dns for PTR lookups, and whois for domain registration data. However, check_nameservers overlaps with dns_lookup (which can also return NS records) and resolve_all (which includes NS), potentially causing confusion in tool selection.
The naming follows a consistent snake_case pattern with descriptive verb-noun combinations (e.g., dns_lookup, reverse_dns). Minor deviations exist: check_nameservers uses 'check' while others use more specific verbs like 'lookup' or 'resolve', but overall the convention is readable and predictable.
With 5 tools, this server is well-scoped for DNS operations. Each tool serves a distinct function in the domain, and the count is neither too sparse nor bloated, making it manageable for agents to handle typical DNS-related tasks effectively.
The toolset covers essential DNS operations: lookup, bulk resolution, reverse lookups, and WHOIS queries. A minor gap exists in lacking explicit tools for DNS record management (e.g., create or update records), but this is reasonable if the server is focused on querying rather than administration, and agents can still perform core diagnostic tasks.