Skip to main content
Glama

Wireshark MCP

FastMCPベースのMCPサーバーで、AIエージェントおよびローカルテスト向けにWireshark/tsharkのキャプチャ、分析、脅威検知、レポート作成ツールを提供します。


目次


前提条件

  • Python: 3.8以上 (3.11推奨)

  • Wireshark (tshark CLI用)。Windowsの場合はWiresharkとNpcapをインストールしてください。

  • 権限: パケットキャプチャには通常、Windows上で管理者権限が必要です。

tsharkがインストールされているか、一般的なパス(例: C:\Program Files\Wireshark\tshark.exe)で利用可能であることを確認してください。このプロジェクトには、PATHおよびWindowsの一般的な場所を検索するTsharkWrapperが含まれています。


Related MCP server: wireshark-mcp

クイックスタート

リポジトリをクローンし、仮想環境を作成します。

Windows (PowerShell):

git clone <your-repo-url>
cd Wireshark_MCP
python -m venv venv
.\venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt

Linux / macOS:

git clone <your-repo-url>
cd Wireshark_MCP
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt

オプション: config.example.jsonconfig.json にコピーし、プロジェクト固有の設定を編集します。


サーバーの実行

2つの一般的なモードがあります:

  • stdio トランスポート — MCP対応クライアント(Wireshark/IDE統合など)との直接統合を目的としています。メインパッケージを実行する際のデフォルトです。

  • http トランスポート — MCPサーバーをHTTP API経由で公開します(テストや外部クライアントに便利です)。

推奨(Windows): 仮想環境をアクティブ化してサーバーを起動する付属のランナーを使用します:

.\run_server.ps1

手動実行 (stdio):

.\venv\Scripts\Activate.ps1
python -m wireshark_mcp.server

HTTPトランスポートで開始(スクリプト例)。run_network_server.py を作成します:

from wireshark_mcp import server

# Starts FastMCP with HTTP transport on 127.0.0.1:8765
server.main().run(transport="http", host="127.0.0.1", port=8765)

実行:

python run_network_server.py

HTTPトランスポートで開始すると、以下のようなUvicornログが表示されます:

INFO:     Uvicorn running on http://127.0.0.1:8765 (Press CTRL+C to quit)

ツールの使用例

開発およびテストには、ツールモジュールを直接呼び出すことを推奨します(これらは構造化されたPythonオブジェクトを返します)。サーバーのMCPデコレータ付き関数は、MCPトランスポート用にシリアライズされた文字列を返します。

Pythonの例(アクティブ化された仮想環境内):

# List network interfaces (preferred for testing)
from wireshark_mcp.tools import capture
print(capture.list_network_interfaces())

# Analyze a PCAP file
from wireshark_mcp.tools import analysis
print(analysis.analyze_pcap("/path/to/capture.pcap"))

# Detect threats in a PCAP
from wireshark_mcp.tools import threat_detection
print(threat_detection.detect_threats("/path/to/capture.pcap"))

サーバー層を介してMCPツールを実行したい場合(MCPクライアントがこれらを呼び出します)、サーバーは同名のツールを公開します。例(注: これらは文字列を返します):

from wireshark_mcp import server
print(server.list_network_interfaces())  # returns serialized string

利用可能なツール(概要)

キャプチャ

  • list_network_interfaces — 利用可能なキャプチャデバイスを一覧表示

  • capture_packets — ライブパケットのキャプチャ (インターフェース、期間、パケット数、BPFフィルタ)

分析

  • analyze_pcap — 完全なpcap分析

  • extract_dns_queries — DNSクエリと疑わしいドメイン

  • extract_ip_addresses — IP抽出とトラフィックパターン

  • get_protocol_statistics — プロトコル分布

脅威検知

  • detect_threats — IOC抽出とリスクスコアリング

  • analyze_malicious_domains — ドメインの詳細分析

  • analyze_suspicious_ips — IPレピュテーションチェック

  • detect_attack_patterns — シグネチャ/パターン検知

トラブルシューティング

  • analyze_connectivity_issue — ターゲット接続診断

  • analyze_vpn_behavior — VPNと非VPNの比較

  • analyze_latency_and_retransmissions — パケットロスと再送

  • analyze_web_performance — Webアプリケーションのトラフィック分析

レポート

  • generate_analysis_report — 包括的なレポート生成

  • generate_security_report — セキュリティに特化したレポート

正確なツールのシグネチャとdocstringについては wireshark_mcp/server.py を参照してください。


トラブルシューティング

  • tshark が見つからない: Wiresharkをインストールし、tshark がPATHにあるか、デフォルトのインストールフォルダにあることを確認してください。付属の TsharkWrapper は、PATHに tshark がない場合、Windowsの一般的な場所を検索します。

  • Windowsでのキャプチャ権限エラー: Npcapがインストールされていることを確認し、PowerShellを管理者として実行してください。

  • ツールがエラー文字列とともに failed を返す場合、wireshark_mcp.tools の同等の関数を直接実行して例外を調査してください。

ログ: サーバーは標準のログ出力を使用します。サーバーを起動したコンソールの出力を確認してください。


貢献

  • 機能ブランチで変更を行い、必要に応じてテストを追加し、プルリクエストを作成してください。

  • wireshark_mcp.tools のパブリックAPIは安定させてください。デコレータ付きの server 関数はMCP公開用です。


ライセンス

GitHubに公開する前に、希望するライセンスファイル(例: LICENSE)を追加してください。


必要であれば、以下のことも可能です:

  • 短い CONTRIBUTING.md の作成

  • scripts/ フォルダへのサンプルスクリプトの追加(HTTPランナー、クイックテストスニペット)

  • ローカルGitブランチを作成し、これらの変更をコミットする


セキュリティとコード品質

プロジェクトは、セキュリティ、信頼性、保守性の問題を表面化させるために、静的解析ツール(SonarQube)で定期的にスキャンされています。以下のスクリーンショットは最新のスキャンからキャプチャされたもので、関係者への裏付け資料としてここに含めています。

注: スクリーンショットは撮影時点の分析状態を示しています。信頼できるソースはSonarQubeプロジェクトページです。これらを公開する場合は、そのリンクを含めてください。

図の参照(画像ファイルを docs/images/ に配置してください):

  • docs/images/sonarqube_result.jpeg — プロジェクト概要 / 全体ステータス (SonarQube)

  • docs/images/snyk_result.jpeg — 依存関係/セキュリティスキャン概要 (Snyk)

Sonar Project Summary

図1 — SonarQubeプロジェクト概要(スキャン時点で合格 / 未解決のセキュリティまたは信頼性の問題なし)。

Snyk Scan Summary

図2 — 依存関係/セキュリティチェックとカウントを示すSnykスキャン出力。

このリポジトリに画像を追加する方法:

  1. リポジトリのルートに docs/images/ フォルダを作成します。

  2. スクリーンショットを sonar_project.png および sonar_summary.png としてそのフォルダに保存します。

  3. READMEと一緒に画像をコミットしてプッシュします:

git add docs/images/sonar_project.png docs/images/sonar_summary.png README.md
git commit -m "docs: add SonarQube screenshots to README"
git push origin <your-branch>

必要であれば、ここにスクリーンショットをアップロード(またはSonarQubeプロジェクトURLへのアクセス権を付与)していただければ、私が代わりに追加してコミットします。

Related MCP Connectors

Related MCP Servers