MCP Hub › Developer Tools › Pi-hole MCP Server

Pi-hole MCP Server MCP server

by hexamatic · io.github.hexamatic/pihole-mcp

Manage Pi-hole v6: DNS blocking, domains, clients, query analysis, DHCP, and multi-instance sync.

🛠 Developer ToolsDockerv0.10.0
Open in MCP HubGitHub repository ↗Website ↗

How to install Pi-hole MCP Server

Docker

claude mcp add -e PIHOLE_URL=<your-pihole-url> -e PIHOLE_PASSWORD=<your-pihole-password> pihole-mcp -- docker run -i --rm ghcr.io/hexamatic/pihole-mcp:0.10.0

Or add it to your MCP config (Claude Desktop, Cursor, VS Code):

{
  "mcpServers": {
    "pihole-mcp": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/hexamatic/pihole-mcp:0.10.0"
      ],
      "env": {
        "PIHOLE_URL": "<your-pihole-url>",
        "PIHOLE_PASSWORD": "<your-pihole-password>"
      }
    }
  }
}

Environment variables:
PIHOLE_URL (required) – Base URL of your Pi-hole web interface. For multiple Pi-holes use PIHOLE_1_URL, PIHOLE_2_URL, ... instead.
PIHOLE_PASSWORD (required) – Pi-hole admin password, or an application password (recommended — bypasses TOTP 2FA)
TZ – IANA timezone for rendered timestamps, e.g. Australia/Adelaide. Defaults to UTC in the container.
PIHOLE_READ_ONLY – Expose only inspection tools. Every tool that can change Pi-hole is hidden and rejected if called.
PIHOLE_TLS_SKIP_VERIFY – Set to true only for a Pi-hole serving a self-signed HTTPS certificate. A trusted certificate is the better fix.
PIHOLE_REQUEST_TIMEOUT – HTTP request timeout as a Go duration, e.g. 30s or 1m
PIHOLE_MAX_RETRIES – Retries after a transient Pi-hole API failure; 0 disables retrying
PIHOLE_RETRY_MAX_DELAY – Upper bound on a single exponential-backoff wait, as a Go duration

Replace placeholders in <angle brackets> with your own values. Review what a server can access before you enable it.

Details

Version
0.10.0
Published
2026-11-02
Updated
2026-11-02
Namespace
io.github.hexamatic
Source
hexamatic/pihole-mcp

Similar developer tools servers