mcpField
M
mcp-server-ntopng

mcp-server-ntopng

ローカル
github.com/marcoegデータ・分析284 週間前に更新

mcp-server-ntopng について

mcp-server-ntopngは、AIエージェントがntopngのネットワーク監視データを照会するためのサーバーです。ClickHouseに保存された履歴フローやアラートを調べる用途に向いています。

主な機能

  1. 01インターフェースIDとホスト位置の取得
  2. 02ローカル・リモート通信先の順位表示
  3. 03各種アラート統計の取得
  4. 04詳細フローと上位フローの照会
  5. 05ntopngデータベースの確認と検索

活用シーン

  1. 01指定インターフェースの通信先を確認
  2. 02フロー、ホスト、システムのアラートを集計
  3. 03履歴フローの記録を調査
  4. 04テーブル一覧の確認とクエリ実行

MCP 対応

MCPクライアント向けに、ntopngのインターフェース、ホスト、フロー、アラート、データベースを照会するツールを公開します。リソースとプロンプトには対応していません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-server-ntopng

PyPI - Version

NTOPNG Model Context Protocol サーバー

README の画像

NTOPNG 用の Model Context Protocol サーバー実装です。AI エージェントが NTOPNG データベースを使用して、ネットワークのモニタリングデータを取得できるようにします。

この MCP サーバーは、ntopng が履歴フローとアラートの保存に ClickHouse を使用していることを前提としています。ntopng Clickhouse をご確認ください。

ツール

  • fetch_ntopng_all_ifids
  • ntopng で利用可能なすべてのインターフェース ID を取得します。
  • get_ntopng_hosts_location
  • ホストの地理的位置と追加情報を取得します。
  • fetch_ntopng_top_local_talkers
  • 指定したインターフェースのローカルトーカー上位 10 件を取得します。
  • fetch_ntopng_top_remote_talkers
  • 指定したインターフェースのリモートトーカー上位 10 件を取得します。
  • get_ntopng_all_alert_stats
  • すべてのアラートの統計情報を取得します。
  • get_ntopng_flow_alert_stats
  • フローアラートの統計情報を取得します。
  • get_ntopng_host_alert_stats
  • ホストアラートの統計情報を取得します。
  • get_ntopng_interface_alert_stats
  • インターフェースアラートの統計情報を取得します。
  • get_ntopng_mac_alert_stats
  • MAC アラートの統計情報を取得します。
  • get_ntopng_network_alert_stats
  • ネットワークアラートの統計情報を取得します。
  • get_ntopng_snmp_device_alert_list
  • SNMP デバイスアラートの一覧を取得します。
  • get_ntopng_snmp_device_alert_stats
  • SNMP デバイスアラートの統計情報を取得します。
  • get_ntopng_system_alert_stats
  • システムアラートの統計情報を取得します。
  • query_ntopng_flows_data
  • ntopng のフローデータベースから詳細なフローデータを取得します。
  • get_ntopng_top-k_flows
  • ntopng のフローデータベースから上位 k 件のフローデータを取得します。
  • get_ntopng_user_alert_stats
  • ユーザーアラートの統計情報を取得します。
  • get_ntopng_flow_devices_stats
  • すべてのフローデバイスの統計情報を取得します。
  • get_ntopng_sflow_devices_stats
  • すべての sFlow デバイスの統計情報を取得します。
  • list_tables_ntopng_database
  • ntopng データベースのテーブル構造を一覧表示します。
  • query_ntopng_database
  • ntopng の Clickhouse データベースにクエリを実行します。

ステータス

Claude Desktop アプリおよび、MCP に準拠したその他のホストとクライアントで動作します。

MCP の リソースとプロンプトには、まだ対応していません。

設定

  1. 次の場所にある Claude Desktop の設定ファイルを作成または編集します。

    • macOS の場合:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
  2. 以下を追加します。

{
  "mcpServers": {
    "mcp-ntopng": {
      "command": "/path/to/your/uv-binary",
      "args": ["run", "--with", "mcp-ntopng", "--python", "3.13", "mcp-ntopng"]
      "env": {
        "NTOPNG_HOST": "<ntopng-host>",
        "NTOPNG_DBPORT": "<ntopng-dbport>",
        "NTOPNG_DBUSER": "<ntopng-dbuser>",
        "NTOPNG_DBPASSWORD": "<ntopng-dbpassword>",
        "NTOPNG_SECURE": "true",
        "NTOPNG_VERIFY": "true",
        "NTOPNG_CONNECT_TIMEOUT": "30",
        "NTOPNG_SEND_RECEIVE_TIMEOUT": "300",
        "NTOPNG_API_KEY": "NTOPNG_TOKEN"
      }
    }
  }
}
  1. /path/to/your/uv-binary を uv 実行ファイルの絶対パスに置き換えます。which uv でパスを確認してください。これにより、サーバーの起動時に正しいバージョンの uv が使用されます。

  2. 変更を適用するため、Claude Desktop を再起動します。

開発

  1. 環境変数は、claude_desktop_config.json ファイルまたはリポジトリのルートにある .env ファイルに設定します。
NTOPNG_HOST=localhost
NTOPNG_PORT=9000
NTOPNG_USER=default
NTOPNG_PASSWORD=
  1. uv sync を実行して依存関係をインストールします。uv のインストール方法についてはこちらの手順に従ってください。その後、source .venv/bin/activate を実行します。

  2. プロジェクトのメインディレクトリから uv pip install -e . を実行して、mcp-ntopng パッケージをインストールします。

  3. 簡単にテストするには、mcp dev mcp_ntopng/mcp_server.py を実行して MCP サーバーを起動できます。適切なチャットクライアントに変更してください

環境変数

データベース接続の設定には、次の環境変数を使用します。

  • NTOPNG_HOST:ntopng サーバーのホスト名
  • NTOPNG_DBUSER:Clickhouse DB 認証用のユーザー名
  • NTOPNG_DBPASSWORD:Clickhouse DB 認証用のパスワード
  • NTOPNG_API_KEY:ntopng 認証トークン
オプション
  • NTOPNG_DBPORT:ntopng サーバー上の Clickhouse DB のポート番号
    • デフォルト:HTTPS が有効な場合は 9000、無効な場合は 8123
    • 通常、標準以外のポートを使用する場合を除き、設定する必要はありません
  • NTOPNG_SECURE:TLS 接続の有効/無効を設定します
    • デフォルト:false
    • 安全な TLS 接続を使用するには、true に設定します
  • NTOPNG_VERIFY:SSL 証明書の検証の有効/無効を設定します
    • デフォルト:true
    • 証明書の検証を無効にするには、false to に設定します(本番環境では推奨されません)
  • NTOPNG_CONNECT_TIMEOUT:接続タイムアウト(秒)
    • デフォルト:`30
    • 接続タイムアウトが発生する場合は、この値を大きくしてください
  • NTOPNG_SEND_RECEIVE_TIMEOUT:送受信タイムアウト(秒)
    • デフォルト:300
    • 実行時間の長いクエリには、この値を大きくしてください

Clickhouse への TLS 接続の設定については、ntopng のドキュメントにある TLS の設定を確認してください。

開発

ローカルマシンにパッケージをインストールします:

$ uv sync
$ uv pip install -e .

MCP Inspector を実行します

$ cd mcp_ntopng
$ source .env
$ CLIENT_PORT=8077 SERVER_PORT=8078  mcp dev run_mcp_ntopng.py --with clickhouse-driver --with python-dotenv --with uvicorn --with pip-system-certs

Claude Desktop でローカルライブラリを使用します。

次のファイルを探します: /Users/marco/Library/Application\ Support/Claude/claude_desktop_config.json

claude_desktop_config.json を編集し、ローカルパスを変更します:

{
    "mcpServers": {
      "mcp-ntopng": {
        "command": "/Users/marco/Development/claude/mcp-server-ntopng/.venv/bin/python",
        "args": [
           "/Users/marco/Development/claude/mcp-server-ntopng/run_mcp_ntopng.py"
        ],
        "env": {
          "NTOPNG_HOST": "marcoeg-nod004.ntoplink.com",
          "NTOPNG_DBPORT": "9000",
          "NTOPNG_DBUSER": "default",
          "NTOPNG_DBPASSWORD": "",
          "NTOPNG_SECURE": "false",
          "NTOPNG_VERIFY": "false",
          "NTOPNG_CONNECT_TIMEOUT": "30",
          "NTOPNG_SEND_RECEIVE_TIMEOUT": "300",
          "SELECT_QUERY_TIMEOUT_SECS": "30",
          "NTOPNG_API_KEY": "NTOPNG_TOKEN"
        }
      }
    }
  }

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。