Madhyamas Proxy — AIエージェントガイド
Madhyamasは、Rustで構築されたオープンソースのHTTP/HTTPSデバッグプロキシです。クライアントとサーバー間のトラフィックをキャプチャ、検査、操作します。統合されたmadhyamasバイナリは、プロキシサーバー、Web UI、MCPサーバー、CLIを提供します。
クイックスタート
# 1. インストール(いずれかを選択)
cargo install madhyamas # crates.ioから
cargo build --release -p madhyamas # ソースから
# またはGitHub Releasesからビルド済みバイナリをダウンロード
# 2. プロキシサーバーを起動
madhyamas serve
# プロキシは :8888 で、API/Web UIは :3001 で待ち受け
# 3. 確認
curl http://localhost:3001/api/health
# 戻り値: OK
クライアントがプロキシlocalhost:8888を使用するように設定してください。HTTPSインターセプションを行うには、~/.madhyamas/certs/madhyamas-ca.pemからCA証明書をインストールします(またはGET /api/cert/caでダウンロード)。
詳細なインストール、設定、CA証明書のセットアップについては、references/setup.mdを参照してください。
インターフェースの選択
Madhyamasは3つのインターフェースを公開しています。状況に応じて適切なものを使用してください。
| インターフェース | 使用するタイミング | セットアップ | リファレンス |
|---|---|---|---|
| MCPツール | MCP対応エージェント(Claude Desktop、Windsurfなど)内で使用 | madhyamas mcp(stdioトランスポート) | references/mcp-tools.md |
| CLIコマンド | シェルアクセス、スクリプティング、端末ベースのエージェントで使用 | madhyamas <command> <subcommand> | references/cli-commands.md |
| REST API | 細かい制御、カスタムスクリプト、直接HTTPアクセス | curl http://localhost:3001/api/... | references/rest-api.md |
3つのインターフェースはすべて同じ基盤機能を公開しています。MCPツールとCLIコマンドはREST APIのラッパーです。
重要な概念
- プロキシポート: プロキシは
:8888(HTTP/HTTPSトラフィック)、API/UIは:3001 - CA証明書:
~/.madhyamas/certs/に自動生成。HTTPSインターセプションのためにシステムのトラストストアにインストール - セッション: トラフィックを名前付きセッションに整理。デフォルトセッションが自動作成
- キャプチャモード: 記録(デフォルト)はトラフィックをキャプチャし、パススルーは記録せずに転送
- インターセプションパイプライン順序: リライト(優先度10)→ モック(20)→ ブレークポイント(30)→ スロットル(40)
- データディレクトリ:
~/.madhyamas/にはcerts/、logs/、traffic.db(SQLite)が含まれる - MCPサーバー:
madhyamas mcpを実行してstdioベースのMCPトランスポートを起動。MADHYAMAS_API_URLを設定して実行中のプロキシインスタンスに接続
コアワークフロー
| ワークフロー | 説明 | リファレンス |
|---|---|---|
| セットアップ | インストール、設定、クライアント接続、CA証明書のインストール | setup.md |
| トラフィック検査 | キャプチャしたHTTP/HTTPSトラフィックの一覧表示、フィルタリング、検索、分析 | traffic-inspection.md |
| モックレスポンス | モックルールを作成してインターセプトし、偽のレスポンスを返す | mocking.md |
| ブレークポイント | リクエスト/レスポンスを一時停止して検査・変更 | breakpoints.md |
| リライト | 一致するトラフィックのURL、ヘッダー、本文を変更 | rewrites.md |
| スロットリング | 遅い/不安定なネットワーク状態をシミュレート | throttling.md |
| リプレイ | キャプチャしたリクエストを変更して再実行 | replay.md |
| セッション | デバッグセッションの作成、切り替え、エクスポート、インポート | sessions.md |
| gRPC検査 | gRPC接続、ストリーム、フレームの検査(実験的) | grpc.md |
| スクリプティング | JS/TSスクリプトでトラフィック操作を自動化(実験的) | scripting.md |
| プラグイン | 拡張機能のためのRustプラグイン管理(実験的) | plugins.md |
| WebSocket | WebSocket接続のトラフィックとメッセージを検査 | websockets.md |
| エクスポート/インポート | HARエクスポート、cURLエクスポート、ルールの永続化 | export-import.md |
| トラブルシューティング | 証明書エラー、ポート競合、DBロック、TLS障害 | troubleshooting.md |
| ハーネスセットアップ | Claude、Windsurf、CursorなどでMCPを設定 | harness-setup.md |
リファレンスインデックス
| ファイル | 読むタイミング |
|---|---|
references/setup.md | 初回セットアップ、インストール、CA証明書、クライアント設定 |
references/mcp-tools.md | パラメータ付きの全67のMCPツールの完全リファレンス |
references/cli-commands.md | フラグ付きの全58のCLIサブコマンドの完全リファレンス |
references/rest-api.md | 130以上のREST APIエンドポイントの完全リファレンス |
references/traffic-inspection.md | キャプチャしたトラフィックのフィルタリング、検索、分析 |
references/mocking.md | モックレスポンスの作成と管理 |
references/breakpoints.md | トラフィックの一時停止と変更 |
references/rewrites.md | URL/ヘッダー/本文の書き換えルール |
references/throttling.md | ネットワーク状態のシミュレーション |
references/replay.md | リクエストの再生と保存 |
references/sessions.md | セッション管理 |
references/grpc.md | gRPCトラフィック検査 |
references/scripting.md | JavaScript/TypeScriptスクリプティング |
references/plugins.md | プラグイン管理 |
references/websockets.md | WebSocketトラフィック検査 |
references/export-import.md | HAR/cURLエクスポート、永続化 |
references/troubleshooting.md | 一般的な問題と解決策 |
references/harness-setup.md | ハーネスごとのMCP設定 |
MCPサーバーのセットアップ
AIエージェント統合用にMCPサーバーを実行します。
madhyamas mcp # stdioトランスポート、localhost:3001に接続
MADHYAMAS_API_URL=http://host:3001 madhyamas mcp # カスタムAPI URL
エージェントのMCP設定に追加:
{
"mcpServers": {
"madhyamas": {
"command": "/path/to/madhyamas",
"args": ["mcp"],
"env": { "MADHYAMAS_API_URL": "http://127.0.0.1:3001" }
}
}
}
ハーネス別の設定(Claude Desktop、Windsurf、Cursor、OpenCode、CommandCode、Devin)については、references/harness-setup.mdを参照してください。
よくあるパターン
失敗したAPI呼び出しのデバッグ:
- プロキシを起動:
madhyamas serve - クライアントをプロキシ使用に設定
- 問題を再現
- トラフィックを検査:
madhyamas traffic list --status 500またはMCPmadhyamas_get_trafficでstatus=500 - 詳細を取得:
madhyamas traffic get <id>またはMCPmadhyamas_get_traffic_entry
APIエンドポイントのモック:
- モックを作成:
madhyamas mocks create --url-pattern "*/api/auth*" --status-code 200 --body '{"token":"fake"}' - またはMCP:
madhyamas_create_mockでurl_pattern="*/api/auth*"、status_code=200、body='{"token":"fake"}' - クライアントからモックされたエンドポイントをテスト
低速ネットワークでのテスト:
- スロットルを有効化:
madhyamas throttle set --download-bps 50000 --delay-ms 200 && madhyamas throttle enable - またはMCP:
madhyamas_set_throttleでdownload_bps=50000, delay_ms=200, enabled=true - ワークフローを再現して低速状態での動作を確認