mcpField
M
MCP Wireshark

MCP Wireshark

ローカル
github.com/khuynh22セキュリティ6614 週間前に更新

MCP Wireshark について

mcp-wireshark は、AI アシスタントから Wireshark と tshark の機能を直接利用できるようにする、コミュニティで保守されている MCP サーバーです。ネットワークトラフィックを分析するユーザーを対象とし、.pcap ファイルの解析やライブキャプチャに対応します。pip でインストールでき、読み取り専用ツールとトラフィックの取得やファイル書き込みを行うツールを分けています。

主な機能

  1. 01pcap / pcapng ファイルの解析と要約
  2. 02Wireshark の表示フィルターによる絞り込み
  3. 03TCP / UDP ストリームの追跡とペイロードの取得
  4. 04IEC 61850 GOOSE、SV、MMS の状態診断
  5. 05時間とパケット数に上限を設けたライブキャプチャ
  6. 06パケットの JSON エクスポート

活用シーン

  1. 01未知のキャプチャファイルの概要をアシスタントに確認する
  2. 02HTTP や DNS などの特定プロトコルに絞り込む
  3. 03変電所の GOOSE・SV トラフィックのシーケンス欠落を調査する

MCP 対応

このプロジェクトは MCP サーバーであり、MCP クライアントに 14 個のツールを公開します。読み取りツールは状態の確認のみを行い、書き込みツールはキャプチャや書き込みを実行します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

mcp-wireshark

Wireshark/tshark 用のコミュニティ運営 MCP サーバーです。Wireshark または Anthropic とは提携していません。 AI アシスタントからパケットキャプチャに直接アクセスできます。Claude に .pcap の要約、TCP ストリームの追跡、特定のプロトコルのフィルタリング、ライブトラフィックのキャプチャなどをチャットから離れずに依頼できます。

mcp-wiresharkを使用してキャプチャを分析するClaude

PyPI version CI License: MIT Python 3.10+


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_installationtshark がインストールされていることを確認し、バージョンを表示します
list_interfacesキャプチャに使用できるネットワークインターフェースを一覧表示します
read_pcap.pcap/.pcapng ファイルからパケットを読み込みます(プレビューと総数)
display_filterpcap に Wireshark のディスプレイフィルターを適用します
summarize_pcap概要サマリー:I/O 統計、プロトコル階層、通信量上位のホスト
stats_by_protoプロトコル階層の統計
follow_tcpTCP ストリームを再構成し、そのペイロードを返します
follow_udpUDP ストリームを再構成し、そのペイロードを返します
expert_infotshark のエキスパート分析:重大度別に分類された警告、エラー、注記
decode_protocolプロトコルフィールドを TSV テーブルとして抽出します。HTTP、DNS、TLS、GOOSE、MMS、SV、SIP、ICMP には厳選したデフォルトを使用し、それ以外のプロトコルでは任意のフィールドを指定できます
protocol_stats-z レポート(プロトコル階層、会話、エンドポイント、HTTP/DNS/SMB 統計)を集計します
analyze_iec61850GOOSE/SV/MMS キャプチャの健全性トリアージ:シーケンス番号の欠落(sqNum/stNum)、TTL 違反、smpCnt の不連続、同期の喪失、MMS エラーについて、ソースごとに OK/WARN/FAIL を返します
書き込みツール

これらのツールはファイルを作成したり、ライブトラフィックをキャプチャしたりします。準拠クライアントでは、実行前に確認を求める場合があります。

ツール機能
live_captureインターフェースからライブトラフィックをキャプチャします(最大5分/10kパケット)
export_jsonpcapのパケットを、指定したパスのJSONファイルにエクスポートします

動作の様子

以下のクリップでは、demo/demo.pcapng(短時間のホームネットワークのキャプチャ)に対して実際のツールを実行しています。python demo/render_gif.py <scene> で再生成できます。

summarize_pcap — 不明なキャプチャの特徴を一目で把握します

summarize_pcap のデモ

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

decode_protocol のデモ

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

expert_info のデモ


プロンプトの例

以下をそのまま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 == 80HTTP
tcp.port == 443HTTPS
dnsすべてのDNS
http.requestHTTPリクエストのみ
ip.addr == 10.0.0.1特定のホストとの間のトラフィック
tcp.flags.syn == 1 && tcp.flags.ack == 0TCP 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 に追加します。

  1. Win+R を押し、sysdm.cpl を実行して、詳細設定 → 環境変数を選択します
  2. Path を編集し、C:\Program Files\Wireshark を追加します
  3. ターミナルと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 を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。