proxy-optimizer について
proxy-optimizerは、特定のWebサイトに対してWebshareのプロキシプールを検査・調整するスキルです。国、ASN、サブネット別に失敗を分析し、ドライランと明示的な確認の後、Webshare MCPでブロックされたIPを置き換えます。
主な機能
- 01対象サイトに対するプロキシ検査
- 02国・ASN・サブネット別の失敗分析
- 03全件またはサンプルのテスト
- 04ドライランによる置き換えのプレビュー
- 05確認後のブロックIP置き換え
活用シーン
- 01対象サイトへのプロキシプールの接続確認
- 02失敗が集中するネットワーク領域の特定
- 03ブロックされたIPの置き換えと事前確認
MCP 対応
特定IPの置き換えにはWebshare MCPのcreate_proxy_replacementツールを使用します。実行前にドライランと明示的な確認が必要です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ webshare-proxy/ skills --skill proxy-optimizerインストール後、Claude Code で/proxy-optimizerを入力して読み込まれたか確認します。
同梱ファイルreferences/USECASES.mdscripts/optimize_proxies.py
詳細
ターゲットサイトプロキシオプティマイザー
ブロックされたプロキシをテスト、分析、置換して、特定のターゲットサイト向けに Webshare プロキシプールを最適化します。
呼び出し
/proxy-optimizer https://www.example.com
引数には、プロキシを最適化する対象の URL を指定します。
このスキルで行うこと/必要なもの/行わないこと
行うこと: すべてのプロキシをターゲットに対してテストし、国/ASN/サブネット別に失敗を分類して、ブロックされた IP を確認済みのうえで、ドライランを先に実施して置換します。
必要なもの:
WEBSHARE_API_KEYをエクスポートした状態のwebshareCLI(brew install webshare-proxy/tap/webshare)。プランとプロキシの取得にこの CLI を使います。webshare whoamiで確認してください。- Python 3.10 以降。
- 置換の実行時のみ:Webshare MCP サーバーが接続されていること(
claude mcp add --transport http webshare https://mcp.webshare.io/ -H "Authorization: Token $WEBSHARE_API_KEY")、および置換クレジットのある有効な有料プラン。IP ごとの対象指定置換はまだ CLI に実装されていないため、この手順に限り MCP のcreate_proxy_replacementを使用します。
行わないこと:
- ドライランと明示的な確認なしにプロキシを置換すること。
- プール全体の更新。これは
webshare proxies refreshの用途です(proxy-managerスキルを参照)。オンデマンド更新を消費します。 - IP ごとの住宅用ローテーションプールのテスト(プロキシごとに固定アドレスがないため)。
ワークフロー
ステップ 1:プロキシ数を確認し、サンプリングについて尋ねる
プランとその規模を確認します。
webshare plans list --json
プランに 50 を超えるプロキシがある場合は、ユーザーに尋ねます。
「プランには N 個のプロキシがあります。すべてテストしますか、それともサンプルをテストしますか?」
選択肢:
- N 個すべてのプロキシ(時間がかかります)
- 20 個のサンプル(簡易チェック)
- 50 個のサンプル
50 個以下の場合、この質問は省略してすべてテストします。
ステップ 2:オプティマイザースクリプトを実行する
このスキルのディレクトリからスクリプトを実行します。
python3 scripts/optimize_proxies.py --target <TARGET_URL> --workers 10 --timeout 15
ユーザーがサンプルを選んだ場合は、--sample N を追加します。プランを指定するには、--plan-id <id> を追加します。スクリプトは webshare CLI 経由でプランとプロキシリストを取得し、進捗を stderr に、構造化された JSON を stdout に出力します。JSON 出力を解析してください。
ステップ 3:調査結果を報告する
結果をユーザーに提示します。
Proxy Optimization Report for <TARGET_URL>
Success rate: X% (N/M proxies working)
Problem areas:
- Countries: <list countries with failure rates>
- ASNs: <list ASNs with failure rates>
- Subnets: <list /24 subnets with failure rates>
Failed proxies: <count>
Replacement credits available: <count>
成功率が 100% の場合は、すべてのプロキシが動作しており、対応は不要だと報告します。ここで終了します。
ステップ 4:詳細を確認するかユーザーに尋ねる
ユーザーに尋ねます。「置換する前に、失敗しているプロキシを確認しますか?」
はいの場合、JSON 出力の raw_results にある、失敗したすべてのプロキシについて、IP、国、ASN、エラー、レイテンシを表にして表示します。例:
| IP | Country | ASN | Error | Latency |
|-----------------|---------|----------------------|-----------------|---------|
| 82.27.245.138 | ZA | Xneelo | 502 Bad Gateway | 396ms |
| 82.27.246.135 | ZA | Xneelo | 502 Bad Gateway | 413ms |
| 104.143.224.192 | GB | Getechbrothers, Mb | HTTP 429 | 808ms |
次に尋ねます。「これらのプロキシを置換しますか?(まずドライランを実行します)」
ユーザーが断った場合や一部をスキップしたい場合は、その意向に従います。ユーザーが確認した IP のみ処理を進めてください。
ステップ 5:置換のドライラン
失敗があり、かつユーザーに置換クレジットがある場合は、Webshare MCP を使って置換のドライランを実行します。
スクリプトの recommendations.mcp_actions 出力にあるパラメーターを使って、create_proxy_replacement MCP ツールを使用します。
plan_id:スクリプトの出力から取得to_replace:{"type": "ip_address", "ip_addresses": [<failed IPs>]}replace_with:[{"type": "any"}]dry_run:true
ドライランの結果を提示します。
Dry-run preview:
- Proxies to remove: <count>
- Proxies to add: <count>
Proceed with replacement? (This will use <N> replacement credits)
ステップ 6:置換を実行する(ユーザーの確認が必要)
重要:実行する前に、必ずユーザーに明示的な確認を求めてください。
ユーザーが確認した場合は、dry_run: false を指定して、再度 create_proxy_replacement を呼び出します。
次に、返された id を使って get_proxy_replacement をポーリングし、state が completed または failed になるまで確認します。
ステップ 7:検証する
同じターゲットに対してオプティマイザースクリプトを再実行し、置換によって成功率が向上したことを確認します。
置換前後を比較して報告します。
Before: X% success rate (N failures)
After: Y% success rate (M failures)
重要なルール
- ドライランは必ず実行してください。 実行前に必ずプレビューしてください。
- ユーザーの確認なしに置き換えないでください。 置き換えにはクレジットが消費され、元に戻せません。
- 置き換えクレジットが0の場合、検出結果を報告したうえで、置き換えにはクレジットが必要であること(有料プランで利用可能)を説明してください。
- すべてのプロキシが合格した場合、その旨を伝えて終了してください。不要な置き換えは提案しないでください。
- 置き換えは利用可能なクレジット数までに制限してください。 20個のプロキシが失敗し、利用可能なクレジットが10の場合は、パフォーマンスが最も低いASN/サブネットのプロキシを優先して置き換えてください。
トラブルシューティング
webshareCLI が見つからない場合:brew install webshare-proxy/tap/webshareを実行するか、https://github.com/webshare-proxy/webshare-cli/releases からダウンロードしてくださいWEBSHARE_API_KEYが設定されていない場合:export WEBSHARE_API_KEY="..."を実行してください。https://dashboard.webshare.io/userapi/keys で生成できます- アクティブなプランが見つからない場合:ユーザーは有効な Webshare サブスクリプションに加入する必要があります
- 置き換えクレジットが0の場合:有料プランでのみ利用できます。アップグレードが必要な場合があります
- すべてのプロキシがタイムアウトする場合:対象サイトがデータセンターの IP を完全にブロックしている可能性があります。代わりに住宅用プロキシを試すよう提案してください
- 置き換え手順が失敗する場合:Webshare MCP が接続されていることを確認してください(
claude mcp list)。CLI だけでは対象を指定した置き換えを実行できません