Research Roadmap: DNS Server with MCP Management
Project: Identify and design a DNS server solution for the VPS that is written in Go, stores zones in SQLite, and can be managed via MCP (Model Context Protocol).
Goal: Provide a modern, lightweight, scriptable DNS server that can be controlled by AI agents through MCP tools (e.g., add/remove zones, manage records, query stats). Ideal for dynamic environments and automation.
---
Phase 1: Discovery & Requirements
- [ ] Confirm technical constraints: Go implementation, SQLite zone storage, MCP control interface (either built-in or wrapper).
- [ ] Identify candidate DNS servers:
- CoreDNS (Go plugin-based, can use SQLite via `sqlite` plugin or custom)
- Other Go DNS servers: `go-dns` (not a full server), `nsd-tools`? (no)
- Possibly build a minimal custom server on `miekg/dns` library.
- [ ] Evaluate each candidate for:
- Maturity and production readiness
- Extensibility (plugins, middleware)
- SQLite integration (native plugin or easy to add)
- Performance and resource usage
- Security features (TSIG, ACLs)
- Community and documentation
Phase 2: Architecture Design
- [ ] Choose primary candidate (likely CoreDNS with sqlite plugin or custom wrapper).
- [ ] Design MCP tool set:
- `dns.add_zone(name, origin)`
- `dns.delete_zone(name)`
- `dns.add_record(zone, name, type, value, ttl)`
- `dns.delete_record(zone, name, type, value?)`
- `dns.list_zones()`
- `dns.list_records(zone)`
- `dns.reload_zone(zone)`
- `dns.get_stats()`
- [ ] Define data model: zones table, records table in SQLite.
- [ ] Plan deployment: systemd service, Docker, or standalone binary.
Phase 3: Implementation Plan
- [ ] If using CoreDNS: document plugin configuration, compile custom build with sqlite.
- [ ] If building custom: outline using `miekg/dns` + SQLite backend + MCP server (stdio).
- [ ] Estimate effort: custom build maybe 2-4 weeks; configuring CoreDNS maybe 1 week.
- [ ] Write detailed tasks and schedule.
Phase 4: Security & Operations
- [ ] Access control: who can invoke MCP tools? Unix user? Token?
- [ ] Zone transfer security (TSIG).
- [ ] Logging and monitoring.
- [ ] Backup/restore of SQLite database.
Phase 5: Reporting
- Write Report 1: DNS Server Landscape & Recommendation
- Write Report 2: Architecture & MCP Interface Spec
- Write Report 3: Implementation Plan & Effort Estimate
---
This roadmap will evolve as we learn.