Skip to content
Agentmart
Submit a tool

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

IndexedMITLocal (stdio)★ 8
Write a review

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.

We use your email only for this newsletter. Privacy

About

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

No 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_sessions
  • pihole_clients_list
  • pihole_clients_suggestions
  • pihole_config_get
  • pihole_config_get_value
  • pihole_config_properties
  • pihole_dhcp_leases
  • pihole_dns_get_blocking
  • pihole_domains_list
  • pihole_groups_list
  • pihole_history_clients
  • pihole_history_database
Show 35 more tools
  • pihole_history_database_clients
  • pihole_history_graph
  • pihole_info_client
  • pihole_info_database
  • pihole_info_ftl
  • pihole_info_messages
  • pihole_info_metrics
  • pihole_info_sensors
  • pihole_info_system
  • pihole_info_version
  • pihole_instance_diff
  • pihole_lists_list
  • pihole_local_cname_list
  • pihole_local_dns_list
  • pihole_network_devices
  • pihole_network_gateway
  • pihole_network_info
  • pihole_network_interfaces
  • pihole_network_routes
  • pihole_padd
  • pihole_queries_search
  • pihole_queries_suggestions
  • pihole_search_domains
  • pihole_stats_database
  • pihole_stats_database_query_types
  • pihole_stats_database_top_clients
  • pihole_stats_database_top_domains
  • pihole_stats_database_upstreams
  • pihole_stats_query_types
  • pihole_stats_recent_blocked
  • pihole_stats_summary
  • pihole_stats_top_clients
  • pihole_stats_top_domains
  • pihole_stats_upstreams
  • pihole_teleporter_export

Write 11 · Create, change, send or run things.

  • pihole_action_gravity_update
  • pihole_clients_add
  • pihole_clients_update
  • pihole_config_add_value
  • pihole_config_set
  • pihole_domains_add
  • pihole_domains_update
  • pihole_groups_add
  • pihole_groups_update
  • pihole_local_cname_add
  • pihole_local_dns_add

Delete 21 · Delete, drop, revoke or wipe things.

  • pihole_action_flush_logs
  • pihole_action_flush_network
  • pihole_action_restart_dns
  • pihole_auth_revoke_session
  • pihole_clients_batch_delete
  • pihole_clients_delete
  • pihole_config_remove_value
  • pihole_dhcp_delete_lease
  • pihole_dns_set_blocking
  • pihole_domains_batch_delete
  • pihole_domains_delete
  • pihole_groups_batch_delete
Show 9 more tools
  • pihole_groups_delete
  • pihole_info_dismiss_message
  • pihole_instance_sync
  • pihole_lists_batch_delete
  • pihole_lists_delete
  • pihole_local_cname_delete
  • pihole_local_dns_delete
  • pihole_network_delete_device
  • pihole_teleporter_import

Not yet classified 2 · We could not tell from the name and description.

  • pihole_lists_add
  • pihole_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_RETRIES
  • PIHOLE_READ_ONLY
  • PIHOLE_REQUEST_TIMEOUT
  • PIHOLE_RETRY_MAX_DELAY
  • PIHOLE_TLS_SKIP_VERIFY
  • PIHOLE_URL
  • TZ

Network hosts it talks to 10

  • ::1 · found in code
  • a.invalid · found in code
  • alpha.invalid · found in code
  • b.invalid · found in code
  • beta.invalid · found in code
  • example.invalid · found in code
  • github.com · found in code
  • pihole.invalid · found in code
  • pihole.local · found in code
  • raw.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 data

    Permanently delete all DNS logs — purges last 24 hours from memory and database. Irreversible.

  • pihole_action_flush_networkFlush Network Tablecan change or delete data

    Permanently delete all network device records and associated addresses. Devices will be re-discovered over time.

  • pihole_action_gravity_updateUpdate Gravity

    Re-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 data

    Restart the FTL DNS resolver. Briefly interrupts DNS resolution for all clients on the network.

  • pihole_auth_revoke_sessionRevoke Sessioncan change or delete data

    Revoke an active API session by ID. Cannot revoke the current session used by this server.

  • pihole_auth_sessionsList Sessionsread-only

    List active API sessions: remote address, user agent, and expiry. Useful for detecting unauthorised access.

  • pihole_clients_addAdd Client

    Add 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 data

    Remove multiple configured clients at once. Each item needs the client identifier.

  • pihole_clients_deleteDelete Clientcan change or delete data

    Remove a configured client. The device remains on the network but loses group-based blocking rules.

  • pihole_clients_listList Clientsread-only

    List 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-only

    Unconfigured network clients seen by Pi-hole that don't have group assignments yet. Useful for discovering new devices.

  • pihole_clients_updateUpdate Client

    Update a configured client's comment. Group assignments are managed through the group tools.

  • pihole_config_add_valueAdd Config Array Value

    Add 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-only

    Get 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-only

    Get 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-only

    List 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 data

    Remove 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 Configuration

    Modify 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 data

    Remove an active DHCP lease by IP address. Only works when Pi-hole's DHCP server is enabled.

  • pihole_dhcp_leasesList DHCP Leasesread-only

    Active 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-only

    Get the current DNS blocking status and any active timer for temporary blocking changes.

  • pihole_dns_set_blockingSet Blockingcan change or delete data

    Enable or disable DNS blocking. Set a timer (seconds) to automatically revert after a duration.

  • pihole_domains_addAdd Domain Rule

    Add 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 data

    Remove multiple domains at once. Each item needs domain, type (allow/deny), and kind (exact/regex).

  • pihole_domains_deleteDelete Domain Rulecan change or delete data

    Remove a domain from an allow or deny list. Requires the exact type, kind, and domain.

  • pihole_domains_listList Domain Rulesread-only

    List 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 Rule

    Update 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 Group

    Create a group for organising domains and clients into sets with independent blocking rules.

  • pihole_groups_batch_deleteBatch Delete Groupscan change or delete data

    Delete multiple groups at once. Provide a JSON array of group names.

  • pihole_groups_deleteDelete Groupcan change or delete data

    Delete a group by name. Domains and clients assigned to this group lose the association.

  • pihole_groups_listList Groupsread-only

    List groups used for organising domains and clients into sets with independent blocking rules. Page with limit/offset.

  • pihole_groups_updateUpdate Group

    Update or rename a group. Changing the name updates all associated domain and client references.

  • pihole_history_clientsPer-Client Activityread-only

    In-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-only

    Long-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-only

    Long-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-only

    In-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-only

    Information about the requesting client's IP address and connection. Does not require authentication.

  • pihole_info_databaseDatabase Inforead-only

    Query 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 data

    Dismiss an FTL diagnostic message by ID, clearing it from Pi-hole. Get IDs from pihole_info_messages.

  • pihole_info_ftlFTL Engine Inforead-only

    FTL engine process info: PID, privacy level, client and domain counts, and database query total.

  • pihole_info_messagesDiagnostic Messagesread-only

    FTL diagnostic messages — warnings about DNS resolution failures, database issues, or configuration problems.

  • pihole_info_metricsOperational Metricsread-only

    Live DNS and DHCP operational metrics as dotted key/value lines: cache size, inserts, evictions, reply counts and lease statistics.

  • pihole_info_sensorsHardware Sensorsread-only

    Hardware temperature sensors with names, values, units, and paths.

  • pihole_info_systemSystem Healthread-only

    System health: hostname, OS, CPU/memory/disk usage, load averages, temperature, and DNS service status.

  • pihole_info_versionComponent Versionsread-only

    Pi-hole component versions: core, FTL engine, web interface, and Docker tag if applicable.

  • pihole_instance_diffCompare Instancesread-only

    Compare 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 data

    Reconcile 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 List

    Subscribe 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 data

    Unsubscribe from multiple lists at once. Each item needs URL and type (allow/block).

  • pihole_lists_deleteDelete Listcan change or delete data

    Unsubscribe from a blocklist or allowlist. Run pihole_action_gravity_update afterwards to apply changes.

  • pihole_lists_listList Blocklistsread-only

    List configured blocklists and allowlists with domain counts and update status. Filter by type (allow/block), page with limit/offset.

  • pihole_lists_updateUpdate List

    Update a blocklist or allowlist entry's comment or enabled status.

  • pihole_local_cname_addAdd Local CNAME Record

    Add 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 data

    Delete a local CNAME record by its alias. Pi-hole stops resolving that alias.

  • pihole_local_cname_listList Local CNAME Recordsread-only

    List 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 Record

    Add 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 data

    Delete 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-only

    List 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 data

    Permanently 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-only

    Devices seen on the network: MAC, IPs, hostnames, vendor, query count, and first/last seen timestamps. Returns 20 by default.

  • pihole_network_gatewayNetwork Gatewayread-only

    Network gateway details: address, interface, address family, and local interface IPs.

  • pihole_network_infoNetwork Summaryread-only

    Lightweight 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-only

    Network interfaces with addresses, link state, speed, and traffic counters.

  • pihole_network_routesRouting Tableread-only

    System routing table entries with family, scope, source, destination, gateway, and outbound interface.

  • pihole_paddDashboard Snapshotread-only

    One-call dashboard: queries, blocking, top domain/client, cache, versions, and host health. Best starting point for a status overview.

  • pihole_queries_searchSearch Query Logread-only

    Search 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-only

    Available 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-only

    Search for a domain across all allow/deny lists and gravity blocklists. Use before modifying lists to check current state.

  • pihole_stats_databaseLong-Term Statisticsread-only

    Long-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-only

    Historical distribution of DNS query types (A, AAAA, MX, etc.) for a date range.

  • pihole_stats_database_top_clientsLong-Term Top Clientsread-only

    Most 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-only

    Top 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-only

    Historical upstream DNS server performance for a date range: query counts and average response times.

  • pihole_stats_query_typesQuery Typesread-only

    Distribution of DNS query types (A, AAAA, MX, PTR, HTTPS, etc.) with counts.

  • pihole_stats_recent_blockedRecently Blockedread-only

    Most recently blocked domains — useful for spotting new tracking domains or false positives in real-time.

  • pihole_stats_summaryStatistics Summaryread-only

    Overview 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-only

    Most active network clients ranked by query count. Use blocked=true for clients with most blocked queries.

  • pihole_stats_top_domainsTop Domainsread-only

    Top queried or top blocked domains ranked by count. Returns 10 by default, max 50.

  • pihole_stats_upstreamsUpstream Performanceread-only

    Upstream DNS server performance: query counts, average response time, and standard deviation per server.

  • pihole_teleporter_exportExport Backupread-only

    Export 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 data

    Import 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
    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)