Manage Pi-hole v6: DNS blocking, domains, clients, query analysis, DHCP, and multi-instance sync.
Connect Runs on your machine
claude mcp add pihole-mcp -e PIHOLE_URL=<PIHOLE_URL> -e PIHOLE_PASSWORD=<PIHOLE_PASSWORD> -e TZ=<TZ> -e PIHOLE_READ_ONLY=<PIHOLE_READ_ONLY> -e PIHOLE_TLS_SKIP_VERIFY=<PIHOLE_TLS_SKIP_VERIFY> -e PIHOLE_REQUEST_TIMEOUT=<PIHOLE_REQUEST_TIMEOUT> -e PIHOLE_MAX_RETRIES=<PIHOLE_MAX_RETRIES> -e PIHOLE_RETRY_MAX_DELAY=<PIHOLE_RETRY_MAX_DELAY> -- docker run -i --rm ghcr.io/hexamatic/pihole-mcp:0.10.0
{
"mcpServers": {
"pihole-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/hexamatic/pihole-mcp:0.10.0"
],
"env": {
"PIHOLE_URL": "<PIHOLE_URL>",
"PIHOLE_PASSWORD": "<PIHOLE_PASSWORD>",
"TZ": "<TZ>",
"PIHOLE_READ_ONLY": "<PIHOLE_READ_ONLY>",
"PIHOLE_TLS_SKIP_VERIFY": "<PIHOLE_TLS_SKIP_VERIFY>",
"PIHOLE_REQUEST_TIMEOUT": "<PIHOLE_REQUEST_TIMEOUT>",
"PIHOLE_MAX_RETRIES": "<PIHOLE_MAX_RETRIES>",
"PIHOLE_RETRY_MAX_DELAY": "<PIHOLE_RETRY_MAX_DELAY>"
}
}
}
}
{
"mcpServers": {
"pihole-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/hexamatic/pihole-mcp:0.10.0"
],
"env": {
"PIHOLE_URL": "<PIHOLE_URL>",
"PIHOLE_PASSWORD": "<PIHOLE_PASSWORD>",
"TZ": "<TZ>",
"PIHOLE_READ_ONLY": "<PIHOLE_READ_ONLY>",
"PIHOLE_TLS_SKIP_VERIFY": "<PIHOLE_TLS_SKIP_VERIFY>",
"PIHOLE_REQUEST_TIMEOUT": "<PIHOLE_REQUEST_TIMEOUT>",
"PIHOLE_MAX_RETRIES": "<PIHOLE_MAX_RETRIES>",
"PIHOLE_RETRY_MAX_DELAY": "<PIHOLE_RETRY_MAX_DELAY>"
}
}
}
}
{
"servers": {
"pihole-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/hexamatic/pihole-mcp:0.10.0"
],
"env": {
"PIHOLE_URL": "<PIHOLE_URL>",
"PIHOLE_PASSWORD": "<PIHOLE_PASSWORD>",
"TZ": "<TZ>",
"PIHOLE_READ_ONLY": "<PIHOLE_READ_ONLY>",
"PIHOLE_TLS_SKIP_VERIFY": "<PIHOLE_TLS_SKIP_VERIFY>",
"PIHOLE_REQUEST_TIMEOUT": "<PIHOLE_REQUEST_TIMEOUT>",
"PIHOLE_MAX_RETRIES": "<PIHOLE_MAX_RETRIES>",
"PIHOLE_RETRY_MAX_DELAY": "<PIHOLE_RETRY_MAX_DELAY>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
PIHOLE_URLRequired | Base URL of your Pi-hole web interface. For multiple Pi-holes use PIHOLE_1_URL, PIHOLE_2_URL, ... instead. |
PIHOLE_PASSWORDRequired, secret | Pi-hole admin password, or an application password (recommended — bypasses TOTP 2FA) |
TZOptional | IANA timezone for rendered timestamps, e.g. Australia/Adelaide. Defaults to UTC in the container. |
PIHOLE_READ_ONLYOptional | Expose only inspection tools. Every tool that can change Pi-hole is hidden and rejected if called. |
PIHOLE_TLS_SKIP_VERIFYOptional | Set to true only for a Pi-hole serving a self-signed HTTPS certificate. A trusted certificate is the better fix. |
PIHOLE_REQUEST_TIMEOUTOptional | HTTP request timeout as a Go duration, e.g. 30s or 1m |
PIHOLE_MAX_RETRIESOptional | Retries after a transient Pi-hole API failure; 0 disables retrying |
PIHOLE_RETRY_MAX_DELAYOptional | Upper bound on a single exponential-backoff wait, as a Go duration |
Details
| Package | ghcr.io/hexamatic/pihole-mcp:0.10.0 (OCI, stdio) |
| First published | 2 Nov 2026 |
| Last updated | 2 Nov 2026 |
| Registry name | io.github.hexamatic/pihole-mcp |
More other servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
