Optimize your Webshare proxy pool for a specific target website...
Optimize a Webshare proxy pool for a specific target website by testing, analyzing, and replacing blocked proxies.
/proxy-optimizer https://www.example.com
The argument is the target URL to optimize proxies for.
Does: probes every proxy against the target, ranks failures by country/ASN/subnet, and drives a confirmed, dry-run-first replacement of the blocked IPs.
Needs:
webshare CLI (brew install webshare-proxy/tap/webshare) with
WEBSHARE_API_KEY exported โ the script pulls plans and proxies through
it. Verify with webshare whoami.claude mcp add --transport http webshare https://mcp.webshare.io/ -H "Authorization: Token $WEBSHARE_API_KEY") and an active paid plan with
replacement credits. Targeted per-IP replacement is not in the CLI yet,
so the MCP's create_proxy_replacement is used for exactly this step.Will not do:
webshare proxies refresh territory
(see the proxy-manager skill) and consumes an on-demand refresh.Find the plan and its size:
webshare plans list --json
If the plan has more than 50 proxies, ask the user:
"Your plan has N proxies. Test all of them or a sample?"
Options:
If 50 or fewer, skip this question and test all.
Run the script from this skill's directory:
python3 scripts/optimize_proxies.py --target <TARGET_URL> --workers 10 --timeout 15
If the user chose a sample, add --sample N. To pin a plan, add
--plan-id <id>. The script pulls the plan and proxy list via the
webshare CLI, outputs progress to stderr and structured JSON to stdout.
Parse the JSON output.
Present the results to the user:
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>
If success rate is 100%, report that all proxies are working and no action is needed. Stop here.
Ask the user: "Want to see which proxies are failing before we replace them?"
If yes, show a table of every failing proxy with its IP, country, ASN, error,
and latency from the raw_results in the JSON output. For example:
| 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 |
Then ask: "Replace these proxies? (dry run first)"
If the user says no or wants to skip some, respect that. Only proceed with the IPs they confirm.
If there are failures AND the user has replacement credits, execute a dry-run replacement using the Webshare MCP.
Use the create_proxy_replacement MCP tool with the parameters from the
script's recommendations.mcp_actions output:
plan_id: from the script outputto_replace: {"type": "ip_address", "ip_addresses": [<failed IPs>]}replace_with: [{"type": "any"}]dry_run: truePresent the dry-run results:
Dry-run preview:
- Proxies to remove: <count>
- Proxies to add: <count>
Proceed with replacement? (This will use <N> replacement credits)
CRITICAL: Always ask the user for explicit confirmation before executing.
If the user confirms, call create_proxy_replacement again with
dry_run: false.
Then poll get_proxy_replacement with the returned id until state is
completed or failed.
Re-run the optimizer script against the same target to confirm the replacement improved the success rate.
Report the before/after comparison:
Before: X% success rate (N failures)
After: Y% success rate (M failures)
webshare CLI not found: brew install webshare-proxy/tap/webshare
or download from https://github.com/webshare-proxy/webshare-cli/releasesWEBSHARE_API_KEY not set: export WEBSHARE_API_KEY="..." โ generate
one at https://dashboard.webshare.io/userapi/keysclaude mcp list); the CLI alone cannot execute targeted replacements