mcpField
P
proxy-optimizer

proxy-optimizer

github.com/webshare-proxyクラウド・DevOps753 回インストール3 週間前に更新
リポジトリ

proxy-optimizer について

proxy-optimizerは、特定のWebサイトに対してWebshareのプロキシプールを検査・調整するスキルです。国、ASN、サブネット別に失敗を分析し、ドライランと明示的な確認の後、Webshare MCPでブロックされたIPを置き換えます。

主な機能

  1. 01対象サイトに対するプロキシ検査
  2. 02国・ASN・サブネット別の失敗分析
  3. 03全件またはサンプルのテスト
  4. 04ドライランによる置き換えのプレビュー
  5. 05確認後のブロックIP置き換え

活用シーン

  1. 01対象サイトへのプロキシプールの接続確認
  2. 02失敗が集中するネットワーク領域の特定
  3. 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 を確認済みのうえで、ドライランを先に実施して置換します。

必要なもの:

  1. WEBSHARE_API_KEY をエクスポートした状態の webshare CLI(brew install webshare-proxy/tap/webshare)。プランとプロキシの取得にこの CLI を使います。webshare whoami で確認してください。
  2. Python 3.10 以降。
  3. 置換の実行時のみ: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)

重要なルール

  1. ドライランは必ず実行してください。 実行前に必ずプレビューしてください。
  2. ユーザーの確認なしに置き換えないでください。 置き換えにはクレジットが消費され、元に戻せません。
  3. 置き換えクレジットが0の場合、検出結果を報告したうえで、置き換えにはクレジットが必要であること(有料プランで利用可能)を説明してください。
  4. すべてのプロキシが合格した場合、その旨を伝えて終了してください。不要な置き換えは提案しないでください。
  5. 置き換えは利用可能なクレジット数までに制限してください。 20個のプロキシが失敗し、利用可能なクレジットが10の場合は、パフォーマンスが最も低いASN/サブネットのプロキシを優先して置き換えてください。

トラブルシューティング

  • webshare CLI が見つからない場合: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 だけでは対象を指定した置き換えを実行できません

コメント