adguard-mcp
WIPMCP server for AdGuard Home - manage DNS filtering.
WHAT IT DOES
AdGuard MCP exposes AdGuard Home to your AI client across one or more instances, plus AdGuardHome Sync status and control. Reads are open: server status, stats, the DNS query log, filter lists, clients, and a check_host lookup that shows exactly what AdGuard would do with a hostname. Filtering and client changes sit behind a three-tier write-gate, so the model cannot disable protection or wipe the rules block from a hallucinated call. It is for homelab operators running one or several AdGuard Home boxes who want to inspect and tune DNS filtering from an assistant.
Status: work in progress. Published to npm as @solomonneas/adguard-mcp; expect the surface to keep shifting while it stabilizes.
INSTALL
Set per-instance env vars; at least one instance is required. The instance name comes from the middle segment of the var, so adding ADGUARD_LIVINGROOM_* registers a second box automatically. AdGuardHome Sync uses its own prefix.
TOOLS EXPOSED
33 tools across three gating tiers. Reads need no flag; safe writes require confirm: true; destructive ops also require destructive: true. Every tool accepts an optional instance arg to address a non-default box.
Reads (14) · open
Safe writes (13) · confirm: true
Destructive (6) · confirm + destructive
CLIENT CONFIG
Sample mcpServers entry (Claude Desktop / Claude Code / any MCP client). The same shape works in OpenClaw, Codex CLI, and Hermes; see the README for those formats.
Credentials only live in memory after env-load and are redacted from logs and error messages. If no Sync URL is set, the Sync tools stay listed but return a clear config error when called.