mitmproxy-mcp について
mitmproxy-mcp は、mitmproxy を通じて HTTP/HTTPS トラフィックを調査、操作するスキルです。取得済みフローの検索、リクエストの再送や変更、インターセプト中の通信制御に対応し、API デバッグやセキュリティテストに利用できます。
主な機能
- 01取得済みフローの絞り込みと確認
- 02正規表現によるリクエスト検索
- 03リクエストの再送や変更
- 04ライブ通信のインターセプトと制御
- 05フローの HAR 形式での出力
活用シーン
- 01API リクエストのデバッグ
- 02HTTP トラフィックの調査
- 03リクエスト条件の比較テスト
- 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 と一緒にインストールされる参考資料やスクリプト。
.gitignoreaddon.pyREADME.mdAGENTS.mdLICENSEpyproject.tomlpytest.ini.github/workflows/ci.ymlmitmproxy_mcp/addon.py__main__.py__init__.pymodels.pyprivacy.pystorage.pytransport.pyview_sync.pymitmproxy_mcp/tools/__init__.pyflows.pyconfig.pyintercept.pyreplay.pytests/__init__.pyconftest.pytest_config_tools.pytest_transport.pytest_cli.pytest_integration.pytest_privacy.pytest_intercept_tools.pytest_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-- バージョン、リッスンアドレス、モード、フロー数、傍受設定など、プロキシのステータスを取得します。
ワークフローパターン
基本的なトラフィックの調査
- mitmproxy が実行中で、対象のトラフィックをプロキシしていることを確認します
get_flowsを使ってキャプチャした内容を確認しますget_flow_by_idを使って特定のリクエスト/レスポンスを詳しく調べます- 正規表現を指定して
search_flowsを使い、特定のパターンを検索します
リクエストの再生と変更
get_flowsまたはsearch_flowsで対象のフローを見つけますreplay_requestを使ってそのまま再送信します- または、
modify_and_sendを使って送信前にヘッダー、本文、URL を変更します - 元のレスポンスと変更後のレスポンスを比較します
ライブトラフィックのインターセプト
set_intercept_filterでフィルターを設定します(例:~u api.example.com & ~m POST)- 条件に一致するリクエストを待ちます。一致したリクエストは一時停止されます
get_intercepted_flowsを使って、待機中のリクエストを確認しますresume_flowまたはdrop_flowを使って、それぞれのリクエストを制御します- インターセプトを停止するには、
set_intercept_filterに空の文字列を設定します
重要な注意事項
- 機密データのマスキングはデフォルトで無効です。mitmproxy の設定で
mcp_redact: trueを有効にすると、トークン、パスワード、API キー、JWT がマスキングされます mcp_view_sync_actionsを使って、mitmproxy のビューと同期する内容を制御します(all、none、replay、clear、またはreplay,clear)- コンテキストのオーバーフローを防ぐため、リクエスト/レスポンスの本文は 10KB で切り詰められます
- すべてのデータはメモリ上にのみ保存され、mitmproxy の停止時に消去されます
- プロキシはデフォルトで最大 1000 件のフローを保存し、古いものから削除します
コメント
Markdown 対応