Skip to main content

Adguard Home Agent

CLI or API | MCP

PyPI - Version MCP Server PyPI - Downloads GitHub Repo stars GitHub forks GitHub contributors PyPI - License GitHub GitHub last commit (by committer) GitHub pull requests GitHub closed pull requests GitHub issues GitHub top language GitHub language count GitHub repo size GitHub repo file count (file type) PyPI - Wheel PyPI - Implementation

Version: 0.17.0


Overview

Adguard Home Agent is a production-grade Agent and Model Context Protocol (MCP) server designed to interface directly with AdGuard Home MCP Server for Agentic AI!.


Key Features

  • Consolidated Action-Routed MCP Tools: Minimizes token overhead and eliminates tool bloat in LLM contexts by grouping methods into optimized, togglable tool modules.
  • Enterprise-Grade Security: Comprehensive support for Eunomia policies, OIDC token delegation, and granular execution context tracking.
  • Integrated Graph Agent: Built-in Pydantic AI agent supporting the Agent Control Protocol (ACP) and standard Web interfaces (AG-UI).
  • Native Telemetry & Tracing: Out-of-the-box OpenTelemetry exports and native Langfuse tracing.

CLI or API

This agent wraps the AdGuard Home MCP Server for Agentic AI! API. You can interact with it programmatically or via its integrated execution entrypoints.

Detailed instructions on how to use the underlying API wrappers, extended schema bindings, and developer SDK references are maintained in docs/index.md.


MCP

This server utilizes dynamic Action-Routed tools to optimize token overhead and maximize IDE compatibility.

Available MCP Tools

Tool Module Toggle Env Var Enabled by Default Description & Nested Methods
System SYSTEMTOOL True Manage adguard home system operations. Action-routed methods: get_version, set_protection, clear_cache.
Access ACCESSTOOL True Manage adguard home access operations. Action-routed methods: get_access_list, set_access_list.
Blocked Services BLOCKED_SERVICESTOOL True Manage adguard home blocked services operations. Action-routed methods: get_blocked_services_list, get_all_blocked_services, update_blocked_services.
Filtering FILTERINGTOOL True Manage adguard home filtering operations. Action-routed methods: set_filtering_rules, check_host_filtering, set_filter_url_params, get_filtering_status, set_filtering_config, add_filter_url, remove_filter_url, refresh_filters.
Clients CLIENTSTOOL True Manage adguard home clients operations. Action-routed methods: list_clients, search_clients, add_client, update_client, delete_client.
Profile PROFILETOOL True Manage adguard home profile operations. Action-routed methods: get_profile, update_profile.
Dhcp DHCPTOOL True Manage adguard home dhcp operations. Action-routed methods: get_dhcp_status, get_dhcp_interfaces, set_dhcp_config, find_active_dhcp, add_dhcp_static_lease, remove_dhcp_static_lease, update_dhcp_static_lease, reset_dhcp, reset_dhcp_leases.
Settings SETTINGSTOOL True Manage adguard home settings operations. Action-routed methods: get_parental_status, enable_parental_control, disable_parental_control, get_safebrowsing_status, enable_safebrowsing, disable_safebrowsing, get_safesearch_status.
Query Log QUERY_LOGTOOL True Manage adguard home query log operations. Action-routed methods: get_query_log, clear_query_log.
Rewrites REWRITESTOOL True Manage adguard home rewrites operations. Action-routed methods: list_rewrites, add_rewrite, delete_rewrite, update_rewrite, get_rewrite_settings, update_rewrite_settings.
Tls TLSTOOL True Manage adguard home tls operations. Action-routed methods: get_tls_status, configure_tls, validate_tls.
Mobile MOBILETOOL True Manage adguard home mobile operations. Action-routed methods: get_doh_mobile_config, get_dot_mobile_config.
Stats STATSTOOL True Manage adguard home stats operations. Action-routed methods: get_stats, reset_stats, get_stats_config, set_stats_config.
Dns DNSTOOL True Manage adguard home dns operations. Action-routed methods: get_dns_info, set_dns_config, test_upstream_dns.

Detailed tool schemas, parameter shapes, and validation constraints are preserved in docs/mcp.md.

MCP Configuration Examples

Configure your IDE's mcp.json to launch the MCP server via uvx:

{
  "mcpServers": {
    "adguard-home-agent": {
      "command": "uvx",
      "args": [
        "--from",
        "adguard-home-agent",
        "adguard-mcp"
      ],
      "env": {
        "ADGUARD_HOST": "your_adguard_host_here",
        "ADGUARD_API_KEY": "your_adguard_api_key_here",
        "ADGUARD_DEFAULT_ADMIN_USER": "your_adguard_default_admin_user_here",
        "ADGUARD_DEFAULT_ADMIN_PASS": "your_adguard_default_admin_pass_here",
        "LLM_ROUTER_MODEL": "your_llm_router_model_here",
        "LLM_AGENT_MODEL": "your_llm_agent_model_here",
        "GRAPH_ROUTER_TIMEOUT": "your_graph_router_timeout_here",
        "GRAPH_VERIFIER_TIMEOUT": "your_graph_verifier_timeout_here"
      }
    }
  }
}

Configure your client's mcp.json to launch the Streamable-HTTP server via uvx with explicit host and port definition:

{
  "mcpServers": {
    "adguard-home-agent": {
      "command": "uvx",
      "args": [
        "--from",
        "adguard-home-agent",
        "adguard-mcp"
      ],
      "env": {
        "TRANSPORT": "streamable-http",
        "HOST": "0.0.0.0",
        "PORT": "8000",
        "ADGUARD_HOST": "your_adguard_host_here",
        "ADGUARD_API_KEY": "your_adguard_api_key_here",
        "ADGUARD_DEFAULT_ADMIN_USER": "your_adguard_default_admin_user_here",
        "ADGUARD_DEFAULT_ADMIN_PASS": "your_adguard_default_admin_pass_here",
        "LLM_ROUTER_MODEL": "your_llm_router_model_here",
        "LLM_AGENT_MODEL": "your_llm_agent_model_here",
        "GRAPH_ROUTER_TIMEOUT": "your_graph_router_timeout_here",
        "GRAPH_VERIFIER_TIMEOUT": "your_graph_verifier_timeout_here"
      }
    }
  }
}

Alternatively, connect to a pre-deployed remote or local Streamable-HTTP instance:

{
  "mcpServers": {
    "adguard-home-agent": {
      "url": "http://localhost:8000/adguard-home-agent/mcp"
    }
  }
}

Deploying the Streamable-HTTP server via Docker:

docker run -d \
  --name adguard-home-agent-mcp \
  -p 8000:8000 \
  -e TRANSPORT=streamable-http \
  -e PORT=8000 \
  -e ADGUARD_HOST="your_value" \
  -e ADGUARD_API_KEY="your_value" \
  -e ADGUARD_DEFAULT_ADMIN_USER="your_value" \
  -e ADGUARD_DEFAULT_ADMIN_PASS="your_value" \
  -e LLM_ROUTER_MODEL="your_value" \
  -e LLM_AGENT_MODEL="your_value" \
  -e GRAPH_ROUTER_TIMEOUT="your_value" \
  -e GRAPH_VERIFIER_TIMEOUT="your_value" \
  knucklessg1/adguard-home-agent:latest

Security & Governance

Built directly upon the enterprise-ready agent-utilities core, standard security parameters are fully supported:

Access Control & Policy Enforcement

  • Eunomia Policies: Fine-grained, policy-driven tool authorization. Supports none, local embedded (mcp_policies.json), or centralized remote modes.
  • OIDC Token Delegation: Compliant with RFC 8693 token exchange for flowing authenticating user credentials from Web UI / ACP → Agent → MCP.
  • Scoped Credentials: Execution context runs restricted to the specific caller identity.

Runtime Security Grid

Feature Functionality Enablement
Tool Guard Sensitivity inspection with human-in-the-loop validation Enabled by default
Prompt Injection Defense Input scanning, repetition monitoring, and recursive loop blocks Enabled by default
Context Safety Guard Stuck-loop detectors and contextual overflow preemptive alerts Enabled by default

Installation

Install the Python package locally:

# Using uv (highly recommended)
uv pip install adguard-home-agent[all]

# Using standard pip
python -m pip install adguard-home-agent[all]

Repository Owners

GitHub followers GitHub User's stars


Contribute

Contributions are welcome! Please ensure code quality by executing local checks before submitting pull requests:

  • Format code using ruff format .
  • Lint code using ruff check .
  • Validate type-safety with mypy .
  • Execute test suites using pytest

Metadata

Release files for adguard-home-agent 0.17.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for adguard-home-agent 0.17.0
File Interpreter ABI Platform
adguard_home_agent-0.17.0-py3-none-any.whl Python 3 none any Details

Release files / adguard_home_agent-0.17.0-py3-none-any.whl

Download URL adguard_home_agent-0.17.0-py3-none-any.whl
Size 33.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
da81c58a1921f18915a14541662c7fc1aef3de1592a13ae72b95baef7f8830fc
BLAKE2b-256 checksum
How to use checksums
af92b72fb3ba59b66d923db1992285e8c61578a8140a6b4f0e41eeb54520044a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Security for adguard-home-agent 0.17.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.17.0 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page