Pi-hole MCP Server — MCP-сервер для Claude Code: DNS и блокировки
Даёт ИИ-ассистенту доступ к Pi-hole v6: блокировки DNS, домены, клиенты, статистика запросов, DHCP и синхронизация нескольких инстансов.
claude mcp add --env PIHOLE_URL=<PIHOLE_URL> --env PIHOLE_PASSWORD=<PIHOLE_PASSWORD> --env TZ=<TZ> --env PIHOLE_READ_ONLY=<PIHOLE_READ_ONLY> --env PIHOLE_TLS_SKIP_VERIFY=<PIHOLE_TLS_SKIP_VERIFY> --transport stdio pi-hole-mcp-server -- docker run -i --rm -e PIHOLE_URL -e PIHOLE_PASSWORD -e TZ -e PIHOLE_READ_ONLY -e PIHOLE_TLS_SKIP_VERIFY ghcr.io/hexamatic/pihole-mcp:0.9.0Что делает Pi-hole MCP Server
Сервер собран как один бинарник на Go и работает через REST API Pi-hole v6. Внутри 82 инструмента (84, если настроен второй Pi-hole), 9 промптов и 5 ресурсов: домены, списки, группы, клиенты, DHCP, сеть, журнал запросов, локальные DNS-записи, бэкап и восстановление через teleporter, управление сессиями. Ассистент вызывает их по обычной просьбе, а не по именам функций.
Есть режим только для чтения: PIHOLE_READ_ONLY=true оставляет инструменты, которые ничего не меняют, и проверка идёт на каждом вызове. Переменная PIHOLE_TOOLSETS сужает набор до нужных семейств, чтобы клиент не тянул лишнее. Для двух Pi-hole доступны сравнение конфигураций и перенос изменений: сначала план без записи, потом подтверждение по токену.
Перед подключением к клиенту прогоните pihole-mcp -check — сервер проверит конфиг и опросит каждый Pi-hole по имени. Без этого неверный URL или пароль выглядит так же, как сервер, который вообще не стартовал: большинство клиентов прячут его вывод. Обязательны PIHOLE_URL и PIHOLE_PASSWORD; в примерах ниже запуск идёт через Docker-образ ghcr.io/hexamatic/pihole-mcp:0.9.0.
Какие задачи решает
- посмотреть, включена ли блокировка DNS и сколько ей осталось
- поставить блокировку на паузу, чтобы протестировать сайт
- выяснить, в какой список попал заблокированный домен
- добавить локальную DNS-запись для домашнего сервера
- сравнить два Pi-hole и перенести различия
Примеры запросов агенту
- Покажи, что Pi-hole блокирует прямо сейчас и на какой срок
- Сними блокировку на десять минут, надо кое-что проверить
- Найди, в каких списках числится этот домен
Как установить Pi-hole MCP Server
Командой платформы
claude mcp add --env PIHOLE_URL=<PIHOLE_URL> --env PIHOLE_PASSWORD=<PIHOLE_PASSWORD> --env TZ=<TZ> --env PIHOLE_READ_ONLY=<PIHOLE_READ_ONLY> --env PIHOLE_TLS_SKIP_VERIFY=<PIHOLE_TLS_SKIP_VERIFY> --transport stdio pi-hole-mcp-server -- docker run -i --rm -e PIHOLE_URL -e PIHOLE_PASSWORD -e TZ -e PIHOLE_READ_ONLY -e PIHOLE_TLS_SKIP_VERIFY ghcr.io/hexamatic/pihole-mcp:0.9.0Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера
Командой платформы
codex mcp add pi-hole-mcp-server --env PIHOLE_URL=<PIHOLE_URL> --env PIHOLE_PASSWORD=<PIHOLE_PASSWORD> --env TZ=<TZ> --env PIHOLE_READ_ONLY=<PIHOLE_READ_ONLY> --env PIHOLE_TLS_SKIP_VERIFY=<PIHOLE_TLS_SKIP_VERIFY> -- docker run -i --rm -e PIHOLE_URL -e PIHOLE_PASSWORD -e TZ -e PIHOLE_READ_ONLY -e PIHOLE_TLS_SKIP_VERIFY ghcr.io/hexamatic/pihole-mcp:0.9.0Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера
Файл настроек
{
"mcpServers": {
"pi-hole-mcp-server": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PIHOLE_URL",
"-e",
"PIHOLE_PASSWORD",
"-e",
"TZ",
"-e",
"PIHOLE_READ_ONLY",
"-e",
"PIHOLE_TLS_SKIP_VERIFY",
"ghcr.io/hexamatic/pihole-mcp:0.9.0"
],
"env": {
"PIHOLE_URL": "<PIHOLE_URL>",
"PIHOLE_PASSWORD": "<PIHOLE_PASSWORD>",
"TZ": "<TZ>",
"PIHOLE_READ_ONLY": "<PIHOLE_READ_ONLY>",
"PIHOLE_TLS_SKIP_VERIFY": "<PIHOLE_TLS_SKIP_VERIFY>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера
Файл настроек
{
"servers": {
"pi-hole-mcp-server": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PIHOLE_URL",
"-e",
"PIHOLE_PASSWORD",
"-e",
"TZ",
"-e",
"PIHOLE_READ_ONLY",
"-e",
"PIHOLE_TLS_SKIP_VERIFY",
"ghcr.io/hexamatic/pihole-mcp:0.9.0"
],
"env": {
"PIHOLE_URL": "<PIHOLE_URL>",
"PIHOLE_PASSWORD": "<PIHOLE_PASSWORD>",
"TZ": "<TZ>",
"PIHOLE_READ_ONLY": "<PIHOLE_READ_ONLY>",
"PIHOLE_TLS_SKIP_VERIFY": "<PIHOLE_TLS_SKIP_VERIFY>"
}
}
}
}Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера
Командой платформы
gemini mcp add -e PIHOLE_URL=<PIHOLE_URL> -e PIHOLE_PASSWORD=<PIHOLE_PASSWORD> -e TZ=<TZ> -e PIHOLE_READ_ONLY=<PIHOLE_READ_ONLY> -e PIHOLE_TLS_SKIP_VERIFY=<PIHOLE_TLS_SKIP_VERIFY> pi-hole-mcp-server docker run -i --rm -e PIHOLE_URL -e PIHOLE_PASSWORD -e TZ -e PIHOLE_READ_ONLY -e PIHOLE_TLS_SKIP_VERIFY ghcr.io/hexamatic/pihole-mcp:0.9.0Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о Pi-hole MCP Server
Как установить Pi-hole MCP Server в Claude Code?
Одной командой: `claude mcp add --env PIHOLE_URL=<PIHOLE_URL> --env PIHOLE_PASSWORD=<PIHOLE_PASSWORD> --env TZ=<TZ> --env PIHOLE_READ_ONLY=<PIHOLE_READ_ONLY> --env PIHOLE_TLS_SKIP_VERIFY=<PIHOLE_TLS_SKIP_VERIFY> --transport stdio pi-hole-mcp-server -- docker run -i --rm -e PIHOLE_URL -e PIHOLE_PASSWORD -e TZ -e PIHOLE_READ_ONLY -e PIHOLE_TLS_SKIP_VERIFY ghcr.io/hexamatic/pihole-mcp:0.9.0`. Подставьте адрес Pi-hole, пароль и часовой пояс.
Что делает Pi-hole MCP Server?
Открывает ассистенту управление Pi-hole v6: блокировки DNS, домены и списки, клиенты, журнал запросов, статистика, DHCP, локальные DNS-записи, бэкап через teleporter. Отдельно умеет сравнивать два Pi-hole и переносить различия.
Можно ли работать без риска что-то изменить?
Да, с PIHOLE_READ_ONLY=true остаются только инструменты без записи, и ограничение проверяется на каждом вызове. PIHOLE_TOOLSETS дополнительно сужает набор до нужных семейств.