v0.2.0
Highlights
The repository moved from lloydmcl/pihole-mcp to hexamatic/pihole-mcp — existing GitHub URLs redirect, stars, watchers, issues, and forks remain in place; new container images publish to ghcr.io/hexamatic/pihole-mcp. This release also lands the v0.2.0 feature set: twelve new tools (68 total, ~95% Pi-hole v6 REST API coverage), three new MCP prompts (nine total), structured output schemas on key tools per the MCP 2025-11-25 specification, and sixteen new unit-test files raising coverage across all 17 tool categories.
Added
- Long-term database statistics — four new tools surface historical analysis over the FTL database with mandatory
from/untilwindows:pihole_stats_database_top_domainspihole_stats_database_top_clientspihole_stats_database_upstreamspihole_stats_database_query_types
- Granular configuration — three new tools support dotted-path access into Pi-hole's hierarchical config and deferred FTL restart for batch operations:
pihole_config_get_valuepihole_config_add_valuepihole_config_remove_value
- System info — three new tools expose FTL engine internals, live DNS/DHCP metrics, and hardware temperature sensors (
pihole_info_ftl,pihole_info_metrics,pihole_info_sensors). - Session management — two new tools for security auditing:
pihole_auth_sessions(list active sessions) andpihole_auth_revoke_session(terminate a session by ID). - MCP prompts — three new prompts:
security_audit— reviews active sessions, authentication configuration, and diagnostic messages for unauthorised access patterns.weekly_trends— week-over-week DNS statistics comparison via the new long-term database tools.upstream_health— DNS resolver performance, cache efficiency, and DNSSEC validation analysis.
- Structured output schemas —
pihole_dns_get_blocking,pihole_stats_summary, andpihole_domains_listnow return structured output per MCP 2025-11-25, allowing downstream agents to parse results programmatically without LLM interpretation of formatted text.
Changed
- Repository transferred from
lloydmcl/pihole-mcptohexamatic/pihole-mcp. Existing GitHub URLs redirect; the Go module path, container image references, badge URLs, and goreleaser configuration are rewritten to the new namespace acrossREADME.md,CONTRIBUTING.md,SECURITY.md, the issue templates, and every Go source file. - Container images now publish to
ghcr.io/hexamatic/pihole-mcp(multi-arch: linux/amd64, linux/arm64). - Project branding — replaced the Pi-hole Vortex logo with custom branding to avoid trademark conflicts.
- Shared helpers extracted across tool handlers (
toolError,getCountCapped) centralise error formatting and count clamping that were previously duplicated.
Fixed
justfilePATH composition —mise bin-pathsemits one path per line; the previous concatenation truncatedPATHat the first entry, leavinggoreleaserand other mise-managed tools unreachable fromjust release-dry. Now collapses newlines into the colon separator before prepending.
Quality
- Sixteen new unit-test files raise tool-handler coverage across all 17 tool categories, including error paths and parameter validation.
- The E2E suite is extended to cover the twelve new tools and a config add/remove round-trip against a live Pi-hole.
Migration Notes
- Container image path — pull from
ghcr.io/hexamatic/pihole-mcp:0.2.0(or:latest). The previousghcr.io/lloydmcl/pihole-mcppath is no longer published; existing images at the old path remain accessible but receive no updates. - Go module path —
go install github.com/hexamatic/pihole-mcp/cmd/pihole-mcp@v0.2.0. Existing imports ofgithub.com/lloydmcl/pihole-mcpshould be updated; the GitHub redirect handles the source pull, but Go's module proxy may cache under the new path.
Installation
Go install:
go install github.com/hexamatic/pihole-mcp/cmd/pihole-mcp@v0.2.0
Docker (multi-arch):
docker pull ghcr.io/hexamatic/pihole-mcp:0.2.0
Binary download: grab the archive for your platform from the release assets.
Requirements
- Pi-hole v6.6+ with the REST API enabled
- An admin password or application password
Configuration
| Variable | Required | Default | Description |
|---|---|---|---|
PIHOLE_URL |
Yes | — | Pi-hole base URL |
PIHOLE_PASSWORD |
Yes | — | Admin or application password |
PIHOLE_REQUEST_TIMEOUT |
No | 30s |
HTTP request timeout |
See the README for client-specific setup guides (Claude Desktop, Cursor, Windsurf, VS Code, Cline) and the OpenTelemetry section for opt-in tracing configuration.