
Pi-hole MCP Server
Manage Pi-hole v6: DNS blocking, domains, clients, query analysis, DHCP, and multi-instance sync.
Connector by hexamatic · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/hexamatic-pihole-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 26, 2026.
- Tools
- 47 read · 11 write · 21 delete · 2 not yet classified
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Docker image
Tools by what they do 81
Read from the source code; the running server may list different tools.
Read 47 · Look things up without changing anything.
pihole_auth_sessionspihole_clients_listpihole_clients_suggestionspihole_config_getpihole_config_get_valuepihole_config_propertiespihole_dhcp_leasespihole_dns_get_blockingpihole_domains_listpihole_groups_listpihole_history_clientspihole_history_database
Show 35 more tools
pihole_history_database_clientspihole_history_graphpihole_info_clientpihole_info_databasepihole_info_ftlpihole_info_messagespihole_info_metricspihole_info_sensorspihole_info_systempihole_info_versionpihole_instance_diffpihole_lists_listpihole_local_cname_listpihole_local_dns_listpihole_network_devicespihole_network_gatewaypihole_network_infopihole_network_interfacespihole_network_routespihole_paddpihole_queries_searchpihole_queries_suggestionspihole_search_domainspihole_stats_databasepihole_stats_database_query_typespihole_stats_database_top_clientspihole_stats_database_top_domainspihole_stats_database_upstreamspihole_stats_query_typespihole_stats_recent_blockedpihole_stats_summarypihole_stats_top_clientspihole_stats_top_domainspihole_stats_upstreamspihole_teleporter_export
Write 11 · Create, change, send or run things.
pihole_action_gravity_updatepihole_clients_addpihole_clients_updatepihole_config_add_valuepihole_config_setpihole_domains_addpihole_domains_updatepihole_groups_addpihole_groups_updatepihole_local_cname_addpihole_local_dns_add
Delete 21 · Delete, drop, revoke or wipe things.
pihole_action_flush_logspihole_action_flush_networkpihole_action_restart_dnspihole_auth_revoke_sessionpihole_clients_batch_deletepihole_clients_deletepihole_config_remove_valuepihole_dhcp_delete_leasepihole_dns_set_blockingpihole_domains_batch_deletepihole_domains_deletepihole_groups_batch_delete
Show 9 more tools
pihole_groups_deletepihole_info_dismiss_messagepihole_instance_syncpihole_lists_batch_deletepihole_lists_deletepihole_local_cname_deletepihole_local_dns_deletepihole_network_delete_devicepihole_teleporter_import
Not yet classified 2 · We could not tell from the name and description.
pihole_lists_addpihole_lists_update
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
PIHOLE_PASSWORD
Other settings (environment variables or headers).
PIHOLE_MAX_RETRIESPIHOLE_READ_ONLYPIHOLE_REQUEST_TIMEOUTPIHOLE_RETRY_MAX_DELAYPIHOLE_TLS_SKIP_VERIFYPIHOLE_URLTZ
Network hosts it talks to 10
::1· found in codea.invalid· found in codealpha.invalid· found in codeb.invalid· found in codebeta.invalid· found in codeexample.invalid· found in codegithub.com· found in codepihole.invalid· found in codepihole.local· found in coderaw.githubusercontent.com· found in code
Files it touches
/sys/class/thermal/thermal_zone0/temp- Any path the agent passes to its tools
Tools (81)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
pihole_action_flush_logsFlush Query Logscan change or delete dataPermanently delete all DNS logs — purges last 24 hours from memory and database. Irreversible.
pihole_action_flush_networkFlush Network Tablecan change or delete dataPermanently delete all network device records and associated addresses. Devices will be re-discovered over time.
pihole_action_gravity_updateUpdate GravityRe-download all configured blocklists and rebuild the gravity database. Takes 30+ seconds. Run after adding or removing lists.
pihole_action_restart_dnsRestart DNScan change or delete dataRestart the FTL DNS resolver. Briefly interrupts DNS resolution for all clients on the network.
pihole_auth_revoke_sessionRevoke Sessioncan change or delete dataRevoke an active API session by ID. Cannot revoke the current session used by this server.
pihole_auth_sessionsList Sessionsread-onlyList active API sessions: remote address, user agent, and expiry. Useful for detecting unauthorised access.
pihole_clients_addAdd ClientAdd a client by IP, MAC, hostname, CIDR subnet, or interface name (prefixed with colon, e.g. :eth0).
pihole_clients_batch_deleteBatch Delete Clientscan change or delete dataRemove multiple configured clients at once. Each item needs the client identifier.
pihole_clients_deleteDelete Clientcan change or delete dataRemove a configured client. The device remains on the network but loses group-based blocking rules.
pihole_clients_listList Clientsread-onlyList configured clients with their group assignments, paged with limit/offset. Clients can be identified by IP, MAC, hostname, subnet, or interface.
pihole_clients_suggestionsSuggest Clientsread-onlyUnconfigured network clients seen by Pi-hole that don't have group assignments yet. Useful for discovering new devices.
pihole_clients_updateUpdate ClientUpdate a configured client's comment. Group assignments are managed through the group tools.
pihole_config_add_valueAdd Config Array ValueAdd a value to a configuration array such as dns.upstreams. For dns.hosts and dns.cnameRecords prefer pihole_local_dns_add and pihole_local_cname_add, which take structured arguments.
pihole_config_getGet Configurationread-onlyGet Pi-hole configuration as dotted key/value lines. Name a section (dns, webserver, dhcp) for a subset, or omit for everything. detail=minimal lists section names; detail=full returns raw JSON.
pihole_config_get_valueGet Config Valueread-onlyGet a specific configuration value by dotted path (e.g. dns.upstreams, webserver.port, dhcp.active).
Show 66 more tools
pihole_config_propertiesList Read-Only Config Keysread-onlyList Pi-hole config keys that are read-only — set via pihole.toml or env var, not modifiable through the API. Use after a pihole_config_set error to confirm whether a key is intentionally locked.
pihole_config_remove_valueRemove Config Array Valuecan change or delete dataRemove a value from a configuration array such as dns.upstreams. For dns.hosts and dns.cnameRecords prefer pihole_local_dns_delete and pihole_local_cname_delete, which take structured arguments.
pihole_config_setSet ConfigurationModify Pi-hole configuration. Provide nested JSON properties to change. Changes take effect immediately and can affect DNS behaviour system-wide.
pihole_dhcp_delete_leaseDelete DHCP Leasecan change or delete dataRemove an active DHCP lease by IP address. Only works when Pi-hole's DHCP server is enabled.
pihole_dhcp_leasesList DHCP Leasesread-onlyActive DHCP leases: IP, hostname, MAC address, and expiry, paged with limit/offset. Empty if Pi-hole's DHCP server is disabled.
pihole_dns_get_blockingGet Blocking Statusread-onlyGet the current DNS blocking status and any active timer for temporary blocking changes.
pihole_dns_set_blockingSet Blockingcan change or delete dataEnable or disable DNS blocking. Set a timer (seconds) to automatically revert after a duration.
pihole_domains_addAdd Domain RuleAdd domains to an allow or deny list. Supports bulk add via comma-separated domains. Use pihole_search_domains first to avoid duplicates.
pihole_domains_batch_deleteBatch Delete Domain Rulescan change or delete dataRemove multiple domains at once. Each item needs domain, type (allow/deny), and kind (exact/regex).
pihole_domains_deleteDelete Domain Rulecan change or delete dataRemove a domain from an allow or deny list. Requires the exact type, kind, and domain.
pihole_domains_listList Domain Rulesread-onlyList domains on allow/deny lists. Filter by type (allow/deny) and kind (exact/regex), page with limit/offset. Use pihole_search_domains for cross-list search.
pihole_domains_updateUpdate Domain RuleUpdate a domain entry's comment or enabled status. Changing type or kind creates a duplicate rather than moving the entry; delete the original separately if that is what you want.
pihole_groups_addAdd GroupCreate a group for organising domains and clients into sets with independent blocking rules.
pihole_groups_batch_deleteBatch Delete Groupscan change or delete dataDelete multiple groups at once. Provide a JSON array of group names.
pihole_groups_deleteDelete Groupcan change or delete dataDelete a group by name. Domains and clients assigned to this group lose the association.
pihole_groups_listList Groupsread-onlyList groups used for organising domains and clients into sets with independent blocking rules. Page with limit/offset.
pihole_groups_updateUpdate GroupUpdate or rename a group. Changing the name updates all associated domain and client references.
pihole_history_clientsPer-Client Activityread-onlyIn-memory per-client query activity (FTL memory, last ~24h), busiest client first. detail=full returns the per-slot time series. For arbitrary date ranges, use pihole_history_database_clients.
pihole_history_databaseLong-Term Activityread-onlyLong-term query activity from the FTL database as a time series: one bucket per slot across the range. Use pihole_stats_database instead for a single set of totals over the whole range.
pihole_history_database_clientsLong-Term Per-Client Activityread-onlyLong-term per-client query activity from the FTL database (durable, arbitrary date range), busiest client first. detail=full returns the per-slot time series.
pihole_history_graphActivity Graphread-onlyIn-memory query activity (FTL memory, last ~24h): total/cached/blocked/forwarded per time slot. detail=full or format=csv returns every slot. For arbitrary date ranges, use pihole_history_database.
pihole_info_clientRequesting Client Inforead-onlyInformation about the requesting client's IP address and connection. Does not require authentication.
pihole_info_databaseDatabase Inforead-onlyQuery database details: file size, total stored queries, SQLite version, and how far back the stored queries reach.
pihole_info_dismiss_messageDismiss Diagnostic Messagecan change or delete dataDismiss an FTL diagnostic message by ID, clearing it from Pi-hole. Get IDs from pihole_info_messages.
pihole_info_ftlFTL Engine Inforead-onlyFTL engine process info: PID, privacy level, client and domain counts, and database query total.
pihole_info_messagesDiagnostic Messagesread-onlyFTL diagnostic messages — warnings about DNS resolution failures, database issues, or configuration problems.
pihole_info_metricsOperational Metricsread-onlyLive DNS and DHCP operational metrics as dotted key/value lines: cache size, inserts, evictions, reply counts and lease statistics.
pihole_info_sensorsHardware Sensorsread-onlyHardware temperature sensors with names, values, units, and paths.
pihole_info_systemSystem Healthread-onlySystem health: hostname, OS, CPU/memory/disk usage, load averages, temperature, and DNS service status.
pihole_info_versionComponent Versionsread-onlyPi-hole component versions: core, FTL engine, web interface, and Docker tag if applicable.
pihole_instance_diffCompare Instancesread-onlyCompare configuration between two Pi-hole instances (adlists, allow/deny rules, groups, clients, local DNS). Read-only — reports what a sync would change.
pihole_instance_syncSync Instancescan change or delete dataReconcile a target Pi-hole towards a source. Runs as a dry-run plan by default; re-call with mode=apply and the returned confirm_token to apply. Pushes one direction only (source to target).
pihole_lists_addAdd ListSubscribe to a new blocklist or allowlist URL. Run pihole_action_gravity_update afterwards to download it.
pihole_lists_batch_deleteBatch Delete Listscan change or delete dataUnsubscribe from multiple lists at once. Each item needs URL and type (allow/block).
pihole_lists_deleteDelete Listcan change or delete dataUnsubscribe from a blocklist or allowlist. Run pihole_action_gravity_update afterwards to apply changes.
pihole_lists_listList Blocklistsread-onlyList configured blocklists and allowlists with domain counts and update status. Filter by type (allow/block), page with limit/offset.
pihole_lists_updateUpdate ListUpdate a blocklist or allowlist entry's comment or enabled status.
pihole_local_cname_addAdd Local CNAME RecordAdd a local CNAME record pointing an alias at another name. The target must be a name Pi-hole can already resolve.
pihole_local_cname_deleteDelete Local CNAME Recordcan change or delete dataDelete a local CNAME record by its alias. Pi-hole stops resolving that alias.
pihole_local_cname_listList Local CNAME Recordsread-onlyList local CNAME records from dns.cnameRecords. Each record points an alias at another name this Pi-hole can resolve.
pihole_local_dns_addAdd Local DNS RecordAdd a local A or AAAA record, so this Pi-hole resolves a hostname to an IP address. The record type follows from the address family.
pihole_local_dns_deleteDelete Local DNS Recordcan change or delete dataDelete a local A or AAAA record by IP address and hostname. Pi-hole stops resolving that hostname locally.
pihole_local_dns_listList Local DNS Recordsread-onlyList local A and AAAA records this Pi-hole answers for, from dns.hosts. Each record maps an IP address to a hostname.
pihole_network_delete_deviceDelete Network Devicecan change or delete dataPermanently delete a network device record by ID. Use pihole_network_devices first to find the ID. Devices may reappear if active on the network.
pihole_network_devicesNetwork Devicesread-onlyDevices seen on the network: MAC, IPs, hostnames, vendor, query count, and first/last seen timestamps. Returns 20 by default.
pihole_network_gatewayNetwork Gatewayread-onlyNetwork gateway details: address, interface, address family, and local interface IPs.
pihole_network_infoNetwork Summaryread-onlyLightweight summary of routing table and interface state. For detailed per-route or per-interface data, use pihole_network_routes or pihole_network_interfaces.
pihole_network_interfacesNetwork Interfacesread-onlyNetwork interfaces with addresses, link state, speed, and traffic counters.
pihole_network_routesRouting Tableread-onlySystem routing table entries with family, scope, source, destination, gateway, and outbound interface.
pihole_paddDashboard Snapshotread-onlyOne-call dashboard: queries, blocking, top domain/client, cache, versions, and host health. Best starting point for a status overview.
pihole_queries_searchSearch Query Logread-onlySearch DNS query log with filters by domain, client, type, status, and time range. Returns 25 most recent by default with cursor pagination. Set disk=true to search the long-term database for anything older than FTL's in-memory window.
pihole_queries_suggestionsQuery Filter Suggestionsread-onlyAvailable filter values for pihole_queries_search: known domains, client addresses and names, upstreams, query types, statuses, reply types and DNSSEC states.
pihole_search_domainsSearch Domains in Listsread-onlySearch for a domain across all allow/deny lists and gravity blocklists. Use before modifying lists to check current state.
pihole_stats_databaseLong-Term Statisticsread-onlyLong-term database statistics aggregated over a time range: one set of totals for queries, blocked and clients. Use pihole_history_database for the same range broken into time slots.
pihole_stats_database_query_typesLong-Term Query Typesread-onlyHistorical distribution of DNS query types (A, AAAA, MX, etc.) for a date range.
pihole_stats_database_top_clientsLong-Term Top Clientsread-onlyMost active clients from the long-term database for a date range. Use blocked=true for clients with most blocked queries.
pihole_stats_database_top_domainsLong-Term Top Domainsread-onlyTop queried or blocked domains from the long-term database for a date range. Returns 10 by default, max 50.
pihole_stats_database_upstreamsLong-Term Upstreamsread-onlyHistorical upstream DNS server performance for a date range: query counts and average response times.
pihole_stats_query_typesQuery Typesread-onlyDistribution of DNS query types (A, AAAA, MX, PTR, HTTPS, etc.) with counts.
pihole_stats_recent_blockedRecently Blockedread-onlyMost recently blocked domains — useful for spotting new tracking domains or false positives in real-time.
pihole_stats_summaryStatistics Summaryread-onlyOverview of Pi-hole activity: queries, blocking rate, active clients, gravity size, and top query types. Start here for a health check.
pihole_stats_top_clientsTop Clientsread-onlyMost active network clients ranked by query count. Use blocked=true for clients with most blocked queries.
pihole_stats_top_domainsTop Domainsread-onlyTop queried or top blocked domains ranked by count. Returns 10 by default, max 50.
pihole_stats_upstreamsUpstream Performanceread-onlyUpstream DNS server performance: query counts, average response time, and standard deviation per server.
pihole_teleporter_exportExport Backupread-onlyExport a full Pi-hole configuration backup as a zip archive. Returns the saved file path and size. The file persists on disk after the call returns and is the caller's to move or delete; under Docker it is written inside the container unless output_path points at a mounted volume.
pihole_teleporter_importImport Backupcan change or delete dataImport a Pi-hole configuration backup from a zip archive. Selectively import config, gravity tables, and DHCP leases.
Compare and alternatives
Featured in
Signals
- Stars
- 8
- Forks
- 2
- Open issues
- 3
- Last commit
- Sep 11, 2026 (1 month ago)
- Last release
- Sep 11, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.hexamatic/pihole-mcp- Version
- 0.9.0
- Auth
- API key
- Packages
- oci
ghcr.io/hexamatic/pihole-mcp:0.9.0 - License
- MIT
- Repository
- github.com/hexamatic/pihole-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
Pi-hole MCP Server. Agent Mart. https://agentmart.dev/connectors/hexamatic-pihole-mcp (last updated 2026-10-24)