Skip to main content
Glama
randalleast-beep

WolfTech DNS MCP Server

README.md
# WolfTech DNS MCP Server

An MCP (Model Context Protocol) server that provides DNS lookup and email authentication diagnostic tools. Built for use with Claude Desktop, Claude Code, and any MCP-compatible client.

## Tools

| Tool | Description |
|------|-------------|
| `dns_lookup` | Look up any DNS record type (A, AAAA, MX, TXT, CNAME, NS, SOA, PTR, SRV, CAA) |
| `spf_check` | Retrieve and validate SPF records with recursive DNS lookup counting (10-lookup limit) |
| `mx_check` | List MX records with priority ordering and resolved IP addresses |
| `dmarc_check` | Parse DMARC records (policy, alignment, reporting addresses) |
| `dkim_check` | Look up DKIM records by selector (handles CNAME delegation) |
| `reverse_dns` | PTR lookup with forward/reverse consistency verification |
| `domain_health` | Comprehensive email DNS audit with health score (A, AAAA, NS, MX, SPF, DMARC) |

All tools accept an optional `dns_server` parameter (default `8.8.8.8`) for querying specific resolvers or checking propagation.

## Requirements

- Python 3.13+
- [uv](https://docs.astral.sh/uv/)

## Installation

### Claude Code

Add to `.claude/.mcp.json`:

```json
{
  "mcpServers": {
    "wolftech-dns": {
      "command": "uv",
      "args": [
        "run",
        "--project",
        "/path/to/wolftech-dns-mcp",
        "--with", "fastmcp",
        "--with", "dnspython",
        "fastmcp", "run",
        "/path/to/wolftech-dns-mcp/server.py"
      ]
    }
  }
}
```

### Claude Desktop

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "wolftech-dns": {
      "command": "uv",
      "args": [
        "run",
        "--project",
        "/path/to/wolftech-dns-mcp",
        "--with", "fastmcp",
        "--with", "dnspython",
        "fastmcp", "run",
        "/path/to/wolftech-dns-mcp/server.py"
      ]
    }
  }
}
```

Replace `/path/to/wolftech-dns-mcp` with the actual path to the cloned repository.

## Usage Examples

Once configured, the tools are available to Claude as MCP tools:

- **"Look up the A records for example.com"** - uses `dns_lookup`
- **"Check the SPF record for mydomain.com"** - uses `spf_check`
- **"Run a full email DNS health check on mydomain.com"** - uses `domain_health`
- **"Check if selector1 DKIM is set up for mydomain.com"** - uses `dkim_check`
- **"Do a reverse DNS lookup on 74.140.194.162"** - uses `reverse_dns`
- **"Check MX records for mydomain.com using Cloudflare DNS"** - uses `mx_check` with `dns_server: "1.1.1.1"`

## Stack

- [FastMCP](https://github.com/jlowin/fastmcp) - MCP server framework
- [dnspython](https://www.dnspython.org/) - DNS toolkit for Python
- Transport: stdio

TDQS

A4.2/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct DNS resource or check: generic lookup, SPF, MX, DMARC, DKIM, reverse DNS, and aggregate health. No two tools overlap in purpose.

Naming Consistency4/5

All names are lowercase snake_case and readable, but they mix patterns: 'dns_lookup' and 'reverse_dns' use different structures than the '_check' suffix used by most email validation tools. Minor inconsistency, still predictable.

Tool Count5/5

Seven tools is well-scoped for a DNS/email diagnostic server. Each tool addresses a specific need, and the count feels appropriately focused without bloat or thinness.

Completeness5/5

The set covers generic DNS lookups, core email authentication records (SPF, MX, DMARC, DKIM), reverse DNS, and an aggregate health check. It provides a complete read-only diagnostic workflow with no obvious gaps.

Maintenance

ActivityInactive
ResponsivenessSyncing