mcp-server-ntopng
NTOPNG モデルコンテキストプロトコルサーバー
AI エージェントが NTOPNG データベースを使用してネットワーク監視データを照会できるようにする、 NTOPNG用のモデル コンテキスト プロトコルサーバー実装。
このMCPサーバーは、 ntopngがClickHouseを使用して履歴フローとアラートを保存することを前提としています。ntopng Clickhouseを確認してください。
ツール
fetch_ntopng_all_ifidsntopng から利用可能なすべてのインターフェース 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_statsMAC アラートの統計を取得します。
get_ntopng_network_alert_statsネットワークアラートの統計を取得します。
get_ntopng_snmp_device_alert_listSNMP デバイス アラートのリストを取得します。
get_ntopng_snmp_device_alert_statsSNMP デバイス アラートの統計を取得します。
get_ntopng_system_alert_statsシステムアラートの統計を取得します。
query_ntopng_flows_datantopng フロー データベースから詳細なフロー データを取得します。
get_ntopng_top-k_flowsntopng フロー データベースからトップ k フロー データを取得します。
get_ntopng_user_alert_statsユーザーアラートの統計を取得します。
get_ntopng_flow_devices_statsすべてのフロー デバイスの統計を取得します。
get_ntopng_sflow_devices_statsすべての sFlow デバイスの統計を取得します。
list_tables_ntopng_databasentopng データベースのテーブル構造を一覧表示します。
query_ntopng_databasentopng Clickhouse データベースをクエリします。
Related MCP server: MCP-Guide
状態
Claude デスクトップ アプリおよびその他の MCP 準拠のホストおよびクライアントで動作します。
MCPリソースまたはプロンプトはまだサポートされていません。
構成
次の場所にある Claude Desktop 構成ファイルを作成または編集します。
macOSの場合:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows の場合:
%APPDATA%/Claude/claude_desktop_config.json
以下を追加します。
{
"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をインストールするには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非標準ポートを使用しない限り、通常は設定する必要はありません
NTOPNG_SECURE: TLS接続を有効/無効にするデフォルト:
false安全なTLS接続の場合は
trueに設定
NTOPNG_VERIFY: SSL証明書の検証を有効/無効にするデフォルト:
true証明書の検証を無効にするには `false に設定します(本番環境では推奨されません)
NTOPNG_CONNECT_TIMEOUT: 接続タイムアウト(秒)デフォルト: `30
接続タイムアウトが発生する場合はこの値を増やしてください
NTOPNG_SEND_RECEIVE_TIMEOUT: 送受信タイムアウト(秒)デフォルト:
300長時間実行されるクエリの場合はこの値を増やします
Clickhouse への TLS 接続の設定の詳細については、
ntopngドキュメントのTLS 設定を確認してください。
発達
ローカルマシンにパッケージをインストールします。
$ uv sync
$ uv pip install -e .MCPインスペクターを実行する
$ 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-certsClaude 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"
}
}
}
}