Wireshark MCPとは|AIにパケット解析をさせるMCPサーバーの仕組みと導入手順
Wireshark MCPは、パケット解析ツールWireshark/tsharkをMCP(Model Context Protocol)サーバーとしてAIアシスタントに接続し、.pcapを渡して「このキャプチャの中で不審な通信は?」のように自然言語で解析させる仕組みです。GUIやコマンドを覚えなくても、Claude DesktopやCursorに読み込ませてパケットを調べられる点が従来のWireshark運用との違いです。MCPそのものの前提を確認したい場合はMCP(Model Context Protocol)とは?AIと外部ツールをつなぐ標準規格の仕組みを先に押さえてください。この記事はその応用として、Wireshark連携に絞って導入と注意点を整理します。
まとめ:Wireshark MCPの要点
- Wireshark MCP=tshark/WiresharkをMCPサーバー化し、AIにパケット解析を任せる仕組み。入力は主に
.pcapで、出力は自然言語の解析結果。 - 代表実装は2系統。
pip install wireshark-mcp(tshark中心・多機能)とpip install wireshark-mcp-server(キャプチャ+Nmap・脅威インテリ連携)で、目的で選ぶ。 - 導入の前提はWireshark(tshark)がPATH上にあることとPython 3.10以降。Linuxはキャプチャ権限の付与が別途必要。
- MCPに公式の固定ポート番号は無い。ローカルのstdioはポートを使わず、HTTPトランスポートのときだけサーバーが任意ポートを束ねる。
- Wiresharkで観測できるのはHTTPトランスポートのMCP通信だけ。stdioは標準入出力のパイプなのでネットワーク上には流れない。
- 生のpcapは認証情報や個人情報を含む。クラウドAIに丸ごと渡さない前提で、ローカル実行・最小権限・フィルタでの絞り込みを徹底する。
Wireshark MCPとは何か(tshark×AIのパケット解析)
Wireshark MCPは、Wiresharkに同梱されるCLI版パケット解析エンジンtsharkをMCPサーバーとしてラップし、AIアシスタントから呼び出せるツール群として公開したものです。利用者は.pcap/.pcapngファイルをAIに渡し、「DNSクエリを送っている宛先を一覧して」「TCPの再送が多いフローはどれ」といった問いを投げます。サーバー側は問いに応じたtsharkのフィルタやコマンドを実行し、結果をAIが読める構造化データにして返します。
従来はWiresharkのGUIで表示フィルタを組むか、tsharkのオプションを暗記する必要がありました。Wireshark MCPは、その操作を自然言語の指示に置き換え、パケットの中身をAIが要約・分類・異常検知まで踏み込んで説明します。tcpdump mcpという語で探される用途もほぼ同じで、キャプチャの取り込み先がtcpdumpかtsharkかの違いに過ぎません。
向いているのは、インシデント対応時のpcap一次調査、開発中のアプリ通信のトラブルシュート、パケット解析の学習補助です。逆に常時稼働の本番監視や、規制対象データを含む通信の解析には向きません。生パケットは機微情報の塊であり、クラウド側のAIへ無加工で送る運用は避けるべきだからです(詳細は後述のセキュリティ節)。
代表的なWireshark MCP実装と選び方
Wireshark MCPは特定の公式製品ではなく、有志が公開する複数のOSS実装があります。日本語で探されることの多い2系統を、パッケージ名と特徴で整理します。ツールの本数や名称は版によって変わるため、導入前に各リポジトリの最新READMEで確認してください。
| 実装 | 導入パッケージ | 重点 | 外部連携 |
|---|---|---|---|
| bx33661系 | wireshark-mcp |
tshark中心・多機能 | capinfos/mergecap/editcap |
| mixelpixx系 | wireshark-mcp-server |
ライブキャプチャ重視 | Nmap/AbuseIPDB |
選び方の基準はシンプルです。手元のpcapを解析・要約させたいだけなら多機能なwireshark-mcp、ライブキャプチャや外部スキャン・脅威判定まで一気通貫でやりたいならwireshark-mcp-serverが目安になります。後者はNmapや外部APIキーを併用する分、権限とデータ持ち出しの管理コストが上がる点は理解しておきます。いずれもClaude Desktopをはじめ、Claude Code・Cursor・VS Codeなど主要なMCPクライアントから利用できます。
Wireshark MCPの導入手順(tshark・pip・クライアント登録)
前提環境の確認
どの実装もWireshark本体(同梱のtshark)がPATH上にあることを要求します。動作環境はPython 3.10前後(実装により3.8以降)が目安です。Linuxではキャプチャにroot相当の権限が要るため、dumpcapにケーパビリティを付与するか、ユーザーをwiresharkグループに追加してから使います。macOS/Windowsは通常インストールでtsharkが同梱されます。
インストールとクライアント登録
pipでパッケージを入れ、MCPクライアントの設定に登録します。wireshark-mcpには検出済みクライアントを自動設定する導入コマンドが用意されており、手動登録の場合はClaude Desktopの設定ファイルに次のようにmcpServersを追記します。
{
"mcpServers": {
"wireshark": {
"command": "wireshark-mcp-server"
}
}
}
commandには導入したパッケージが提供する実行コマンド名を指定します(上の例はwireshark-mcp-serverを持つmixelpixx系の場合。bx33661系はwireshark-mcp installでクライアントを自動登録できます)。脅威インテリ連携を使う実装では、envにAPIキーを渡す欄が追加されます。設定後はクライアントを再起動して、サーバーがツールとして認識されているかを確認します。
小さなpcapでの動作確認
環境不備を切り分ける診断コマンド(例:wireshark-mcp doctor)を持つ実装なら、まずそれでtshark検出やパスを点検します。問題なければ、AIに小さな.pcapを渡し「プロトコル階層の内訳を出して」と指示して、実際にtsharkの結果が返るかを確かめます。ここまで通れば、以降は自然言語での解析に移れます。
MCPのポート番号とTCP・トランスポートの基礎
「mcp ポート番号」「mcp tcp」で調べる人が最初につまずくのは、MCPに決まったポート番号が存在しない点です。MCPはトランスポート(通信路)を2種類定義しており、どちらを使うかでポートの扱いが変わります。
- stdio:ローカル接続用。サーバーは標準入力(stdin)でJSON-RPCメッセージを受け、標準出力(stdout)で返す。メッセージは改行区切りで、ネットワークポートを一切使わない。Wireshark MCPをClaude Desktopから使う多くのケースはこちら。
- Streamable HTTP:リモート接続用。2025-03-26版の仕様で標準化され、単一のHTTPエンドポイント(POST/GET)上でJSON-RPCをやり取りし、必要に応じてSSEでストリーミングする。旧来の独立したSSEトランスポートはこれに置き換わり非推奨となった。
Streamable HTTPで使うポートは仕様では決まっておらず、サーバー運用者が任意に指定します(実装例として8080や8081がよく使われる程度)。つまり「MCPの正しいポート番号」を探しても公式値は無く、答えは「stdioならポート無し、HTTPなら設定した番号」になります。Wireshark MCPの多くはローカルのstdioで動くため、そもそもポート指定が不要なケースが大半です。
この違いはWiresharkでの観測可否に直結します。stdioのMCP通信は標準入出力のパイプなのでパケットとしては流れず、Wiresharkやtcpdumpでは捕捉できません。ネットワーク上で観測できるのはHTTPトランスポートのMCP通信だけで、ローカルホスト同士でもループバックインターフェース(loなど)を対象にキャプチャすれば、束ねたポート宛のHTTPやり取りを追えます。MCP自体の通信を解析したいのか、pcapの中身をAIに解析させたいのかで、手段がまったく別になる点を押さえておきます。
Wireshark MCPでできるパケット解析の具体例
実装によって差はありますが、AIから呼べるツールはおおむね「取り込み・抽出・統計・検知」に整理できます。自然言語の問いかけと、その裏で動く解析の対応を挙げます。
- 抽出:「このpcapのDNSクエリと宛先を一覧して」→ 表示フィルタでDNS/HTTP/TLSハンドシェイクを抜き出す。
- ストリーム復元:「セッションXのやり取りを復元して」→ TCP/UDPストリームを追跡し会話単位で再構成する。
- 統計:「プロトコル階層と会話上位を出して」→ プロトコル階層・エンドポイント・会話(conversations)を集計する。
- 検知:「不審な挙動は?」→ ポートスキャンやDNSトンネル、認証情報の平文露出などの兆候を洗い出す。
ライブキャプチャに対応する実装では、BPF(Berkeley Packet Filter)で対象を絞ってから取得できます。いずれも内部はtsharkの表示フィルタやオプションに落ちるため、Wiresharkの知識がそのまま精度に効きます。AIは「何を実行し、結果をどう読むか」を担い、キャプチャの妥当性判断は利用者側に残る、という役割分担で使うのが現実的です。MCPサーバー化の一般的な作り方まで踏み込むならFastMCPでPythonのMCPサーバーを構築する手順が参考になります。
Wireshark MCPのセキュリティと運用上の注意
Wireshark MCPで最大の論点は機能ではなくデータの扱いです。生のpcapには認証トークン・Cookie・平文パスワード・個人情報が含まれ得ます。これをクラウド上のAIへ無加工で渡せば、そのまま第三者インフラに機微情報を送ることになります。運用の原則は次の通りです。
- 解析はローカルのstdioサーバーで完結させ、外部送信が発生する構成では扱う範囲を限定する。
- キャプチャ権限は最小化する(Linuxは
dumpcapへのケーパビリティ付与にとどめ、常時root実行にしない)。 - AIに渡す前に表示フィルタで対象プロトコル・ホストに絞り込み、無関係な機微通信を含めない。
- Nmapや外部脅威インテリ連携を使う実装は、スキャン許可と外部APIへのデータ送信範囲を事前に確認する。
これはWireshark MCPに限らずMCPサーバー全般に共通するリスクで、公開ツールを安易につなぐと権限昇格や情報漏えいの入口になります。具体的な攻撃面と対策はPlaywright MCPのセキュリティで整理した危険性と対策が横展開の参考になります。結論として、Wireshark MCPは調査・学習の補助に位置づけ、機微トラフィックの常用監視ツールにはしないのが安全な線引きです。
よくある質問
Wireshark MCPとtcpdump mcpの違いは何ですか?
目的はほぼ同じで、AIにパケット解析をさせるMCPサーバーです。違いは取り込みに使う道具で、Wireshark MCPはtshark、tcpdump系はtcpdumpを土台にします。表示フィルタや詳細なプロトコル解析はtshark側が得意なため、深い解析ならWireshark系が扱いやすい傾向です。
MCPのポート番号はいくつですか?
MCPに公式の固定ポートはありません。ローカル接続のstdioはポートを使わず標準入出力で通信します。リモートのStreamable HTTPを使う場合のみ、サーバー運用者が指定した任意のポート(例:8080など)を使います。
WiresharkでMCPの通信自体をキャプチャできますか?
HTTPトランスポートで動くMCP通信は、対象インターフェース(ローカルならループバック)をキャプチャすれば観測できます。一方、stdioで動くMCPは標準入出力のパイプ経由なのでネットワークには流れず、Wiresharkやtcpdumpでは捕捉できません。
Claude Desktop以外でも使えますか?
使えます。Claude Code・Cursor・VS Codeなど、MCPに対応した主要クライアントから同じサーバーを呼び出せます。設定ファイルのmcpServersにコマンドを登録する要領は各クライアントで共通です。
導入に費用はかかりますか?
代表的な実装はOSSとして公開されており、パッケージ自体は無償で導入できます。ただしライセンスや配布条件は実装ごとに異なるため、業務利用の前に各リポジトリのライセンス表記を確認してください。