mcpField
H
har-forensics-mcp

har-forensics-mcp

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

har-forensics-mcp について

har-forensics-mcp は、エディター内でローカルの HAR を監査する MCP サーバーです。情報漏えいの可能性やサードパーティを特定し、通信を行わずにマスキング済みのレポートを生成します。

主な機能

  1. 01ディスク上の HAR を検索
  2. 02マスキング済み監査概要の生成
  3. 03ベンダーと読み込み元の調査
  4. 04パフォーマンスと CSP の分析
  5. 05リクエストの検索・比較・確認
  6. 06サニタイズ済み HAR の出力

活用シーン

  1. 01キャプチャ内の認証情報漏えいを確認
  2. 02サードパーティとその依存先を特定
  3. 03キャプチャ間の新規ベンダーや性能劣化を比較
  4. 04チケット添付用のマスキング済み HAR を用意

MCP 対応

stdio 経由で MCP クライアントに HAR 分析ツールを提供します。ローカルファイルを読み取り、ネットワーク通信は行いません。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"aryanspv-har-forensics": {
"command": "npx",
"args": [
"-y",
"har-forensics-mcp"
]
}
}
}
起動コマンドnpx -y har-forensics-mcp

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

パッケージ
npmhar-forensics-mcp0.3.2

ツール

13

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

パラメーター型必須説明
pathstringはいこのマシン上にある .har ファイルの絶対パスまたは相対パス。

詳細

har-forensics-mcp

エディター内から .har キャプチャを監査します。他の HAR ツールはリクエストの一覧を表示します。このツールは、ファイルを開いた目的である「何が漏えいしたか」「ページ上にいるのは誰か」「どこかに送る前に何を取り除くべきか」という問いに答えます。

ローカルディスクからファイルを読み取り、解析して、標準出力に書き込みます。ネットワーク通信は一切行いません。これが重要な理由は、本物のキャプチャには有効なセッション Cookie や Authorization ヘッダー、場合によってはカード番号が含まれているためです。

MCP over stdio に対応するあらゆるツールで動作します — Cursor、Claude Code、Windsurf、Zed、VS Code Copilot。

セットアップ

Claude Code:

claude mcp add --scope user har-forensics -- npx -y har-forensics-mcp

--scope user を指定すると、すべてのディレクトリで登録されます。指定しない場合、サーバーはコマンドを実行したディレクトリに限定されます。コマンドは成功したと表示されますが、他のディレクトリではツールが何も表示されないまま利用できません。

Cursor — プロジェクト内の .cursor/mcp.json、またはグローバル設定の ~/.cursor/mcp.json:

{
  "mcpServers": {
    "har-forensics": {
      "command": "npx",
      "args": ["-y", "har-forensics-mcp"]
    }
  }
}

Windsurf/Zed/VS Code Copilot では、それぞれの MCP 設定ファイルで同じ command + args の形式を使用します。

エディターを再起動してから、ツールにキャプチャを指定します:

~/Downloads/checkout.har に対して analyze_har を実行してください

Node 20+ が必要です。それ以外は不要です — クローンも、ビルドも、API キーも、アカウントも必要ありません。

ツール

ツール答えられること
find_captures「.har ファイルはどこにありますか?」 — Downloads、Desktop、Documents、cwd、一時ディレクトリを検索します。
analyze_har「このキャプチャには何が含まれていますか?」 — トリアージ概要と、各チェックの判定を表示します。まずはこちらから。
har_brief監査全体を、編集済みの Markdown として表示します。引用や貼り付けに使う成果物です。
har_findings重要度の高い順に検出事項を表示します。重要度によるフィルターとページ分けに対応します。
har_vendorsすべてのサードパーティを、影響範囲に基づく 0~100 のスコアと HTTP Archive の精査レベルとともに表示します。
har_provenance誰が誰を読み込んだか — 利用中のベンダーが呼び込んだフォースパーティを表示します。
har_perf「なぜ遅かったのか?」 — 支配的なフェーズごとの最遅リクエスト、オリジンごとのハンドシェイクコスト、非圧縮アセット、リダイレクトによる時間損失を表示します。
har_csp観測されたトラフィックから、Content-Security-Policy のたたき台を生成します。
har_huntリクエストを検索します — is:thirdparty、status:>=400、type:script、host:…。エントリーのインデックスを返します。
har_entry1 件のリクエストに関するすべての情報を表示します:ヘッダー、Cookie、本文、タイミングフェーズ。
har_curl認証情報をマスクして、そのリクエストを実行可能な cURL または fetch() として表示します。
har_diff変更前と変更後を比較します:追加されたもの、悪化した項目、新たに追加されたサードパーティを表示します。
sanitize_harチケットに添付しても安全な .redacted.har を書き出します。

har_hunt → har_entry → har_curl が一連の流れです。リクエストを見つけ、読み、再現します。リストを返す各ツールは limit を受け取り、合計件数を示すため、先頭ページだけを全件のように返すことはありません。

sanitize_har を除くすべてのツールには readOnlyHint が付与され、すべてのツールで openWorldHint: false となっています — 以下のネットワーク通信なしの保証を、信頼してほしいと文章で求めるのではなく、クライアントが読み取って動作に反映できる形式で示しています。

Web アプリから引き継いだ 3 つの特性

ネットワーク通信をしません。 アナライザーに fetch はなく、このトランスポートも追加しません。この不変条件こそが、この製品の特長です。Cloudflare は 2026 年 3 月、HTTP トラフィック内の HAR ファイルを検出し、管理者がアップロードを完全にブロックできる DLP プロファイルをリリースしました。サニタイズされていない HAR は、認証情報を窃取する経路として知られているためです。

ダンプではなく、サマリーを返します。 すべてのツールは生のエントリーではなく、レンダリングされた結論を返します。また、すべてのリストには上限があり、合計件数も明記されます。このツールが必要とされるキャプチャは、数万件のエントリー、数百メガバイトに及ぶことがあります。エントリーのリストをエージェントに渡せば、コンテキストを使い切り、アナライザーがすでに済ませた作業に時間がかかってしまいます。(この約束は 0.2.0 までコードで守られていませんでした。har_findings に上限がなく、10,000 件のキャプチャで約 93,000 トークンを返していました。27 件のデモでは約 175 トークンしか返らず、だからこそ見過ごされていました。)

デフォルトで秘匿化します。 har_brief と har_findings は、ブラウザーのエクスポートで使われているものと同じレダクターを経由します。これは、共有の秘密情報パターンテーブルを 1 つ使って構築されています。エディターでキャプチャを読むエージェントは、ダウンロードフォルダーを使う人間よりも、検出結果をチャットウィンドウに貼り付ける可能性が高いからです。

このツールが行わないこと

  • 既存のファイルを上書きしません。 sanitize_har は、既存の出力先や元のキャプチャへの書き込みを拒否します。
  • 約 512 MB を超えるファイルを読み込みません。 OOM を起こすままにせず、ガードで防止します。ファイル全体を 1 つの文字列として読み込むため、V8 の最大文字列長をわずかに下回る値に固定しています。
  • 理解できなかったクエリに答えません。 フィルターの誤字(is:third-party、staus:404)はエラーになり、空の結果にはなりません。0.2.0 まではどちらも同じ応答だったため、誤字によってキャプチャに問題がないと誤って報告される可能性がありました。
  • 手元の時計を基準に時刻を判定しません。 HAR は過去の記録なので、トークンの有効期限は各エントリーの startedDateTime を基準に測定します。現在時刻と比較すると、1 週間前のキャプチャに含まれるすべてのトークンが期限切れと判定され、ブラウザーが送信した時点ですでに本当に無効だったトークンが埋もれてしまいます。

コードを読む

このパッケージには dist/server.js というファイルが 1 つ含まれています。意図的に圧縮していません。ビルドでは、サイズを解析する機械よりも、エディター連携をデバッグする人間が読む機会のほうがはるかに多いファイルとして扱っているためです。そのため、これはビルドで生成されるものと同じコードであり、すでにビルド済みです。クローンする別個のソースリポジトリはありません。配布されているファイルそのものが監査対象です。

ライセンス

MIT。バンドルされているベンダーデータは third-party-web から生成されています。ライセンスは MIT、Copyright (c) 2017 Patrick Hulce。HTTP Archive を基にしています。

コメント

MCP は初めてですか?

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

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