SharkMCP は何をしますか?
自然言語でネットワークキャプチャを分析できるように、sharkd を LLM に MCP サーバー経由で接続します。
概要
SharkMCP は、sharkd(Wireshark の解析エンジン)を MCP(Model Context Protocol)サーバーとしてラップし、LLM エージェントからネットワークパケットキャプチャファイルを分析できるようにします。
前提条件
- Python 3.10 以上
- Wireshark(
sharkdバイナリにアクセスできること) - Claude Desktop、Cursor、Codex などの MCP 対応クライアント
インストール
pip install sharkmcp
または、このリポジトリから直接インストールします:
git clone https://github.com/Spokeswomandodgecity658/SharkMCP.git
cd SharkMCP
pip install -e .
設定
sharkd バスの設定
環境変数 SHARKD_PATH を設定して sharkd バイナリへのパスを指定します(デフォルト:sharkd)。
export SHARKD_PATH=/usr/bin/sharkd
MCP サーバーの起動
sharkmcp serve
デフォルトでは、サーバーは localhost:8080 でリッスンします。ポートは --port フラグで変更できます。
sharkmcp serve --port 9090
MCP ツール
SharkMCP は以下の MCP ツールを公開します:
| ツール名 | 説明 |
|---|---|
analyze_capture | pcap/pcapng ファイルを分析し、自然言語クエリに基づいてパケット情報を返します |
list_interfaces | キャプチャファイルで利用可能なインターフェースを一覧表示します |
get_statistics | キャプチャに関する統計情報(パケット数、プロトコル分布など)を取得します |
filter_packets | 指定した表示フィルターに基づいてパケットをフィルタリングします |
使用例
Claude Desktop で使用する場合:
- 上記のように SharkMCP サーバーを起動します。
- Claude Desktop 設定に MCP サーバーを追加します:
{
"mcpServers": {
"sharkmcp": {
"command": "sharkmcp",
"args": ["serve"],
"env": {
"SHARKD_PATH": "/usr/bin/sharkd"
}
}
}
}
- 次に、Claude に次のような質問ができます:
- "HTTP トラフィックのみを表示して"
- "DNS クエリの統計を教えて"
- "この pcap 内のすべての TCP フローを分析して"
開発
依存関係のインストール:
pip install -e ".[dev]"
テストの実行:
pytest
ライセンス
MIT