Manage AdGuard Home through AI assistants
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by AdGuard Home MCP Server.
global_get_statusRetrieve server status including version, DNS addresses, protection state, and ports
global_get_profileRetrieve user profile (name, language, theme)
global_check_versionCheck for AdGuard Home updates and compare with current version
global_set_protectionEnable or disable DNS protection globally, with optional duration for temporary disable
global_update_profileUpdate user profile settings (name, language, theme)
global_begin_updateInitiate an AdGuard Home software update
MCP server for AdGuard Home. Manage DNS filtering, clients, DHCP, rewrites, and more through natural language in Cursor, Claude Code, and Claude Desktop.
ADGUARD_ACCESS_TIER=read-only for safe monitoringADGUARD_CATEGORIES to expose only the tools you needfetch (Node.js 22+)linux/amd64 and linux/arm64 on GHCRMCP_TRANSPORT=http) using the Streamable HTTP protocolTested with AdGuard Home v0.107.76.
Run the server directly with npx:
The server validates your AdGuard Home connection on startup and fails immediately with a clear error if credentials are missing or invalid.
Run with Docker (stdio transport, same as npx):
To run as a remote MCP server with HTTP transport:
The MCP endpoint is available at http://localhost:3000 and a health check at http://localhost:3000/health.
Claude Code CLI (recommended):
JSON config (works with Claude Code .mcp.json, Claude Desktop claude_desktop_config.json, Cursor .cursor/mcp.json):
Docker (stdio):
Remote MCP (connect to a running Docker container or HTTP server):
Control which tools are available using the ADGUARD_ACCESS_TIER environment variable:
| Tier | Tools | Description |
|---|---|---|
full (default) | 65 | Read and write -- full control |
read-only | 29 | Read only -- safe for monitoring, no state changes |
Tools that are not available in your tier are not registered with the MCP server. They will not appear in your AI tool's tool list, keeping the context clean.
| Variable | Required | Default | Description |
|---|---|---|---|
ADGUARD_URL | Yes | -- | AdGuard Home base URL (e.g., http://192.168.1.1:3000) |
ADGUARD_USERNAME | Yes | -- | Admin username |
ADGUARD_PASSWORD | Yes | -- | Admin password |
ADGUARD_ACCESS_TIER | No | full | read-only for read-only tools only, full for all tools |
ADGUARD_CATEGORIES | No | (all) | Comma-separated category allowlist (e.g., dns,filtering,stats) |
ADGUARD_TOOL_BLACKLIST | No | (none) | Comma-separated list of tool names to exclude (e.g., dns_clear_cache,stats_reset) |
ADGUARD_TOOL_WHITELIST | No | (none) | Comma-separated list of tool names to force-include, bypassing access tier and category filters |
DEBUG | No | false | Enable debug logging to stderr |
MCP_TRANSPORT | No | stdio | Transport mode: stdio (default) or http |
MCP_PORT | No | 3000 | HTTP server port (only used when MCP_TRANSPORT=http) |
MCP_HOST | No | 0.0.0.0 | HTTP server bind address (only used when MCP_TRANSPORT=http) |
MCP_SESSION_IDLE_TIMEOUT | No | 1800 | Seconds of inactivity after which an HTTP session is closed and its memory released (sessions with a connected SSE stream are never closed). 0 disables. Only used when MCP_TRANSPORT=http |
MCP_EXCLUDE_TOOL_TITLES | No | false | Set true to omit tool titles from registration (saves tokens) |
global, dns, querylog, stats, filtering, safebrowsing, parental, safesearch, clients, dhcp, rewrites, tls, blocked_services, access, install, mobile_config
mcp-adguard-home provides 65 tools organized by category. Each tool's Access column shows the minimum tier required: read-only (available in both tiers) or full (requires full tier). The Hints column shows tool behavior: read-only (no state changes), destructive (modifies existing state), idempotent (same result if called twice).
| Tool | Description | Access | Hints |
|---|---|---|---|
global_get_status | Retrieve server status including version, DNS addresses, protection state, and ports | read-only | read-only, idempotent |
global_get_profile | Retrieve user profile (name, language, theme) | read-only | read-only, idempotent |
global_check_version | Check for AdGuard Home updates and compare with current version | read-only | read-only, idempotent |
global_set_protection | Enable or disable DNS protection globally, with optional duration for temporary disable | full | destructive, idempotent |
global_update_profile | Update user profile settings (name, language, theme) | full | destructive, idempotent |
global_begin_update | Initiate an AdGuard Home software update | full | destructive |
| Tool | Description | Access | Hints |
|---|---|---|---|
dns_get_info | Retrieve full DNS configuration including upstreams, cache settings, blocking mode, and DNSSEC | read-only | read-only, idempotent |
dns_test_upstream | Test upstream DNS server configuration to verify servers are reachable | read-only | read-only, idempotent |
dns_set_config | Update DNS server configuration (20 optional fields for partial update) | full | destructive, idempotent |
dns_clear_cache | Clear the DNS resolver cache | full | destructive, idempotent |
| Tool | Description | Access | Hints |
|---|---|---|---|
querylog_get | Search DNS query log with optional filtering by reason or response status, search term, and pagination | read-only | read-only, idempotent |
querylog_get_config | Retrieve query log configuration settings | read-only | read-only, idempotent |
querylog_set_config | Update query log configuration (enabled, interval, anonymization) | full | destructive, idempotent |
querylog_clear | Clear the entire DNS query log | full | destructive, idempotent |
| Tool | Description | Access | Hints |
|---|---|---|---|
stats_get | Retrieve DNS statistics including top domains, blocked counts, and client activity | read-only | read-only, idempotent |
stats_get_config | Retrieve statistics configuration settings | read-only | read-only, idempotent |
stats_reset | Reset all DNS statistics | full | destructive, idempotent |
stats_set_config | Update statistics configuration (enabled, interval, ignored domains) | full | destructive, idempotent |
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/adguard-home-mcp-server)<a href="https://allmcps.com/mcp/adguard-home-mcp-server"><img src="https://allmcps.com/api/badge/adguard-home-mcp-server?style=directory" alt="AdGuard Home MCP Server on AllMCPs" /></a>