Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
MCP server exposing the full AdGuard Home REST API as tools for AI assistants $1 $1 $1 $1 MCP AdGuard Home MCP server for $1. Manage DNS filtering, clients, DHCP, rewrites, and more through natural language in Cursor, Claude Code, and Claude Desktop. **Disclaimer:** Most of this code has been AI-generated and has not been fully tested yet. I created this project for my own needs and plan to continue improving its quality, but it may be buggy in the early stages. If you find a bug, feel free to Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Freshness
Last checked 2/25/2026
Best For
@samik081/mcp-adguard-home is best for mcp, adguard, adguard-home workflows where MCP compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB MCP, runtime-metrics, public facts pack
MCP server exposing the full AdGuard Home REST API as tools for AI assistants $1 $1 $1 $1 MCP AdGuard Home MCP server for $1. Manage DNS filtering, clients, DHCP, rewrites, and more through natural language in Cursor, Claude Code, and Claude Desktop. **Disclaimer:** Most of this code has been AI-generated and has not been fully tested yet. I created this project for my own needs and plan to continue improving its quality, but it may be buggy in the early stages. If you find a bug, feel free to
Public facts
4
Change events
1
Artifacts
0
Freshness
Feb 25, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 25, 2026
Vendor
Samik081
Artifacts
0
Benchmarks
0
Last release
0.3.1
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 2/25/2026.
Setup snapshot
git clone https://github.com/Samik081/mcp-adguard-home.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Samik081
Protocol compatibility
MCP
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
bash
ADGUARD_URL="http://your-adguard-ip:3000" \ ADGUARD_USERNAME="your-username" \ ADGUARD_PASSWORD="your-password" \ npx -y @samik081/mcp-adguard-home
bash
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
bash
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
bash
# 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
{
"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"
}
}
}
}json
{
"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"
]
}
}
}Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
MCP server exposing the full AdGuard Home REST API as tools for AI assistants $1 $1 $1 $1 MCP AdGuard Home MCP server for $1. Manage DNS filtering, clients, DHCP, rewrites, and more through natural language in Cursor, Claude Code, and Claude Desktop. **Disclaimer:** Most of this code has been AI-generated and has not been fully tested yet. I created this project for my own needs and plan to continue improving its quality, but it may be buggy in the early stages. If you find a bug, feel free to
MCP server for AdGuard Home. Manage DNS filtering, clients, DHCP, rewrites, and more through natural language in Cursor, Claude Code, and Claude Desktop.
Disclaimer: Most of this code has been AI-generated and has not been fully tested yet. I created this project for my own needs and plan to continue improving its quality, but it may be buggy in the early stages. If you find a bug, feel free to open an issue -- I'll try to work on it in my spare time.
ADGUARD_ACCESS_TIER=read-only for safe monitoringADGUARD_CATEGORIES to expose only the tools you needfetch (Node.js 18+)linux/amd64 and linux/arm64 on GHCRMCP_TRANSPORT=http) using the Streamable HTTP protocolRun 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.
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.
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"
}
}
}
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_CONFIRM_DESTRUCTIVE | No | false | Require confirm: true parameter for destructive operations |
| 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) |
global, dns, querylog, stats, filtering, safebrowsing, parental, safesearch, clients, dhcp, rewrites, tls, blocked_services, access, install, mobile_config
| Tool | Description |
|------|-------------|
| global_get_status | Retrieve server status including version, DNS addresses, protection state, and ports |
| global_get_profile | Retrieve user profile (name, language, theme) |
| global_check_version | Check for AdGuard Home updates and compare with current version |
| global_set_protection | Enable or disable DNS protection globally, with optional duration for temporary disable |
| global_update_profile | Update user profile settings (name, language, theme) |
| global_begin_update | Initiate an AdGuard Home software update |
| Tool | Description |
|------|-------------|
| dns_get_info | Retrieve full DNS configuration including upstreams, cache settings, blocking mode, and DNSSEC |
| dns_test_upstream | Test upstream DNS server configuration to verify servers are reachable |
| dns_set_config | Update DNS server configuration (19 optional fields for partial update) |
| dns_clear_cache | Clear the DNS resolver cache |
| Tool | Description |
|------|-------------|
| querylog_get | Search DNS query log with optional filtering by response status, search term, and pagination |
| querylog_get_config | Retrieve query log configuration settings |
| querylog_set_config | Update query log configuration (enabled, interval, anonymization) |
| querylog_clear | Clear the entire DNS query log |
| Tool | Description |
|------|-------------|
| stats_get | Retrieve DNS statistics including top domains, blocked counts, and client activity |
| stats_get_config | Retrieve statistics configuration settings |
| stats_reset | Reset all DNS statistics |
| stats_set_config | Update statistics configuration (enabled, interval, ignored domains) |
| Tool | Description |
|------|-------------|
| filtering_get_status | Retrieve filtering configuration including blocklists, allowlists, and user rules |
| filtering_check_host | Test whether a hostname would be blocked by current filtering rules |
| filtering_set_config | Update global filtering configuration (enabled state and update interval) |
| filtering_add_url | Add a new filter URL (blocklist or allowlist) |
| filtering_remove_url | Remove a filter URL from blocklist or allowlist |
| filtering_set_url | Update an existing filter URL (rename, change URL, or enable/disable) |
| filtering_refresh | Force refresh of filter lists to fetch latest updates |
| filtering_set_rules | Set custom filtering rules (replaces all existing custom rules) |
| Tool | Description |
|------|-------------|
| safebrowsing_get_status | Retrieve safe browsing (malware/phishing protection) status |
| safebrowsing_set | Enable or disable safe browsing protection |
| Tool | Description |
|------|-------------|
| parental_get_status | Retrieve parental filtering status |
| parental_set | Enable or disable parental filtering (content restrictions) |
| Tool | Description |
|------|-------------|
| safesearch_get_status | Retrieve safe search settings showing per-engine enforcement status |
| safesearch_set_settings | Update safe search settings with per-engine configuration (Bing, DuckDuckGo, Google, Pixabay, Yandex, YouTube) |
| Tool | Description |
|------|-------------|
| clients_get | Retrieve all configured and auto-detected clients with their settings |
| clients_search | Search for specific clients by their IDs (IP, MAC, CIDR, or client ID) |
| clients_add | Add a new persistent client with per-client settings |
| clients_update | Update an existing persistent client by name |
| clients_delete | Delete a persistent client by name |
| Tool | Description |
|------|-------------|
| dhcp_get_status | Retrieve DHCP server configuration, static leases, and active leases |
| dhcp_get_interfaces | Retrieve available network interfaces for DHCP server binding |
| dhcp_find_active | Scan for competing DHCP servers on a network interface |
| dhcp_set_config | Update DHCP server configuration (enabled state, interface, IPv4/IPv6 settings) |
| dhcp_add_static_lease | Add a static DHCP lease mapping a MAC address to an IP |
| dhcp_remove_static_lease | Remove a static DHCP lease |
| dhcp_update_static_lease | Update a static DHCP lease (remove + add pattern) |
| dhcp_reset | Reset DHCP configuration to defaults |
| dhcp_reset_leases | Clear all DHCP leases |
| Tool | Description |
|------|-------------|
| rewrites_list | Retrieve all configured DNS rewrite rules |
| rewrites_get_settings | Retrieve DNS rewrite module enabled/disabled state |
| rewrites_add | Add a new DNS rewrite rule |
| rewrites_update | Update a DNS rewrite rule (remove + add pattern) |
| rewrites_delete | Delete a DNS rewrite rule |
| rewrites_set_settings | Enable or disable the DNS rewrite module |
| Tool | Description |
|------|-------------|
| tls_get_status | Retrieve TLS configuration and certificate validation status |
| tls_validate | Validate TLS configuration without applying changes |
| tls_set_config | Update TLS configuration including certificates and HTTPS/DoH/DoT settings |
| Tool | Description |
|------|-------------|
| blocked_services_get_all | List all available services that can be blocked, organized by group |
| blocked_services_get | Retrieve currently blocked services list and schedule |
| blocked_services_update | Update the list of blocked services and optional schedule |
| Tool | Description |
|------|-------------|
| access_get_list | Retrieve access control lists: allowed clients, disallowed clients, and blocked hosts |
| access_set_list | Set access control lists for allowed clients, disallowed clients, and blocked hosts |
| Tool | Description |
|------|-------------|
| install_get_addresses | Retrieve network interface details and ports for initial setup |
| install_check_config | Validate install configuration without applying (checks web/DNS binding, credentials) |
| install_apply_config | Apply initial setup configuration (web/DNS binding and admin credentials) |
| Tool | Description |
|------|-------------|
| mobile_config_get_doh | Generate Apple .mobileconfig profile for DNS-over-HTTPS |
| mobile_config_get_dot | Generate Apple .mobileconfig profile for DNS-over-TLS |
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.
global_get_status to show version, addresses, and protection state.rewrites_list to display all configured DNS rewrites.rewrites_add to create a new rewrite rule.ADGUARD_URL is reachable from the machine running the MCP serverhttp://192.168.1.1:3000)ADGUARD_USERNAME and ADGUARD_PASSWORD are correctADGUARD_ACCESS_TIER setting -- read-only mode only exposes read toolsADGUARD_CATEGORIES -- only tools in listed categories are registered# 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
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-17T04:01:02.978Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "adguard",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "adguard-home",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "dns",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "ai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "claude",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cli",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|unknown|profile capability:mcp|supported|profile capability:adguard|supported|profile capability:adguard-home|supported|profile capability:dns|supported|profile capability:ai|supported|profile capability:claude|supported|profile capability:cli|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Samik081",
"href": "https://github.com/Samik081/mcp-adguard-home#readme",
"sourceUrl": "https://github.com/Samik081/mcp-adguard-home#readme",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-25T03:09:40.665Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-25T03:09:40.665Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-samik081-mcp-adguard-home/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to @samik081/mcp-adguard-home and adjacent AI workflows.