# check_pihole

Check Pi-hole DNS ad blocker status via the admin API. Returns enabled, blocking status, DNS queries today, and ads blocked. api_token: Pi-hole API token from Settings > API/Web interface (optional — some stats available without auth). Default port 80.

Agent View of the PolicyLayer registry record for `check_pihole`. HTML page: https://policylayer.com/tools/aaronckj-mcp-nettools/check-pihole

## Facts

- Tool: `check_pihole`
- Server: Mcp Nettools (`aaronckj/mcp-nettools`) — https://policylayer.com/tools/aaronckj-mcp-nettools.md
- Homepage: https://github.com/aaronckj/mcp-nettools
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Allowed

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "check_pihole",
    "arguments": {}
  }
}
```

## Why check_pihole is rated Low

This tool queries the status and statistics of a Pi-hole DNS ad blocker via its admin API. It retrieves read-only data (enabled/blocking status, query counts, blocked ad counts) without creating, modifying, deleting, or executing operations. The optional API token indicates authentication for information access, not authorization for mutations or side effects.

From the tool's own definition: "Tool description states it 'Returns enabled, blocking status, DNS queries today, and ads blocked' — all query/retrieval operations with 'api_token' described as optional. No modification, deletion, or execution of external commands."

Risk signals: Admin/system-level operation

## Use case

AI agents call check_pihole to retrieve information from Mcp Nettools without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Mcp Nettools:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "check_pihole": {}
  }
}
```

## Other tools on Mcp Nettools (234)

- `http_delete` — Destructive — https://policylayer.com/tools/aaronckj-mcp-nettools/http-delete.md
- `check_mqtt` — Execute — https://policylayer.com/tools/aaronckj-mcp-nettools/check-mqtt.md
- `check_rdp` — Execute — https://policylayer.com/tools/aaronckj-mcp-nettools/check-rdp.md
- `http_post` — Execute — https://policylayer.com/tools/aaronckj-mcp-nettools/http-post.md
- `ping` — Execute — https://policylayer.com/tools/aaronckj-mcp-nettools/ping.md
- `port_scan` — Execute — https://policylayer.com/tools/aaronckj-mcp-nettools/port-scan.md
- `speedtest` — Execute — https://policylayer.com/tools/aaronckj-mcp-nettools/speedtest.md
- `traceroute` — Execute — https://policylayer.com/tools/aaronckj-mcp-nettools/traceroute.md
- `wake_on_lan` — Execute — https://policylayer.com/tools/aaronckj-mcp-nettools/wake-on-lan.md
- `arp_table` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/arp-table.md
- `bgp_lookup` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/bgp-lookup.md
- `cert_check` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/cert-check.md
- `cert_check_bulk` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/cert-check-bulk.md
- `check_actual_budget` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-actual-budget.md
- `check_adguard` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-adguard.md
- `check_alertmanager` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-alertmanager.md
- `check_anythingllm` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-anythingllm.md
- `check_appwrite` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-appwrite.md
- `check_archivebox` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-archivebox.md
- `check_audiobookshelf` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-audiobookshelf.md
- `check_authelia` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-authelia.md
- `check_authentik` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-authentik.md
- `check_baikal` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-baikal.md
- `check_bazarr` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-bazarr.md
- `check_beszel` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-beszel.md
- `check_bitwarden` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-bitwarden.md
- `check_bookstack` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-bookstack.md
- `check_calibre_web` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-calibre-web.md
- `check_cassandra` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-cassandra.md
- `check_changedetection` — Read — https://policylayer.com/tools/aaronckj-mcp-nettools/check-changedetection.md
- …and 204 more: https://policylayer.com/tools/aaronckj-mcp-nettools.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=aaronckj-mcp-nettools · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/aaronckj-mcp-nettools
