MCP Wireshark について
mcp-wireshark は、AI アシスタントから Wireshark と tshark の機能を直接利用できるようにする、コミュニティで保守されている MCP サーバーです。ネットワークトラフィックを分析するユーザーを対象とし、.pcap ファイルの解析やライブキャプチャに対応します。pip でインストールでき、読み取り専用ツールとトラフィックの取得やファイル書き込みを行うツールを分けています。
主な機能
- 01pcap / pcapng ファイルの解析と要約
- 02Wireshark の表示フィルターによる絞り込み
- 03TCP / UDP ストリームの追跡とペイロードの取得
- 04IEC 61850 GOOSE、SV、MMS の状態診断
- 05時間とパケット数に上限を設けたライブキャプチャ
- 06パケットの JSON エクスポート
活用シーン
- 01未知のキャプチャファイルの概要をアシスタントに確認する
- 02HTTP や DNS などの特定プロトコルに絞り込む
- 03変電所の GOOSE・SV トラフィックのシーケンス欠落を調査する
MCP 対応
このプロジェクトは MCP サーバーであり、MCP クライアントに 14 個のツールを公開します。読み取りツールは状態の確認のみを行い、書き込みツールはキャプチャや書き込みを実行します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
mcp-wireshark
Wireshark/
tshark用のコミュニティ運営 MCP サーバーです。Wireshark または Anthropic とは提携していません。 AI アシスタントからパケットキャプチャに直接アクセスできます。Claude に.pcapの要約、TCP ストリームの追跡、特定のプロトコルのフィルタリング、ライブトラフィックのキャプチャなどをチャットから離れずに依頼できます。

Claude Code ですぐに使う
pip install mcp-wireshark
claude mcp add --transport stdio --scope user mcp-wireshark -- mcp-wireshark
これで完了です。Claude Code を開いて、次のように試してください。
「./capture.pcap を要約して、最も多く通信した IP を教えてください。」
--scope user を指定すると、すべての Claude Code プロジェクトでサーバーを利用できます。このフラグを省略すると、現在のプロジェクトにのみインストールされます。詳しくは claude mcp docs をご覧ください。
インストールを確認する
claude mcp list
mcp-wireshark が表示されます。Claude Code 内で、次のように尋ねてください。
「check_installation を実行してください。」
PATH に tshark があれば、バージョンが返されます。ない場合は、トラブルシューティングをご覧ください。
ツール
このサーバーは、読み取りツール(安全で、副作用なし)と書き込みツール(トラフィックをキャプチャするか、ファイルを書き込む)の2つに明確に分けられた、14個のツールを提供します。どちらのグループにも標準の MCP readOnlyHint が注釈されているため、準拠するクライアントであれば、その違いを表示できます。
読み取りツール
自由に呼び出しても安全です。状態を調べるだけです。
| ツール | 機能 |
|---|---|
check_installation | tshark がインストールされていることを確認し、バージョンを表示します |
list_interfaces | キャプチャに使用できるネットワークインターフェースを一覧表示します |
read_pcap | .pcap/.pcapng ファイルからパケットを読み込みます(プレビューと総数) |
display_filter | pcap に Wireshark のディスプレイフィルターを適用します |
summarize_pcap | 概要サマリー:I/O 統計、プロトコル階層、通信量上位のホスト |
stats_by_proto | プロトコル階層の統計 |
follow_tcp | TCP ストリームを再構成し、そのペイロードを返します |
follow_udp | UDP ストリームを再構成し、そのペイロードを返します |
expert_info | tshark のエキスパート分析:重大度別に分類された警告、エラー、注記 |
decode_protocol | プロトコルフィールドを TSV テーブルとして抽出します。HTTP、DNS、TLS、GOOSE、MMS、SV、SIP、ICMP には厳選したデフォルトを使用し、それ以外のプロトコルでは任意のフィールドを指定できます |
protocol_stats | -z レポート(プロトコル階層、会話、エンドポイント、HTTP/DNS/SMB 統計)を集計します |
analyze_iec61850 | GOOSE/SV/MMS キャプチャの健全性トリアージ:シーケンス番号の欠落(sqNum/stNum)、TTL 違反、smpCnt の不連続、同期の喪失、MMS エラーについて、ソースごとに OK/WARN/FAIL を返します |
書き込みツール
これらのツールはファイルを作成したり、ライブトラフィックをキャプチャしたりします。準拠クライアントでは、実行前に確認を求める場合があります。
| ツール | 機能 |
|---|---|
live_capture | インターフェースからライブトラフィックをキャプチャします(最大5分/10kパケット) |
export_json | pcapのパケットを、指定したパスのJSONファイルにエクスポートします |
動作の様子
以下のクリップでは、demo/demo.pcapng(短時間のホームネットワークのキャプチャ)に対して実際のツールを実行しています。python demo/render_gif.py <scene> で再生成できます。
summarize_pcap — 不明なキャプチャの特徴を一目で把握します

decode_protocol — プロトコルで絞り込み、簡潔な表を取得します(ここではTLS SNIとDNS-over-HTTPSのルックアップを表示)

expert_info — tsharkに警告や異常を検出してもらいます

プロンプトの例
以下をそのままClaude Codeに入力してください。
List my network interfaces.
Summarize ./traffic.pcap.
From ./traffic.pcap, show me only HTTP requests.
Follow TCP stream 0 in ./traffic.pcap and tell me what protocol is in it.
Capture 30 seconds of traffic on Wi-Fi filtered to tcp.port == 443.
Export every DNS packet from ./traffic.pcap to ./dns.json.
Decode the GOOSE messages in ./substation.pcapng — only stNum >= 1.
Run expert analysis on ./traffic.pcap and group findings by severity.
Show me the IP conversations in ./traffic.pcap.
便利な表示フィルター
| フィルター | 該当するもの |
|---|---|
tcp.port == 80 | HTTP |
tcp.port == 443 | HTTPS |
dns | すべてのDNS |
http.request | HTTPリクエストのみ |
ip.addr == 10.0.0.1 | 特定のホストとの間のトラフィック |
tcp.flags.syn == 1 && tcp.flags.ack == 0 | TCP SYNパケットのみ |
IEC 61850トラフィックを分析する変電所エンジニア向け:
| フィルター | 該当するもの |
|---|---|
goose | すべてのGOOSEメッセージ |
goose.stNum > 0 | 状態変化を含むGOOSEメッセージ |
mms | すべてのMMSトラフィック |
sv | サンプル値 |
その他のクライアント
MCPに対応していれば、どのクライアントでも使用できます。このパッケージをインストールすると、PATH 上に mcp-wireshark バイナリが配置されます。
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)を編集します。
{
"mcpServers": {
"wireshark": {
"command": "mcp-wireshark"
}
}
}
VS Code(Copilot / GitHub Copilot Chat)
ワークスペースに .vscode/mcp.json を作成します。
{
"servers": {
"wireshark": {
"command": "mcp-wireshark"
}
}
}
Cursor / Windsurf / その他
同じstdio呼び出しを使用します:command: mcp-wireshark。トランスポートフラグは不要です。
前提条件
- Python 3.10+
- Wireshark がインストールされ、
tsharkにPATHからアクセスできること
pip または uv でインストールします。
pip install mcp-wireshark
# or
uvx mcp-wireshark
トラブルシューティング
Windowsでtsharkが見つからない
Wiresharkをシステムの PATH に追加します。
Win+Rを押し、sysdm.cplを実行して、詳細設定 → 環境変数を選択しますPathを編集し、C:\Program Files\Wiresharkを追加します- ターミナルとClaude Codeを再起動してから、
check_installationを再実行します
(claude mcp add --env で PATH を渡すのは避けてください。値はそのまま解釈され、%PATH% は展開されません。)
Linuxでキャプチャしようとするとアクセスが拒否される
wireshark グループに自分を追加してから、ログアウトして再度ログインします。
sudo usermod -aG wireshark $USER
`live_capture` で「パケットがキャプチャされませんでした」と表示される
list_interfacesでインターフェース名を確認します(Wiresharkではifconfig/ipとは異なる名前が使われます)- macOSでは、ChmodBPFのインストールが必要な場合があります(Wiresharkの
.dmgに同梱されています) - すべてのパケットを除外する表示フィルターが設定されていないか確認します
開発
git clone https://github.com/khuynh22/mcp-wireshark.git
cd mcp-wireshark
python -m venv venv && source venv/bin/activate # Windows: venv\Scripts\activate
pip install -e ".[dev]"
pytest # tests
black src tests # format
ruff check src tests # lint
mypy src # type check
コードベースは、新しいツールを明確に範囲分けされた次のいずれかのファイルに追加できるよう構成されています。
src/mcp_wireshark/read_tools.py— 状態を調査するだけのものsrc/mcp_wireshark/write_tools.py— トラフィックをキャプチャする、またはファイルを書き込むもの
server.py にはルーティングのみが含まれています。CLAUDE.md と CONTRIBUTING.md を参照してください。
セキュリティ
すべてのファイルパスが検証されます(.. は拒否され、拡張子は許可リストで制限されます)。すべての表示フィルターでシェルのメタ文字がチェックされます。tshark は常に asyncio.create_subprocess_exec 経由で呼び出され、shell=True は使用されません。上限は、呼び出しあたり 10k パケット、ライブキャプチャあたり 5 min です。SECURITY.md を参照してください。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。