Pi-hole MCP Server

by sbarbett
MIT License
  • Apple
  • Linux

Integrations

  • Exposes Pi-hole functionality through tools for listing local DNS settings and retrieving recent DNS query history from a Pi-hole instance.

🍓 pihole-mcp-serer

Pi-hole用のモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、Pi-holeの機能をAIアシスタントが使用できるツールとして公開します。

依存関係

ドッカー

uv (オプション、開発用)

アプリケーションをローカルで実行したい場合は、 uvを使用してください。お好みのパッケージマネージャーでインストールしてください。

環境

Pi-hole の資格情報を使用して、プロジェクト ルートに.envファイルを作成します。

# Primary Pi-hole (required) PIHOLE_URL=https://your-pihole.local/ PIHOLE_PASSWORD=your-admin-password #PIHOLE_NAME=Primary # optional, defaults to URL if unset # Secondary Pi-hole (optional) #PIHOLE2_URL=https://secondary-pihole.local/ #PIHOLE2_PASSWORD=password2 #PIHOLE2_NAME=Secondary # optional # Up to 4 Pi-holes: #PIHOLE3_URL=... #PIHOLE3_PASSWORD=... #PIHOLE3_NAME=... #PIHOLE4_URL=... #PIHOLE4_PASSWORD=... #PIHOLE4_NAME=...

プロジェクト構造

このプロジェクトは、保守性を向上させるためにモジュール構成を採用しています。

/ ├── main.py # Main application entry point ├── tools/ # Pi-hole tools organized by functionality │ ├── __init__.py │ ├── config.py # Configuration-related tools (DNS settings) │ └── metrics.py # Metrics and query-related tools ├── resources/ # MCP resources │ ├── __init__.py │ └── common.py # Common resources (piholes://, version://) ├── docker-compose.yml # Docker Compose configuration for production ├── docker-compose.dev.yml # Docker Compose for development with volume mounts └── Dockerfile # Docker build configuration

この構造により、すべての実行モードとの互換性を維持しながら、コードを論理コンポーネントに分割します。

サーバーの実行

Pi-hole MCP サーバーを実行するにはいくつかの方法があります。

Docker の使用 (本番環境での推奨)

# Standard deployment docker-compose up -d

サーバーはhttp://localhost:8383で利用可能になります。

Dockerによる開発モード

開発の場合は、ローカルでビルドする dev Compose ファイルを使用します。

docker-compose -f docker-compose.dev.yml up

MCP検査官

uvmcp CLI を使用して MCP インスペクターを実行できます。

uv run mcp dev main.py

これによりhttp://localhost:6274で対話型インターフェースが起動し、ツールとリソースをテストできるようになります。

API

この MCP サーバーは、次のリソースとツールを公開します。

リソース

  • piholes:// : 設定されているすべてのPi-holesに関する情報を返します
  • version:// : MCPサーバーのバージョンを返します
  • list-tools:// : ツールカテゴリのリストを返します
    • list-tools://{category} : 特定のカテゴリ内のツールのリストを返します

ツール

各ツール呼び出しは、次の構造を持つ辞書のリストとして結果を返します。

[ { "pihole": "Pi-hole Name", "data": [...] # Result data from this Pi-hole }, ... ]
構成
  • list_local_dns : Pi-hole からすべてのローカル DNS 設定を一覧表示します
  • add_local_a_record : Pi-hole にローカル A レコードを追加します。
  • add_local_cname_record : Pi-hole にローカル CNAME レコードを追加します。
  • remove_local_a_record : ホスト名のすべての A レコードを削除します。
  • remove_local_cname_record : ホスト名のすべての CNAME レコードを削除します。
メトリクス
  • list_queries : Pi-holeから最近のDNSクエリ履歴を取得します。
  • list_query_suggestions : クエリフィルタの提案を取得する
  • list_query_history : クエリのアクティビティグラフデータを時間経過とともに取得する

gooseでのテスト

Gooseは、テストと開発に役立つCLI LLMクライアントです。インストール手順はこちらを参照してください。

以下はgoose configureを使用して初期設定が完了していることを前提としています。

拡張機能の設定

  1. 設定メニューを開くには、 goose configureと入力します。
  2. 拡張機能を追加を選択
  3. リモート内線を選択
  4. 名前を聞いてきます。どんな名前でも構いません。私はpihole-mcpと名付けました。
  5. *「SSE エンドポイント URI は何ですか?」*と尋ねられたらhttp://localhost:8383/sseと入力します。
  6. タイムアウトを入力します。
  7. 必要に応じて説明を追加してください。
  8. 環境変数について尋ねられたら、 **「いいえ」**を選択します。

セッションを開始する

サーバーがインストールされたら、チャット セッションを開始します。

goose session

*「ローカル DNS レコードとは何ですか?」*と質問してみてください。

...または、 「最近の DNS クエリを表示してください」と指示します。

クロードデスクトップ

Claude のデスクトップ クライアントは現在 STDIO プロトコルのみをサポートしていますが、プロキシを使用して SSE エンドポイントと通信することができます。

claude_desktop_config.jsonファイルに次の内容を追加します。

{ "mcpServers": { "pihole": { "command": "npx", "args": [ "mcp-remote", "http://localhost:8383/sse" ] } } }

ローカルネットワーク上の別のホストに接続し、セキュリティ保護されていない接続を使用している場合は、 --allow-http引数を使用して明示的に許可する必要があります。例:

{ "mcpServers": { "pihole": { "command": "npx", "args": [ "mcp-remote", "http://192.168.1.255:8383/sse", "--allow-http" ] } } }

その後、アプリケーションを完全に再起動して試してください。

ライセンス

マサチューセッツ工科大学

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Pi-hole 機能を AI アシスタントのツールとして公開するサーバー。これにより、AI アシスタントは自然言語を通じてローカル DNS 設定やクエリ履歴を取得できるようになります。

  1. 依存関係
    1. ドッカー
    2. uv (オプション、開発用)
  2. 環境
    1. プロジェクト構造
      1. サーバーの実行
        1. Docker の使用 (本番環境での推奨)
        2. Dockerによる開発モード
        3. MCP検査官
      2. API
        1. リソース
        2. ツール
      3. gooseでのテスト
        1. 拡張機能の設定
        2. セッションを開始する
      4. クロードデスクトップ
        1. ライセンス

          Related MCP Servers

          • A
            security
            A
            license
            A
            quality
            This server enables AI systems to integrate with Tavily's search and data extraction tools, providing real-time web information access and domain-specific searches.
            Last updated -
            2
            5,133
            334
            JavaScript
            MIT License
            • Apple
            • Linux
          • A
            security
            A
            license
            A
            quality
            A server that enhances AI assistants with the ability to update your JSON Resume by analyzing your coding projects, automatically extracting skills and generating professional descriptions.
            Last updated -
            3
            32
            39
            TypeScript
            The Unlicense
            • Apple
            • Linux
          • -
            security
            A
            license
            -
            quality
            A server that allows AI assistants to search for research papers, read their content, and access related code repositories through the PapersWithCode API.
            Last updated -
            4
            Python
            MIT License
          • -
            security
            A
            license
            -
            quality
            A server that enables AI assistants like Claude to safely run Python code and access websites, processing data for better AI understanding while providing helpful error messages.
            Last updated -
            2
            Python
            GPL 3.0
            • Linux
            • Apple

          View all related MCP servers

          ID: w63srjkegx