mcpField
M
mitmproxy-mcp

mitmproxy-mcp

github.com/moha-abdi開発990 回インストール36 週間前に更新
リポジトリ

mitmproxy-mcp について

mitmproxy-mcp は、mitmproxy を通じて HTTP/HTTPS トラフィックを調査、操作するスキルです。取得済みフローの検索、リクエストの再送や変更、インターセプト中の通信制御に対応し、API デバッグやセキュリティテストに利用できます。

主な機能

  1. 01取得済みフローの絞り込みと確認
  2. 02正規表現によるリクエスト検索
  3. 03リクエストの再送や変更
  4. 04ライブ通信のインターセプトと制御
  5. 05フローの HAR 形式での出力

活用シーン

  1. 01API リクエストのデバッグ
  2. 02HTTP トラフィックの調査
  3. 03リクエスト条件の比較テスト
  4. 04取得済みトラフィックの出力

MCP 対応

http://localhost:9011/sse の MCP サーバーに接続し、mitmproxy の通信を調査、再送、変更、インターセプトするツールを提供します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/moha-abdi/mitmproxy-mcp --skill mitmproxy-mcp

インストール後、Claude Code で/mitmproxy-mcpを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.gitignore
addon.py
README.md
AGENTS.md
LICENSE
pyproject.toml
pytest.ini
.github/workflows/
ci.yml
mitmproxy_mcp/
addon.py
__main__.py
__init__.py
models.py
privacy.py
storage.py
transport.py
view_sync.py
mitmproxy_mcp/tools/
__init__.py
flows.py
config.py
intercept.py
replay.py
tests/
__init__.py
conftest.py
test_config_tools.py
test_transport.py
test_cli.py
test_integration.py
test_privacy.py
test_intercept_tools.py
test_view_sync.py

詳細

mitmproxy-mcp

mitmproxy を通じた HTTP/HTTPS トラフィックの分析、傍受、再生。

前提条件

  • mitmproxy-mcp アドオンを読み込んだ状態で mitmproxy が実行されていること
  • MCP サーバーが http://localhost:9011/sse で利用可能であること(SSE トランスポート)

MCP サーバーに接続されていない場合は、まず mitmproxy を起動するようユーザーに伝えてください。

mitmproxy      # or mitmweb, or mitmdump

~/.mitmproxy/config.yaml で設定されていれば、アドオンと MCP サーバーは自動的に起動します。 依存関係を考慮した起動のため、mitmproxy-mcp install-shims --force を一度実行してシムをインストールしてください。

このスキルを使用する場面

  • HTTP トラフィックの調査、デバッグ、分析をユーザーが求めている場合
  • HTTP リクエストの再生または変更をユーザーが求めている場合
  • パターンに一致するリクエストの傍受をユーザーが求めている場合
  • キャプチャしたトラフィックをエクスポートする必要がある場合(HAR 形式)
  • API のデバッグやセキュリティテストを行う場合

利用可能なツール(20)

フローツール -- キャプチャしたトラフィックの検索
  • get_flows -- キャプチャしたフローを一覧表示します。メソッド、URL パターン、ステータスコードによる絞り込みは任意です。ページネーションには limit と offset を指定できます。
  • get_flow_by_id -- 1 つのフローのリクエストとレスポンスの詳細を取得します
  • search_flows -- URL、メソッド、ステータス、ヘッダーを対象に、正規表現パターンでフローを検索します
  • get_flow_request -- フローのリクエスト部分のみを取得します
  • get_flow_response -- フローのレスポンス部分のみを取得します
  • get_flow_count -- 現在保存されているフローの数を取得します
  • clear_flows -- 保存されているすべてのフローを消去します。同期に clear が含まれる場合は、mitmproxy のフロー表示も消去します
  • export_flows -- フローを HAR 1.2 形式でエクスポートします。特定のフロー ID を指定することもできます。
再生ツール -- リクエストの送信と変更
  • replay_request -- キャプチャしたリクエストをそのまま再生します。ビュー同期に replay が含まれる場合はフロー内で再生し、含まれない場合は独立した再生フローを作成します。
  • send_request -- 新しい HTTP リクエストを送信します。パラメーター:url(必須)、method(デフォルトは GET)、headers、body。
  • modify_and_send -- 既存のフローのメソッド、URL、ヘッダー、本文を変更して送信します。変更パターンのテストに便利です。
  • duplicate_flow -- フローを送信せずに複製します。変更前後の比較に便利です。

mcp_view_sync_actions に replay が含まれる場合(デフォルト:all)、再生ツールのフローは mitmproxy のフロー一覧に反映されます。

傍受ツール -- ライブトラフィックの一時停止と制御
  • set_intercept_filter -- 一致するリクエストを傍受するための mitmproxy フィルター式を設定します。mitmproxy のフィルター構文を使用します:~u example.com、~m POST、~u api & ~m GET。無効にするには空文字列を渡します。
  • get_intercepted_flows -- 現在傍受によって一時停止されているフローを一覧表示します
  • resume_flow -- 傍受中の単一フローを再開します
  • resume_all -- 傍受中のすべてのフローを再開します
  • drop_flow -- 転送せずに傍受中のフローを破棄/終了します
設定ツール -- プロキシ設定
  • get_options -- 現在の mitmproxy オプション値を取得します。特定のキーを渡すか、厳選されたデフォルト値を取得できます。
  • set_option -- 実行時に mitmproxy オプションを設定します。一部の危険なオプション(listen_host、listen_port、mode、server、ssl_insecure)はブロックされています。
  • get_status -- バージョン、リッスンアドレス、モード、フロー数、傍受設定など、プロキシのステータスを取得します。

ワークフローパターン

基本的なトラフィックの調査
  1. mitmproxy が実行中で、対象のトラフィックをプロキシしていることを確認します
  2. get_flows を使ってキャプチャした内容を確認します
  3. get_flow_by_id を使って特定のリクエスト/レスポンスを詳しく調べます
  4. 正規表現を指定して search_flows を使い、特定のパターンを検索します
リクエストの再生と変更
  1. get_flows または search_flows で対象のフローを見つけます
  2. replay_request を使ってそのまま再送信します
  3. または、modify_and_send を使って送信前にヘッダー、本文、URL を変更します
  4. 元のレスポンスと変更後のレスポンスを比較します
ライブトラフィックのインターセプト
  1. set_intercept_filter でフィルターを設定します(例:~u api.example.com & ~m POST)
  2. 条件に一致するリクエストを待ちます。一致したリクエストは一時停止されます
  3. get_intercepted_flows を使って、待機中のリクエストを確認します
  4. resume_flow または drop_flow を使って、それぞれのリクエストを制御します
  5. インターセプトを停止するには、set_intercept_filter に空の文字列を設定します

重要な注意事項

  • 機密データのマスキングはデフォルトで無効です。mitmproxy の設定で mcp_redact: true を有効にすると、トークン、パスワード、API キー、JWT がマスキングされます
  • mcp_view_sync_actions を使って、mitmproxy のビューと同期する内容を制御します(all、none、replay、clear、または replay,clear)
  • コンテキストのオーバーフローを防ぐため、リクエスト/レスポンスの本文は 10KB で切り詰められます
  • すべてのデータはメモリ上にのみ保存され、mitmproxy の停止時に消去されます
  • プロキシはデフォルトで最大 1000 件のフローを保存し、古いものから削除します

コメント