mcpField
P
pcapport

pcapport

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

pcapport について

pcapportは、ネットワーク運用担当者や開発者向けのローカルPCAP解析ツールです。通信プロトコルやTCPの状態を集計し、ネットワーク接続やライブキャプチャなしで、従来形式のlibpcapファイルを調べられます。MCPツールとコマンドラインを提供します。

主な機能

  1. 01DNS、DHCP、ICMP、SIPの集計
  2. 02TCP接続と異常の解析
  3. 03再送と通信フローの解析
  4. 04キャプチャ情報とパケット統計
  5. 05ローカルファイルのオフライン処理

活用シーン

  1. 01キャプチャ内のDNS・DHCP通信の確認
  2. 02TCPリセット、ハーフオープン接続、再送の調査
  3. 03指定サーバーとの送受信量の集計
  4. 04キャプチャ時間、サイズ、カプセル化の確認

MCP 対応

stdio MCPサーバーとして動作し、PCAPファイルを解析する9つのツールを公開します。DNS、DHCP、ICMP、TCP、SIP、通信フロー、キャプチャ情報を扱います。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-pcapport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/pcapport"
]
}
}
}
起動コマンドnpx -y @reneturcios/pcapport

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/pcapport0.1.0
ocighcr.io/cloudcorprecords/pcapport:0.1.0

ツール

9

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
pcap_filestringはい読み込むパケットキャプチャファイルのパス。

詳細

pcapport

pcapport は、PCAP キャプチャファイルをすべてお使いのマシン上で解析します。 classic libpcap ファイルを指定すると、その内容を要約します。 DNS の問い合わせと応答コード、DHCP のメッセージタイプと関連するサーバーおよびクライアント、ICMP トラフィック、状態を推定した TCP 接続、TCP の異常や再送、特定のサーバーとの間のトラフィックフロー、SIP 通話のほか、パケット数、継続時間、カプセル化などの基本的なキャプチャ情報を確認できます。

ネットワークアクセス、API キー、ライブキャプチャは必要ありません。このツールは指定されたキャプチャファイルを読み取るだけです。パーサーは独自の最小限の実装で、Ethernet(単一の VLAN タグを含む)と、IPv4 を含む raw-IP キャプチャに対応しています。TCP、UDP、ICMP をデコードし、DNS、DHCP、SIP のペイロードを解析します。

インストール

npx @reneturcios/pcapport analyze_capinfos '{"pcap_file":"capture.pcap"}'

または、コンテナイメージを実行します。

docker run -i ghcr.io/cloudcorprecords/pcapport

コンテナはデフォルトで MCP サーバーとして起動します。CLI として使用するには、CLI 引数を渡してください。

CLI

CLI は各ツールに対応するサブコマンドを用意しており、それぞれの引数を単一の JSON オブジェクトとして受け取ります。

pcapport analyze_capinfos '{"pcap_file":"capture.pcap"}'
pcapport analyze_dns_packets '{"pcap_file":"capture.pcap"}'
pcapport analyze_tcp_connections '{"pcap_file":"capture.pcap","detailed":true}'
pcapport analyze_tcp_retransmissions '{"pcap_file":"capture.pcap","threshold":0.05}'
pcapport analyze_traffic_flow '{"pcap_file":"capture.pcap","server_ip":"10.0.0.5","server_port":80}'
pcapport --version

終了コード:成功時は 0、エラー時は 1(不正な PCAP マジックナンバーやファイルの切り詰めなど、問題の内容が示されます)、使用方法のエラー時は 2 です。空のキャプチャはエラーではありません。ツールはすべての値をゼロにした要約を返します。

MCP サーバー

1 つのバイナリで両方の用途に対応します。mcp サブコマンドを実行すると、stdio MCP サーバーが起動します。

npx -y @reneturcios/pcapport mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "pcapport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/pcapport", "mcp"]
    }
  }
}
ツール
ツール入力機能
analyze_dns_packetspcap_file(必須)DNS の問い合わせ数と応答数、上位の問い合わせ(集計、上位 20 件)、応答コードの概要を返します。
analyze_dhcp_packetspcap_file(必須)メッセージタイプ(discover、offer、request、ack など)別の DHCP パケット数、サーバー IP、クライアント MAC アドレスを返します。
analyze_icmp_packetspcap_file(必須)タイプ別の ICMP 数、エコー要求/応答数、到達不能数、通信量上位の送信元を返します。
analyze_tcp_connectionspcap_file(必須)、server_ip、server_port、detailed正規化された 4 タプルをキーとして、クライアント/サーバー、パケット数、バイト数、SYN/FIN/RST 数、状態の推定値(established、closed、reset、half-open)を含む接続情報を返します。detailed を指定すると、接続ごとのタイムスタンプ概要も含まれます。
analyze_tcp_anomaliespcap_file(必須)、server_ip、server_portフラグとウィンドウフィールドから算出した、リセットされた接続、half-open 接続(SYN はあるが SYN-ACK がない)、データのない接続、ゼロウィンドウ通知の数を返します。
analyze_tcp_retransmissionspcap_file(必須)、server_ip、threshold(デフォルト:0.02)再送とは、同じ(タプル、シーケンス番号、ペイロード長)のデータセグメントです。データセグメント数、再送数、再送率、しきい値を超えているかどうか、および再送が最も多い接続を返します。
analyze_traffic_flowpcap_file(必須)、server_ip(必須)、server_portサーバーとの間のパケット数とバイト数、一意なクライアント数、バイト数順の上位クライアントを返します。
analyze_sip_packetspcap_file(必須)メソッド別の SIP リクエスト、ステータスクラス別の応答、通話(Call-ID、From、To)を返します。ポート 5060 のペイロードに加え、SIP メソッドまたは SIP/2.0 で始まるペイロードも対象です。
analyze_capinfospcap_file(必須)パケット数、継続時間、データバイト数、平均パケットサイズ、最初/最後のパケット時刻、カプセル化、キャプチャ長を返します。

対象範囲と制限

パーサーが対応するのは classic libpcap のみです(ビッグエンディアン/リトルエンディアン、マイクロ秒/ナノ秒のタイムスタンプ)。pcapng には対応していません。デコード対象は IPv4 のみです。IPv6 やその他のイーサタイプはパケット総数には含まれますが、解析されません。TCP ストリームの再構成は行わないため、TCP 上の SIP はセグメントごとに照合され、TLS ペイロードの内容は解析されません。異常や状態の推定は意図的に単純化した近似であり、tshark レベルの完全な解析に代わるものではありません。

開発

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, synthetic captures only, no network
npm run dev     # run the CLI from source via tsx

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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