PiHole MCP Server
About
PiHole MCP Server is a Java-based MCP (Model Context Protocol) server that enables AI applications to manage a Pi-hole instance through standard commands. It is designed for users who want to control Pi-hole DNS blocking, domain lists, and retrieve statistics from an AI…
Explore
- Core AI tools
- Restart Pi-hole FTL Service — restart the Pi-hole FTL DNS service to apply changes or recover.
- Get Pi-hole DNS Blocking Status — retrieve current blocking mode and remaining timer.
- Set Pi-hole DNS Blocking Status — enable/disable DNS blocking; optionally set a disable duration (seconds).
- Add New Domain — add domains to allowlist/denylist (supports exact and regex kinds) with validation and
optional comment.
- Retrive Pi-hole Statistics — fetch statistics like total queries, blocked queries, and top domains.
- Retrive Pi-hole System Information — get system info including CPU load, memory usage, blocking percentage, and
uptime.
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
PiHole MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
To run the MCP server, you need to have Java 21 installed on your machine.
1. Download the Pi-hole MCP server JAR file from
the releases page
2. Add MCP server configuration to your AI application client.
JSON configuration example:
``json`
{
"mcpServers": {
"pihole-mcp-server-java": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/pihole-mcp.jar"
],
"env": {
"PIHOLE_PORT": "8080",
"PIHOLE_HOST": "192.168.1.2",
"PIHOLE_APP_PASSWORD": "your_app_password"
}
}
}
}
`
YAML configuration example:
yaml`
name: pihole-mcp-server-java
version: 0.0.1
schema: v1
mcpServers:
- name: pihole-mcp-server-java
command: java
args:
- -jar
- /absolute/path/to/pihole-mcp.jar
env: {
"PIHOLE_PORT": "8080",
"PIHOLE_HOST": "192.168.1.2",
"PIHOLE_APP_PASSWORD": "your_app_password"
}
Make sure to set the following environment variables:
- PIHOLE_PORT: (Optional) The port on which your Pi-hole instance is running (default is 80).PIHOLE_HOST
- : The IP address or hostname of your Pi-hole instance.PIHOLE_APP_PASSWORD`: The application password for your Pi-hole instance.
-
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"pihole mcp server": {
"pihole-mcp-server-java": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/pihole-mcp.jar"
],
"env": {
"PIHOLE_PORT": "8080",
"PIHOLE_HOST": "192.168.1.2",
"PIHOLE_APP_PASSWORD": "your_app_password"
}
}
}
}
}
McpServers
{
"pihole-mcp-server-java": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/pihole-mcp.jar"
],
"env": {
"PIHOLE_PORT": "8080",
"PIHOLE_HOST": "192.168.1.2",
"PIHOLE_APP_PASSWORD": "your_app_password"
}
}
}
Manage Pi-hole with the power of AI
A Pi-hole MCP (Model Control Protocol) server implemented in Java that allows AI applications to interact with and manage a Pi-hole instance through standard commands.Features
- Core AI tools -Restart Pi-hole FTL Service — restart the Pi-hole FTL DNS service to apply changes or recover.
- Get Pi-hole DNS Blocking Status — retrieve current blocking mode and remaining timer.
- Set Pi-hole DNS Blocking Status — enable/disable DNS blocking; optionally set a disable duration (seconds).
- Add New Domain — add domains to allowlist/denylist (supports exact and regex kinds) with validation and
optional comment.
- Retrive Pi-hole Statistics — fetch statistics like total queries, blocked queries, and top domains.
- Retrive Pi-hole System Information — get system info including CPU load, memory usage, blocking percentage, and
uptime.
Running the Server
To run the MCP server, you need to have Java 21 installed on your machine. 1. Download the Pi-hole MCP server JAR file from the releases page 2. Add MCP server configuration to your AI application client. JSON configuration example: ``json
{
"mcpServers": {
"pihole-mcp-server-java": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/pihole-mcp.jar"
],
"env": {
"PIHOLE_PORT": "8080",
"PIHOLE_HOST": "192.168.1.2",
"PIHOLE_APP_PASSWORD": "your_app_password"
}
}
}
}
`
YAML configuration example:
`yaml
name: pihole-mcp-server-java
version: 0.0.1
schema: v1
mcpServers:
- name: pihole-mcp-server-java
command: java
args:
- -jar
- /absolute/path/to/pihole-mcp.jar
env: {
"PIHOLE_PORT": "8080",
"PIHOLE_HOST": "192.168.1.2",
"PIHOLE_APP_PASSWORD": "your_app_password"
}
`
Environment Variables
Make sure to set the following environment variables:
- PIHOLE_PORT: (Optional) The port on which your Pi-hole instance is running (default is 80).
- PIHOLE_HOST: The IP address or hostname of your Pi-hole instance.
- PIHOLE_APP_PASSWORD`: The application password for your Pi-hole instance.Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



