MCP server for Pi-hole v6 — DNS blocking, query analysis, and multi-instance management for AI assistants
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add pi-hole --env PIHOLE_URL='<PIHOLE_URL>' --env PIHOLE_PASSWORD='<PIHOLE_PASSWORD>' -- docker run -i --rm -e PIHOLE_URL -e PIHOLE_PASSWORD ghcr.io/hexamatic/pihole-mcp:0.9.0~/.codex/config.toml
[mcp_servers.pi-hole]
command = "docker"
args = ["run", "-i", "--rm", "-e", "PIHOLE_URL", "-e", "PIHOLE_PASSWORD", "ghcr.io/hexamatic/pihole-mcp:0.9.0"]
env = { PIHOLE_URL = "<PIHOLE_URL>", PIHOLE_PASSWORD = "<PIHOLE_PASSWORD>" }
# codex mcp add pi-hole --env PIHOLE_URL='<PIHOLE_URL>' --env PIHOLE_PASSWORD='<PIHOLE_PASSWORD>' -- docker run -i --rm -e PIHOLE_URL -e PIHOLE_PASSWORD ghcr.io/hexamatic/pihole-mcp:0.9.0~/.cursor/mcp.json
{
"mcpServers": {
"pi-hole": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PIHOLE_URL",
"-e",
"PIHOLE_PASSWORD",
"ghcr.io/hexamatic/pihole-mcp:0.9.0"
],
"env": {
"PIHOLE_URL": "<PIHOLE_URL>",
"PIHOLE_PASSWORD": "<PIHOLE_PASSWORD>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"pi-hole": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PIHOLE_URL",
"-e",
"PIHOLE_PASSWORD",
"ghcr.io/hexamatic/pihole-mcp:0.9.0"
],
"env": {
"PIHOLE_URL": "<PIHOLE_URL>",
"PIHOLE_PASSWORD": "<PIHOLE_PASSWORD>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"pi-hole": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PIHOLE_URL",
"-e",
"PIHOLE_PASSWORD",
"ghcr.io/hexamatic/pihole-mcp:0.9.0"
],
"env": {
"PIHOLE_URL": "<PIHOLE_URL>",
"PIHOLE_PASSWORD": "<PIHOLE_PASSWORD>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"pi-hole": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PIHOLE_URL",
"-e",
"PIHOLE_PASSWORD",
"ghcr.io/hexamatic/pihole-mcp:0.9.0"
],
"env": {
"PIHOLE_URL": "<PIHOLE_URL>",
"PIHOLE_PASSWORD": "<PIHOLE_PASSWORD>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"pi-hole": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PIHOLE_URL",
"-e",
"PIHOLE_PASSWORD",
"ghcr.io/hexamatic/pihole-mcp:0.9.0"
],
"env": {
"PIHOLE_URL": "<PIHOLE_URL>",
"PIHOLE_PASSWORD": "<PIHOLE_PASSWORD>"
}
}
}
}Environment variables
PIHOLE_URLPIHOLE_PASSWORD
Replace the placeholders with your own credentials and keep them out of version control.