mcp-server-ntopng について
mcp-server-ntopngは、AIエージェントがntopngのネットワーク監視データを照会するためのサーバーです。ClickHouseに保存された履歴フローやアラートを調べる用途に向いています。
主な機能
- 01インターフェースIDとホスト位置の取得
- 02ローカル・リモート通信先の順位表示
- 03各種アラート統計の取得
- 04詳細フローと上位フローの照会
- 05ntopngデータベースの確認と検索
活用シーン
- 01指定インターフェースの通信先を確認
- 02フロー、ホスト、システムのアラートを集計
- 03履歴フローの記録を調査
- 04テーブル一覧の確認とクエリ実行
MCP 対応
MCPクライアント向けに、ntopngのインターフェース、ホスト、フロー、アラート、データベースを照会するツールを公開します。リソースとプロンプトには対応していません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-server-ntopng
NTOPNG Model Context Protocol サーバー
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 の リソースとプロンプトには、まだ対応していません。
設定
-
次の場所にある Claude Desktop の設定ファイルを作成または編集します。
- macOS の場合:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows の場合:
%APPDATA%/Claude/claude_desktop_config.json
- macOS の場合:
-
以下を追加します。
{
"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"
}
}
}
}
-
/path/to/your/uv-binaryをuv実行ファイルの絶対パスに置き換えます。which uvでパスを確認してください。これにより、サーバーの起動時に正しいバージョンのuvが使用されます。 -
変更を適用するため、Claude Desktop を再起動します。
開発
- 環境変数は、
claude_desktop_config.jsonファイルまたはリポジトリのルートにある.envファイルに設定します。
NTOPNG_HOST=localhost
NTOPNG_PORT=9000
NTOPNG_USER=default
NTOPNG_PASSWORD=
-
uv syncを実行して依存関係をインストールします。uvのインストール方法についてはこちらの手順に従ってください。その後、source .venv/bin/activateを実行します。 -
プロジェクトのメインディレクトリから
uv pip install -e .を実行して、mcp-ntopngパッケージをインストールします。 -
簡単にテストするには、
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 - 通常、標準以外のポートを使用する場合を除き、設定する必要はありません
- デフォルト:HTTPS が有効な場合は
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"
}
}
}
}
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。