Skip to main content
Glama

pihole-mcp

License: MIT Node.js Pi-hole v6 MCP

MCP(Model Context Protocol) 서버로, Claude와 같은 AI 어시스턴트가 Pi-hole v6 DNS 광고 차단기를 완전히 제어할 수 있게 해줍니다 - 로그 조회, 허용/차단 목록, 그룹 관리, gravity 리로드, 통계 등. 처음부터 다중 인스턴스 배포를 염두에 두고 설계되었습니다: 단일 MCP 엔드포인트에서 하나 또는 여러 Pi-hole 인스턴스를 관리할 수 있습니다.

왜 필요한가?

Pi-hole의 관리 API는 강력하지만 스크립트로 다루기에는 번거롭습니다. 이 MCP 서버는 모든 Pi-hole API 작업을 MCP 호환 AI 어시스턴트가 직접 호출할 수 있는 도구로 변환합니다. 관리 UI를 클릭하거나 curl 명령을 작성하는 대신, AI에게 차단된 항목을 확인하거나 도메인을 허용 목록에 추가하거나 인스턴스 간 통계를 비교하도록 요청하면 됩니다.

여러 Pi-hole(기본 + 보조, 또는 VLAN별)을 운영하는 홈랩 사용자, 대규모 DNS 필터링을 관리하는 네트워크 관리자, AI 지원 DNS 관리를 원하는 모든 사람에게 적합합니다.

Related MCP server: MCP Pi-hole Server

기능

  • 다중 인스턴스 지원 - 환경 변수를 통해 1~N개의 Pi-hole 인스턴스 구성

  • Pi-hole v6 API 전체 지원 - 로그 조회, 허용/차단 목록(전체 CRUD), 그룹 관리, 차단 제어, 로컬 DNS(A + CNAME) 레코드, gravity 리로드, 통계

  • 스마트 정규식 감지 - 메타문자 분석을 기반으로 도메인을 정확(exact) 또는 정규식(regex) 목록으로 자동 라우팅

  • 정규식 지뢰 탐지기 - 정규식처럼 보이지만 정확(deny-exact) 목록에 잘못 분류된 항목을 찾아냄

  • Docker 준비 완료 - 다단계 Dockerfile, 비루트 사용자, 헬스 체크, 보안 강화

  • 스트리밍 HTTP 전송 - HTTP 기반 MCP를 지원하는 모든 MCP 클라이언트와 호환

  • Docker secrets 지원 - 환경 변수 또는 /run/secrets/ 파일을 통한 비밀번호

빠른 시작

Docker(권장)

git clone https://github.com/ranklancer/pihole-mcp.git
cd pihole-mcp
cp .env.example .env
# Edit .env with your Pi-hole URL(s) and password(s)

mkdir -p secrets
echo "your-pihole-password" > secrets/pihole_password
chmod 600 secrets/pihole_password

cp docker-compose.example.yml docker-compose.yml
docker compose up -d

Node.js

npm install
npm run build
export PIHOLE_INSTANCES=pihole
export PIHOLE_BASE_URL=http://pihole.example.com
export PIHOLE_PASSWORD=your-password
npm start

구성

모든 구성은 환경 변수를 통해 이루어집니다. 전체 참조는 .env.example을 참조하세요.

단일 인스턴스

PIHOLE_INSTANCES=pihole
PIHOLE_BASE_URL=http://192.0.2.100
PIHOLE_PASSWORD=your-password

다중 인스턴스

PIHOLE_INSTANCES=primary,secondary
PRIMARY_BASE_URL=http://192.0.2.100
PRIMARY_PASSWORD=password1
SECONDARY_BASE_URL=https://198.51.100.101
SECONDARY_PASSWORD=password2
SECONDARY_INSECURE_TLS=true

PIHOLE_INSTANCES의 각 인스턴스 이름에 대해 다음을 제공하세요:

변수

필수

설명

<NAME>_BASE_URL

Pi-hole 기본 URL (예: http://pihole.local)

<NAME>_PASSWORD

Pi-hole API 비밀번호 (또는 Docker secrets 사용)

<NAME>_INSECURE_TLS

아니오

자체 서명 인증서에 대해 true로 설정 (기본값: false)

Docker secrets는 대체 수단으로 지원됩니다: /run/secrets/<name>_password (소문자).

사용 가능한 MCP 도구

도구

설명

pihole_query_log

필터(제한, 시간 범위, 클라이언트, 도메인, 상태)로 쿼리 로그 가져오기

pihole_allow_domain

허용 목록에 추가 (정확 vs 정규식 자동 감지)

pihole_deny_domain

차단 목록에 추가 (정확 vs 정규식 자동 감지)

pihole_list_allowlist

모든 허용 목록 항목 나열 (정확 + 정규식 병합)

pihole_list_denylist

모든 차단 목록 항목 나열 (정확 + 정규식 병합)

pihole_stats_summary

Pi-hole 통계 요약 가져오기

pihole_reload_lists

gravity 리로드 트리거

pihole_group_management

Pi-hole 그룹에 대한 CRUD 작업

pihole_check_regex_types

차단-정확 목록에서 잘못 분류된 정규식 감지

pihole_set_blocking

차단 활성화/비활성화, 선택적 자동 되돌림 타이머 포함

pihole_domain_management

허용/차단 도메인 업데이트 또는 삭제 (CRUD 완성)

pihole_local_dns

로컬 DNS A 레코드 나열/추가/삭제

pihole_local_cname

로컬 CNAME 레코드 나열/추가/삭제

모든 도구는 특정 Pi-hole을 대상으로 하는 선택적 instance 매개변수를 허용합니다. 기본값은 첫 번째 구성된 인스턴스입니다.

MCP 클라이언트에 연결

서버는 http://HOST:PORT/mcp에서 수신합니다 (기본값: http://localhost:3000/mcp).

Claude Desktop / Claude Code

MCP 설정에 추가:

{
  "mcpServers": {
    "pihole": {
      "url": "http://localhost:3031/mcp"
    }
  }
}

Supergateway (stdio 래퍼)

MCP 클라이언트가 stdio 전송만 지원하는 경우 supergateway를 사용하세요:

npx -y supergateway --streamableHttp http://localhost:3031/mcp

헬스 체크

curl http://localhost:3031/health
# {"ok":true,"service":"pihole-mcp","version":"0.3.0"}

개발

npm install
npm run dev     # Watch mode — recompiles on save
npm start       # Run the server

요구 사항

  • Node.js >= 20

  • API 액세스가 활성화된 Pi-hole v6

  • Pi-hole 인스턴스에 대한 네트워크 연결

관련 프로젝트

라이선스

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A server that exposes Pi-hole functionality as tools for AI assistants, allowing them to retrieve local DNS settings and query history through natural language.
    8
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Connects AI assistants to Pi-hole network-wide ad blocker, enabling monitoring of DNS traffic statistics, controlling blocking settings, managing whitelist/blacklist domains, viewing query logs, and performing maintenance tasks through natural language.
    16
    78
    6
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables control of Pi-hole v6 ad blocking, allowing users to toggle DNS blocking status and retrieve real-time statistics like query counts and blocked domains. It provides a structured interface for monitoring and managing network-level ad filtering through the Pi-hole REST API.

View all related MCP servers

Related MCP Connectors

  • Universal AI API Orchestrator — 1,554 tools, 96 services. One install.

  • Log, query, and edit expenses, budgets, and accounts in Ledgy from any MCP-compatible AI assistant.

  • Buy & manage domains from any AI chat: availability, register, DNS, email forwarding, AI bot stats.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ranklancer/pihole-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server