CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

AdGuard Home MCP Server

samik081/mcp-adguard-home
1authSTDIOregistry active
Summary

Connects Claude to your AdGuard Home instance to manage DNS filtering, query logs, DHCP, and rewrites through conversation. Exposes 65 tools covering the complete AdGuard Home API, from checking protection status and viewing blocked queries to clearing caches and updating filter lists. Ships with a read-only mode that surfaces 29 safe monitoring tools while blocking any state changes. Supports both stdio and HTTP transports, runs via npx or Docker, and lets you filter down to specific API categories if you only need DNS or stats tools. Useful if you're already running AdGuard Home and want to check filtering stats, troubleshoot client issues, or toggle protection without opening the web UI.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

npm version Docker image License: MIT Node.js Version

MCP AdGuard Home

MCP server for AdGuard Home. Manage DNS filtering, clients, DHCP, rewrites, and more through natural language in Cursor, Claude Code, and Claude Desktop.

Features

  • 65 tools across 16 categories covering the complete AdGuard Home API
  • Read-only mode via ADGUARD_ACCESS_TIER=read-only for safe monitoring
  • Category filtering via ADGUARD_CATEGORIES to expose only the tools you need
  • Zero HTTP dependencies -- uses native fetch (Node.js 18+)
  • Docker images for linux/amd64 and linux/arm64 on GHCR
  • Remote MCP via HTTP transport (MCP_TRANSPORT=http) using the Streamable HTTP protocol
  • TypeScript/ESM with full type safety

API Compatibility

Tested with AdGuard Home v0.107.76.

Quick Start

Run the server directly with npx:

ADGUARD_URL="http://your-adguard-ip:3000" \
ADGUARD_USERNAME="your-username" \
ADGUARD_PASSWORD="your-password" \
npx -y @samik081/mcp-adguard-home

The server validates your AdGuard Home connection on startup and fails immediately with a clear error if credentials are missing or invalid.

Docker

Run with Docker (stdio transport, same as npx):

docker run --rm -i \
  -e ADGUARD_URL=http://your-adguard-ip:3000 \
  -e ADGUARD_USERNAME=your-username \
  -e ADGUARD_PASSWORD=your-password \
  ghcr.io/samik081/mcp-adguard-home

To run as a remote MCP server with HTTP transport:

docker run -d -p 3000:3000 \
  -e MCP_TRANSPORT=http \
  -e ADGUARD_URL=http://your-adguard-ip:3000 \
  -e ADGUARD_USERNAME=your-username \
  -e ADGUARD_PASSWORD=your-password \
  ghcr.io/samik081/mcp-adguard-home

The MCP endpoint is available at http://localhost:3000 and a health check at http://localhost:3000/health.

Configuration

Claude Code CLI (recommended):

# Using npx
claude mcp add --transport stdio adguard-home \
  --env ADGUARD_URL=http://your-adguard-ip:3000 \
  --env ADGUARD_USERNAME=your-username \
  --env ADGUARD_PASSWORD=your-password \
  -- npx -y @samik081/mcp-adguard-home

# Using Docker
claude mcp add --transport stdio adguard-home \
  --env ADGUARD_URL=http://your-adguard-ip:3000 \
  --env ADGUARD_USERNAME=your-username \
  --env ADGUARD_PASSWORD=your-password \
  -- docker run --rm -i ghcr.io/samik081/mcp-adguard-home

# Using remote HTTP (connect to a running Docker container or HTTP server)
claude mcp add --transport http adguard-home http://localhost:3000

JSON config (works with Claude Code .mcp.json, Claude Desktop claude_desktop_config.json, Cursor .cursor/mcp.json):

{
  "mcpServers": {
    "adguard-home": {
      "command": "npx",
      "args": ["-y", "@samik081/mcp-adguard-home"],
      "env": {
        "ADGUARD_URL": "http://your-adguard-ip:3000",
        "ADGUARD_USERNAME": "your-username",
        "ADGUARD_PASSWORD": "your-password"
      }
    }
  }
}

Docker (stdio):

{
  "mcpServers": {
    "adguard-home": {
      "command": "docker",
      "args": ["run", "--rm", "-i",
        "-e", "ADGUARD_URL=http://your-adguard-ip:3000",
        "-e", "ADGUARD_USERNAME=your-username",
        "-e", "ADGUARD_PASSWORD=your-password",
        "ghcr.io/samik081/mcp-adguard-home"
      ]
    }
  }
}

Remote MCP (connect to a running Docker container or HTTP server):

{
  "mcpServers": {
    "adguard-home": {
      "type": "streamable-http",
      "url": "http://localhost:3000"
    }
  }
}

Access Tiers

Control which tools are available using the ADGUARD_ACCESS_TIER environment variable:

TierToolsDescription
full (default)65Read and write -- full control
read-only29Read only -- safe for monitoring, no state changes
  • full: All 65 tools. Includes configuration changes, adding/removing filters, clearing logs, and all destructive operations.
  • read-only: 29 tools. Status, configuration viewing, and query log reading only. 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.

Environment Variables

VariableRequiredDefaultDescription
ADGUARD_URLYes--AdGuard Home base URL (e.g., http://192.168.1.1:3000)
ADGUARD_USERNAMEYes--Admin username
ADGUARD_PASSWORDYes--Admin password
ADGUARD_ACCESS_TIERNofullread-only for read-only tools only, full for all tools
ADGUARD_CATEGORIESNo(all)Comma-separated category allowlist (e.g., dns,filtering,stats)
ADGUARD_TOOL_BLACKLISTNo(none)Comma-separated list of tool names to exclude (e.g., dns_clear_cache,stats_reset)
ADGUARD_TOOL_WHITELISTNo(none)Comma-separated list of tool names to force-include, bypassing access tier and category filters
DEBUGNofalseEnable debug logging to stderr
MCP_TRANSPORTNostdioTransport mode: stdio (default) or http
MCP_PORTNo3000HTTP server port (only used when MCP_TRANSPORT=http)
MCP_HOSTNo0.0.0.0HTTP server bind address (only used when MCP_TRANSPORT=http)
MCP_EXCLUDE_TOOL_TITLESNofalseSet true to omit tool titles from registration (saves tokens)

Available Categories

global, dns, querylog, stats, filtering, safebrowsing, parental, safesearch, clients, dhcp, rewrites, tls, blocked_services, access, install, mobile_config

Tools

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).

Global (6 tools)
ToolDescriptionAccessHints
global_get_statusRetrieve server status including version, DNS addresses, protection state, and portsread-onlyread-only, idempotent
global_get_profileRetrieve user profile (name, language, theme)read-onlyread-only, idempotent
global_check_versionCheck for AdGuard Home updates and compare with current versionread-onlyread-only, idempotent
global_set_protectionEnable or disable DNS protection globally, with optional duration for temporary disablefulldestructive, idempotent
global_update_profileUpdate user profile settings (name, language, theme)fulldestructive, idempotent
global_begin_updateInitiate an AdGuard Home software updatefulldestructive
DNS (4 tools)
ToolDescriptionAccessHints
dns_get_infoRetrieve full DNS configuration including upstreams, cache settings, blocking mode, and DNSSECread-onlyread-only, idempotent
dns_test_upstreamTest upstream DNS server configuration to verify servers are reachableread-onlyread-only, idempotent
dns_set_configUpdate DNS server configuration (19 optional fields for partial update)fulldestructive, idempotent
dns_clear_cacheClear the DNS resolver cachefulldestructive, idempotent
Query Log (4 tools)
ToolDescriptionAccessHints
querylog_getSearch DNS query log with optional filtering by reason or response status, search term, and paginationread-onlyread-only, idempotent
querylog_get_configRetrieve query log configuration settingsread-onlyread-only, idempotent
querylog_set_configUpdate query log configuration (enabled, interval, anonymization)fulldestructive, idempotent
querylog_clearClear the entire DNS query logfulldestructive, idempotent
Statistics (4 tools)
ToolDescriptionAccessHints
stats_getRetrieve DNS statistics including top domains, blocked counts, and client activityread-onlyread-only, idempotent
stats_get_configRetrieve statistics configuration settingsread-onlyread-only, idempotent
stats_resetReset all DNS statisticsfulldestructive, idempotent
stats_set_configUpdate statistics configuration (enabled, interval, ignored domains)fulldestructive, idempotent
Filtering (8 tools)
ToolDescriptionAccessHints
filtering_get_statusRetrieve filtering configuration including blocklists, allowlists, and user rulesread-onlyread-only, idempotent
filtering_check_hostTest whether a hostname would be blocked by current filtering rulesread-onlyread-only, idempotent
filtering_set_configUpdate global filtering configuration (enabled state and update interval)fulldestructive, idempotent
filtering_add_urlAdd a new filter URL (blocklist or allowlist)full—
filtering_remove_urlRemove a filter URL from blocklist or allowlistfulldestructive
filtering_set_urlUpdate an existing filter URL (rename, change URL, or enable/disable)fulldestructive, idempotent
filtering_refreshForce refresh of filter lists to fetch latest updatesfulldestructive, idempotent
filtering_set_rulesSet custom filtering rules (replaces all existing custom rules)fulldestructive, idempotent
Safe Browsing (2 tools)
ToolDescriptionAccessHints
safebrowsing_get_statusRetrieve safe browsing (malware/phishing protection) statusread-onlyread-only, idempotent
safebrowsing_setEnable or disable safe browsing protectionfulldestructive, idempotent
Parental (2 tools)
ToolDescriptionAccessHints
parental_get_statusRetrieve parental filtering statusread-onlyread-only, idempotent
parental_setEnable or disable parental filtering (content restrictions)fulldestructive, idempotent
Safe Search (2 tools)
ToolDescriptionAccessHints
safesearch_get_statusRetrieve safe search settings showing per-engine enforcement statusread-onlyread-only, idempotent
safesearch_set_settingsUpdate safe search settings with per-engine configuration (Bing, DuckDuckGo, Google, Pixabay, Yandex, YouTube)fulldestructive, idempotent
Clients (5 tools)
ToolDescriptionAccessHints
clients_getRetrieve all configured and auto-detected clients with their settingsread-onlyread-only, idempotent
clients_searchSearch for specific clients by their IDs (IP, MAC, CIDR, or client ID)read-onlyread-only, idempotent
clients_addAdd a new persistent client with per-client settingsfull—
clients_updateUpdate an existing persistent client by namefulldestructive, idempotent
clients_deleteDelete a persistent client by namefulldestructive
DHCP (9 tools)
ToolDescriptionAccessHints
dhcp_get_statusRetrieve DHCP server configuration, static leases, and active leasesread-onlyread-only, idempotent
dhcp_get_interfacesRetrieve available network interfaces for DHCP server bindingread-onlyread-only, idempotent
dhcp_find_activeScan for competing DHCP servers on a network interfaceread-onlyread-only, idempotent
dhcp_set_configUpdate DHCP server configuration (enabled state, interface, IPv4/IPv6 settings)fulldestructive, idempotent
dhcp_add_static_leaseAdd a static DHCP lease mapping a MAC address to an IPfull—
dhcp_remove_static_leaseRemove a static DHCP leasefulldestructive
dhcp_update_static_leaseUpdate a static DHCP lease (remove + add pattern)fulldestructive, idempotent
dhcp_resetReset DHCP configuration to defaultsfulldestructive, idempotent
dhcp_reset_leasesClear all DHCP leasesfulldestructive, idempotent
Rewrites (6 tools)
ToolDescriptionAccessHints
rewrites_listRetrieve all configured DNS rewrite rulesread-onlyread-only, idempotent
rewrites_get_settingsRetrieve DNS rewrite module enabled/disabled stateread-onlyread-only, idempotent
rewrites_addAdd a new DNS rewrite rulefull—
rewrites_updateUpdate a DNS rewrite rule (remove + add pattern)fulldestructive, idempotent
rewrites_deleteDelete a DNS rewrite rulefulldestructive
rewrites_set_settingsEnable or disable the DNS rewrite modulefulldestructive, idempotent
TLS (3 tools)
ToolDescriptionAccessHints
tls_get_statusRetrieve TLS configuration and certificate validation statusread-onlyread-only, idempotent
tls_validateValidate TLS configuration without applying changesread-onlyread-only, idempotent
tls_set_configUpdate TLS configuration including certificates and HTTPS/DoH/DoT settingsfulldestructive, idempotent
Blocked Services (3 tools)
ToolDescriptionAccessHints
blocked_services_get_allList all available services that can be blocked, organized by groupread-onlyread-only, idempotent
blocked_services_getRetrieve currently blocked services list and scheduleread-onlyread-only, idempotent
blocked_services_updateUpdate the list of blocked services and optional schedulefulldestructive, idempotent
Access (2 tools)
ToolDescriptionAccessHints
access_get_listRetrieve access control lists: allowed clients, disallowed clients, and blocked hostsread-onlyread-only, idempotent
access_set_listSet access control lists for allowed clients, disallowed clients, and blocked hostsfulldestructive, idempotent
Install (3 tools)
ToolDescriptionAccessHints
install_get_addressesRetrieve network interface details and ports for initial setupread-onlyread-only, idempotent
install_check_configValidate install configuration without applying (checks web/DNS binding, credentials)fullread-only, idempotent
install_apply_configApply initial setup configuration (web/DNS binding and admin credentials)fulldestructive
Mobile Config (2 tools)
ToolDescriptionAccessHints
mobile_config_get_dohGenerate Apple .mobileconfig profile for DNS-over-HTTPSread-onlyread-only, idempotent
mobile_config_get_dotGenerate Apple .mobileconfig profile for DNS-over-TLSread-onlyread-only, idempotent

Verify It Works

After configuring your MCP client, ask your AI assistant:

"What's my AdGuard Home server status?"

If the connection is working, the assistant will call global_get_status and return your server version, DNS addresses, protection state, and port configuration.

Usage Examples

  • "What's the current DNS protection status?" -- calls global_get_status to show version, addresses, and protection state.
  • "Show me all DNS rewrite rules" -- calls rewrites_list to display all configured DNS rewrites.
  • "Add a DNS rewrite for local.example.com pointing to 192.168.1.100" -- calls rewrites_add to create a new rewrite rule.

Troubleshooting

Connection errors

  • Verify ADGUARD_URL is reachable from the machine running the MCP server
  • Ensure the URL includes the port if non-standard (e.g., http://192.168.1.1:3000)
  • Check that AdGuard Home is running and accessible

Authentication failures

  • Verify ADGUARD_USERNAME and ADGUARD_PASSWORD are correct
  • Check that the user has admin privileges in AdGuard Home

Tools not showing up

  • Check your ADGUARD_ACCESS_TIER setting -- read-only mode only exposes read tools
  • Check ADGUARD_CATEGORIES -- only tools in listed categories are registered
  • Verify the server started without errors by checking stderr output

Development

# Install dependencies
npm install

# Build the project
npm run build

# Run in development mode (auto-reload)
npm run dev

# Open the MCP Inspector for interactive testing
npm run inspect

License

MIT

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Configuration

ADGUARD_URL*

URL of the AdGuard Home instance (e.g. http://192.168.1.1:3000)

ADGUARD_USERNAME*secret

AdGuard Home username

ADGUARD_PASSWORD*secret

AdGuard Home password

Registryactive
Package@samik081/mcp-adguard-home
TransportSTDIO
AuthRequired
UpdatedMay 27, 2026
View on GitHub