Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
MCP server for Pi-hole v6 API — manage multiple instances: queries, lists, groups, stats
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
PIHOLE_INSTANCES, PIHOLE_BASE_URL, PIHOLE_PASSWORD「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"pihole": {
"command": "npx",
"args": [
"-y",
"@ranklancer/pihole-mcp"
],
"env": {
"PIHOLE_INSTANCES": "your-value",
"PIHOLE_BASE_URL": "your-value",
"PIHOLE_PASSWORD": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add pihole --env PIHOLE_INSTANCES=your-value --env PIHOLE_BASE_URL=your-value --env PIHOLE_PASSWORD=your-value -- npx -y @ranklancer/pihole-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"pihole": {
"command": "npx",
"args": [
"-y",
"@ranklancer/pihole-mcp"
],
"env": {
"PIHOLE_INSTANCES": "your-value",
"PIHOLE_BASE_URL": "your-value",
"PIHOLE_PASSWORD": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"pihole": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@ranklancer/pihole-mcp"
],
"env": {
"PIHOLE_INSTANCES": "your-value",
"PIHOLE_BASE_URL": "your-value",
"PIHOLE_PASSWORD": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント ranklancer で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:PIHOLE_INSTANCES, PIHOLE_BASE_URL, PIHOLE_PASSWORD
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは7 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, AikenDewit
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Read, add and schedule your AikenDewit tasks and today's top three from ChatGPT or Claude.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
An MCP (Model Context Protocol) server that gives AI assistants like Claude full control over your Pi-hole v6 DNS ad-blocker - query logs, allow/deny lists, group management, gravity reload, and stats. Designed from day one for multi-instance deployments: manage one or many Pi-hole instances from a single MCP endpoint.
Pi-hole's admin API is powerful but cumbersome to script against. This MCP server turns every Pi-hole API action into a tool that any MCP-compatible AI assistant can call directly. Instead of clicking through the admin UI or writing curl commands, just ask your AI to check what's being blocked, allowlist a domain, or compare stats across instances.
Perfect for homelabbers running multiple Pi-holes (primary + secondary, or per-VLAN), network admins managing DNS filtering at scale, and anyone who wants AI-assisted DNS management.
/run/secrets/ filesgit clone https://github.com/ranklancer/pihole-mcp.git
cd pihole-mcp cp .env.example .env
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
npm install
npm run build export PIHOLE_INSTANCES=pihole export PIHOLE_BASE_URL=http://pihole.example.com export PIHOLE_PASSWORD=your-password npm start
The MCP client starts the server as a child process when needed and talks to it over stdin/stdout. No port is opened and nothing keeps running in the background.
npm ci
npm run build cp .env.example .env chmod 600 .env
Register it with Claude Code (user scope):
claude mcp add --scope user pihole -- bash -c \
'set -a; . ~/path/to/pihole-mcp/.env; set +a; MCP_TRANSPORT=stdio exec node ~/path/to/pihole-mcp/dist/index.js'
Or add it manually to your MCP client config:
{
"mcpServers": { "pihole": { "type": "stdio", "command": "bash", "args": ["-c", "set -a; . ~/path/to/pihole-mcp/.env; set +a; MCP_TRANSPORT=stdio exec node ~/path/to/pihole-mcp/dist/index.js"] } } }
HOST and PORT from .env are ignored in stdio mode.
All configuration is via environment variables. See .env.example for the full reference.
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
For each instance name in PIHOLE_INSTANCES, provide:
| Variable | Required | Description |
|---|---|---|
_BASE_URL | Yes | Pi-hole base URL (e.g. http://pihole.local) |
_PASSWORD | Yes | Pi-hole API password (or use Docker secrets) |
_INSECURE_TLS | No | Set true for self-signed certs (default: false) |
Docker secrets are supported as a fallback: /run/secrets/ _password (lowercase).
| Tool | Description |
|---|---|
pihole_query_log | Fetch query log with filters (limit, time range, client IP or name, domain, status) |
pihole_allow_domain | Add to allowlist (auto-detects exact vs regex) |
pihole_deny_domain | Add to denylist (auto-detects exact vs regex) |
pihole_list_allowlist | List all allowlist entries (exact + regex merged) |
pihole_list_denylist | List all denylist entries (exact + regex merged) |
pihole_stats_summary | Get Pi-hole statistics summary |
pihole_reload_lists | Trigger gravity reload |
pihole_group_management | CRUD operations on Pi-hole groups |
pihole_client_management | CRUD operations on Pi-hole clients and their group assignments |
pihole_check_regex_types | Detect miscategorized regex in deny-exact list |
pihole_set_blocking | Enable/disable blocking, with optional auto-revert timer |
pihole_domain_management | Update or delete an allow/deny domain (completes CRUD) |
pihole_local_dns | List/add/delete local DNS A records |
pihole_local_cname | List/add/delete local CNAME records |
Every tool accepts an optional instance parameter to target a specific Pi-hole. Defaults to the first configured instance.
This section applies to the HTTP transport (Docker or npm start). For stdio, see Local on demand.
The server listens on http://HOST:PORT/mcp (default: http://localhost:3000/mcp). The HTTP endpoint has no authentication, so keep it bound to localhost or a trusted network.
Add to your MCP settings:
{
"mcpServers": { "pihole": { "url": "http://localhost:3031/mcp" } } }
curl http://localhost:3031/health
npm install
npm run dev # Watch mode — recompiles on save npm start # Run the server
MIT