Adguard Home Agent
CLI or API | MCP
Version: 0.17.3
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
stdio Transport (Recommended for local IDEs e.g., Cursor, Claude Desktop)
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"
}
}
}
}
Streamable-HTTP Transport (Recommended for production deployments)
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, localembedded(mcp_policies.json), or centralizedremotemodes. - 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
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.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| adguard_home_agent-0.17.3.tar.gz | 31.3 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| adguard_home_agent-0.17.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 67.6 kB
Release files / adguard_home_agent-0.17.3.tar.gz
| Download URL | adguard_home_agent-0.17.3.tar.gz |
|---|---|
| Size | 31.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3b20b67196821705d9dd58c60a8949f1e8d76c4bfb1d679c6961f3c5310e73b5
|
|
BLAKE2b-256 checksum How to use checksums |
938abd19825d9e1e2435d21576ca52ae4584dea743ab7622efa3c3a713417586
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.4
|
Release files / adguard_home_agent-0.17.3-py3-none-any.whl
| Download URL | adguard_home_agent-0.17.3-py3-none-any.whl |
|---|---|
| Size | 36.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6195de7643a616de1f19acf196864b5cddcc247e8e3d519f2d768f86780f7c77
|
|
BLAKE2b-256 checksum How to use checksums |
c135a70001b363d05b7ea3cc52f17032322c6ee53fc2a592012de6c38334cf19
|
| 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.3
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.