About 🛡️ AdGuard Home MCP
AdGuard Home MCP lets AI agents or scripts manage AdGuard Home DNS rewrites, filtering rules, and filter lists through MCP or a CLI. It also supports saving instance credentials for CLI use.
Key features
- 01List, add, and remove DNS rewrite records
- 02List and manage DNS filtering rules
- 03Enable or disable filter lists
- 04Refresh filter lists
- 05Log in and save credentials through the CLI
Use cases
- 01Add DNS rewrites for local domains
- 02Block or allow specified domains
- 03Change filter-list enabled states
- 04Manage AdGuard Home DNS from scripts
MCP support
The MCP server exposes tools for managing AdGuard Home DNS rewrite records, filtering rules, and filter lists; the package also includes a CLI.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project README🛡️ AdGuard Home MCP
A Model Context Protocol (MCP) server for AdGuard Home. Manage DNS rewrite records, filtering rules, and filter lists via AI agents.
📦 Installation
npm i -g @fcannizzaro/mcp-adguard-home
⚙️ Credentials
For the CLI, run:
adguard-cli login
This prompts for your AdGuard Home URL, username, and password, then saves them to ~/.config/mcp-adguard-home/config.json. Saved credentials are loaded automatically on start. If no saved credentials are available, the package falls back to these environment variables:
| Variable | Description |
|---|---|
ADGUARD_URL | Base URL of your AdGuard Home instance (e.g. http://192.168.1.1) |
ADGUARD_USERNAME | AdGuard Home username |
ADGUARD_PASSWORD | AdGuard Home password |
🚀 Configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"adguard-home": {
"command": "npx",
"args": ["-y", "@fcannizzaro/mcp-adguard-home"],
"env": {
"ADGUARD_URL": "http://192.168.1.1",
"ADGUARD_USERNAME": "admin",
"ADGUARD_PASSWORD": "your-password"
}
}
}
}
Cursor
Edit .cursor/mcp.json in your project root (or ~/.cursor/mcp.json globally):
{
"mcpServers": {
"adguard-home": {
"command": "npx",
"args": ["-y", "@fcannizzaro/mcp-adguard-home"],
"env": {
"ADGUARD_URL": "http://192.168.1.1",
"ADGUARD_USERNAME": "admin",
"ADGUARD_PASSWORD": "your-password"
}
}
}
}
VS Code
Edit .vscode/mcp.json in your project root:
{
"servers": {
"adguard-home": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@fcannizzaro/mcp-adguard-home"],
"env": {
"ADGUARD_URL": "http://192.168.1.1",
"ADGUARD_USERNAME": "admin",
"ADGUARD_PASSWORD": "your-password"
}
}
}
}
Windsurf
Edit ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"adguard-home": {
"command": "npx",
"args": ["-y", "@fcannizzaro/mcp-adguard-home"],
"env": {
"ADGUARD_URL": "http://192.168.1.1",
"ADGUARD_USERNAME": "admin",
"ADGUARD_PASSWORD": "your-password"
}
}
}
}
Claude Code CLI
claude mcp add adguard-home \
-e ADGUARD_URL=http://192.168.1.1 \
-e ADGUARD_USERNAME=admin \
-e ADGUARD_PASSWORD=your-password \
-- npx -y @fcannizzaro/mcp-adguard-home
🧰 Available Tools
The package also installs a regular CLI for agents or scripts that do not use MCP:
adguard-cli login
adguard-cli list_rewrite_dns_records
adguard-cli add_rewrite_dns_record --domain example.test --ip 192.168.1.10
adguard-cli manage_dns_filtering_rules --domains ads.example --allowed false
CLI arguments can also be passed as a JSON object:
adguard-cli add_rewrite_dns_record '{"domain":"example.test","ip":"192.168.1.10"}'
DNS Rewrite Records
| Tool | Description | Parameters |
|---|---|---|
list_rewrite_dns_records | List all DNS rewrite records | — |
add_rewrite_dns_record | Add a DNS rewrite record | domain: string, ip: string |
remove_rewrite_dns_record | Remove a DNS rewrite record | domain: string, ip: string |
DNS Filtering Rules
| Tool | Description | Parameters |
|---|---|---|
list_dns_filtering_rules | List all custom DNS filtering rules | — |
manage_dns_filtering_rules | Block or allow domains | domains: string[], allowed: boolean |
remove_rdns_filtering_rules | Remove custom filtering rules | domains: string[] |
Filter Lists
| Tool | Description | Parameters |
|---|---|---|
list_filter_lists | List all configured filter lists | — |
toggle_filter_list | Enable or disable a filter list | id: number, enabled: boolean |
refresh_filter_lists | Force update of all filter lists | — |
📄 License
Licensed under the MIT License.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.