Skip to content
relentlessworksPublic

About

Agentic-first DNS lookup and resolution service. Query A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRV, CAA, DNSKEY records. Reverse DNS lookups. Domain resolution. MCP endpoint. Plain text API, agent-driven, single Go binary. No database needed.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

dnskit

Agentic-first DNS lookup and resolution service. The agent IS the interface.

Query DNS records (A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRV, CAA, DNSKEY) over plain HTTP. Reverse DNS lookups. Resolve domains to IP addresses. Plain text by default, JSON on demand. MCP endpoint for chat client integrations.

Quick Start

# Build and run
make build
./dnskit -no-auth

# Or with Go directly
go run ./cmd/dnskit -no-auth

Usage

Look up A records

curl http://localhost:8080/lookup/A/example.com
# type=A name=example.com value=93.184.216.34 ttl=300

MX records

curl http://localhost:8080/mx/example.com
# type=MX name=example.com value=mail.example.com pref=10 ttl=300

Reverse DNS

curl http://localhost:8080/reverse/8.8.8.8
# type=PTR name=8.8.8.8 value=dns.google ttl=300

All records

curl http://localhost:8080/all/example.com

JSON output

curl -H "Accept: application/json" http://localhost:8080/lookup/A/example.com
# {"domain":"example.com","type":"A","records":[{"type":"A","name":"example.com","value":"93.184.216.34","ttl":300}]}

MCP (Model Context Protocol)

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"lookup","arguments":{"domain":"example.com","type":"A"}},"id":2}'

Endpoints

Method Path Description
GET /help Self-documenting help (also /.well-known/agent.md)
GET /types List supported DNS record types
GET /lookup/{type}/{domain} Look up DNS records by type
GET /resolve/{domain} Resolve domain to A + AAAA records
GET /reverse/{ip} Reverse DNS lookup (PTR)
GET /all/{domain} Look up all record types
GET /mx/{domain} Shortcut: MX records
GET /ns/{domain} Shortcut: NS records
GET /txt/{domain} Shortcut: TXT records
GET /cname/{domain} Shortcut: CNAME record
GET /soa/{domain} Shortcut: SOA record
GET /srv/{domain} Shortcut: SRV records
GET /caa/{domain} Shortcut: CAA records
GET /dnskey/{domain} Shortcut: DNSKEY records
POST /mcp MCP JSON-RPC 2.0 endpoint

Supported Record Types

A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRV, CAA, DNSKEY

Configuration

Flag Env Default Description
-addr DNSKIT_ADDR :8080 Listen address
-no-auth DNSKIT_NO_AUTH false Disable auth (dev mode)
-resolver DNSKIT_RESOLVER 8.8.8.8:53 Custom DNS resolver
-timeout DNSKIT_TIMEOUT 10 DNS query timeout (seconds)

Design Principles

  • The agent IS the interface — No UI, no SDK. The API is the product.
  • Plain text by default — One labeled, grepable line per record. Token-cheap.
  • JSON on demand — Accept: application/json or ?format=json.
  • Instructive errors — Every 4xx includes a hint for agent self-correction.
  • Self-documenting — GET /help returns a one-page operating manual.
  • Single static binary — Go + CGO_ENABLED=0, zero external runtime dependencies.
  • No database needed — Pure stateless DNS resolution.

License

MIT

About

Agentic-first DNS lookup and resolution service. Query A, AAAA, MX, NS, TXT, CNAME, SOA, PTR, SRV, CAA, DNSKEY records. Reverse DNS lookups. Domain resolution. MCP endpoint. Plain text API, agent-driven, single Go binary. No database needed.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages