proxy-scraper-cli 1.24.0__tar.gz → 1.25.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/PKG-INFO +17 -3
  2. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/README.md +16 -2
  3. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxy_scraper_cli.egg-info/PKG-INFO +17 -3
  4. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/__init__.py +1 -1
  5. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/LICENSE +0 -0
  6. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxy_scraper_cli.egg-info/SOURCES.txt +0 -0
  7. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxy_scraper_cli.egg-info/dependency_links.txt +0 -0
  8. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxy_scraper_cli.egg-info/entry_points.txt +0 -0
  9. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxy_scraper_cli.egg-info/requires.txt +0 -0
  10. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxy_scraper_cli.egg-info/top_level.txt +0 -0
  11. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/__main__.py +0 -0
  12. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/action.py +0 -0
  13. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/agent.py +0 -0
  14. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/api.py +0 -0
  15. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/app.py +0 -0
  16. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/asndb.py +0 -0
  17. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/blocklist.py +0 -0
  18. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/charts.py +0 -0
  19. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/checker.py +0 -0
  20. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/cli.py +0 -0
  21. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/compat.py +0 -0
  22. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/completion.py +0 -0
  23. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/exporters.py +0 -0
  24. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/fetchcache.py +0 -0
  25. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/geo.py +0 -0
  26. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/geodb.py +0 -0
  27. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/handshake.py +0 -0
  28. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/history.py +0 -0
  29. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/judges.py +0 -0
  30. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/mcp_entry.py +0 -0
  31. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/mcp_server.py +0 -0
  32. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/mirror.py +0 -0
  33. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/netio.py +0 -0
  34. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/options.py +0 -0
  35. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/output.py +0 -0
  36. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/pages.py +0 -0
  37. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/parsing.py +0 -0
  38. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/paths.py +0 -0
  39. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/pipeline.py +0 -0
  40. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/preferences.py +0 -0
  41. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/proxypages.py +0 -0
  42. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/publish.py +0 -0
  43. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/ranking.py +0 -0
  44. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/report.py +0 -0
  45. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/runsteps.py +0 -0
  46. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/server/__init__.py +0 -0
  47. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/server/api.py +0 -0
  48. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/server/core.py +0 -0
  49. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/server/dashboard.html +0 -0
  50. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/server/http.py +0 -0
  51. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/server/pool.py +0 -0
  52. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/server/socks.py +0 -0
  53. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/server/status.py +0 -0
  54. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/server/upstream.py +0 -0
  55. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/site/apple-touch-icon.png +0 -0
  56. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/site/googleaac1161b7853c5b5.html +0 -0
  57. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/site/index.html +0 -0
  58. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/site/logo.png +0 -0
  59. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/site/og.png +0 -0
  60. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/sites.py +0 -0
  61. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/sources.json +0 -0
  62. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/sources.py +0 -0
  63. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/speed.py +0 -0
  64. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/targets.py +0 -0
  65. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/ui/__init__.py +0 -0
  66. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/ui/dashboard.py +0 -0
  67. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/ui/keys.py +0 -0
  68. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/ui/report.py +0 -0
  69. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/ui/serve.py +0 -0
  70. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/ui/widgets.py +0 -0
  71. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/proxyscraper/ui/wizard.py +0 -0
  72. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/pyproject.toml +0 -0
  73. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/setup.cfg +0 -0
  74. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_action.py +0 -0
  75. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_agent.py +0 -0
  76. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_api.py +0 -0
  77. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_app.py +0 -0
  78. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_asndb.py +0 -0
  79. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_auth.py +0 -0
  80. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_blocklist.py +0 -0
  81. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_charts.py +0 -0
  82. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_checker.py +0 -0
  83. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_compat.py +0 -0
  84. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_completion.py +0 -0
  85. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_discovery_growth.py +0 -0
  86. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_exporters.py +0 -0
  87. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_fetchcache.py +0 -0
  88. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_geodb.py +0 -0
  89. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_judges.py +0 -0
  90. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_learning.py +0 -0
  91. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_live_api.py +0 -0
  92. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_mcp_server.py +0 -0
  93. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_mine_sources.py +0 -0
  94. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_mirror.py +0 -0
  95. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_options.py +0 -0
  96. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_output_stdout.py +0 -0
  97. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_own_sources.py +0 -0
  98. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_pac.py +0 -0
  99. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_packaging.py +0 -0
  100. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_pages.py +0 -0
  101. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_parsing.py +0 -0
  102. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_parsing_fuzz.py +0 -0
  103. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_paths.py +0 -0
  104. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_pick.py +0 -0
  105. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_pipeline.py +0 -0
  106. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_preferences.py +0 -0
  107. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_proxy_pages.py +0 -0
  108. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_proxy_sources.py +0 -0
  109. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_publish.py +0 -0
  110. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_recheck_stdin.py +0 -0
  111. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_report.py +0 -0
  112. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_robustness.py +0 -0
  113. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_rotator.py +0 -0
  114. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_serve_api.py +0 -0
  115. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_serve_dashboard.py +0 -0
  116. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_serve_password.py +0 -0
  117. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_serve_refill.py +0 -0
  118. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_serve_v2.py +0 -0
  119. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_server.py +0 -0
  120. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_server_closed_writer.py +0 -0
  121. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_server_fixes.py +0 -0
  122. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_sites.py +0 -0
  123. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_sources_json.py +0 -0
  124. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_speed.py +0 -0
  125. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_speed_ranking.py +0 -0
  126. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_survival_ranking.py +0 -0
  127. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_tamper.py +0 -0
  128. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_targets.py +0 -0
  129. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_ui.py +0 -0
  130. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_uptime.py +0 -0
  131. {proxy_scraper_cli-1.24.0 → proxy_scraper_cli-1.25.0}/tests/test_wizard.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proxy-scraper-cli
3
- Version: 1.24.0
3
+ Version: 1.25.0
4
4
  Summary: Finds free HTTP, SOCKS4 and SOCKS5 proxies that actually work: 700+ sources, real checks, honeypot filtering and a rotating local proxy server.
5
5
  Author: Maximilian Feix
6
6
  License-Expression: MIT
@@ -52,6 +52,7 @@ Dynamic: license-file
52
52
  [![Release](https://img.shields.io/github/v/release/maximilianfeix/proxy-scraper?style=flat-square&color=D4F77A&labelColor=121113)](https://github.com/maximilianfeix/proxy-scraper/releases/latest)
53
53
  [![Live proxies](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmaximilianfeix%2Fproxy-scraper%2Fproxy-list%2Fbadges%2Ftotal.json&style=flat-square&labelColor=121113)](#live-list)
54
54
  [![PyPI](https://img.shields.io/pypi/v/proxy-scraper-cli?style=flat-square&color=D4F77A&labelColor=121113&label=pypi)](https://pypi.org/project/proxy-scraper-cli/)
55
+ [![Downloads](https://img.shields.io/pepy/dt/proxy-scraper-cli?style=flat-square&color=D4F77A&labelColor=121113&label=downloads)](https://pepy.tech/projects/proxy-scraper-cli)
55
56
  [![Python](https://img.shields.io/badge/python-3.9–3.14-D4F77A?style=flat-square&labelColor=121113)](pyproject.toml)
56
57
  [![Stars](https://img.shields.io/github/stars/maximilianfeix/proxy-scraper?style=flat-square&color=D4F77A&labelColor=121113)](https://github.com/maximilianfeix/proxy-scraper/stargazers)
57
58
  [![License](https://img.shields.io/badge/license-MIT-D4F77A?style=flat-square&labelColor=121113)](LICENSE)
@@ -285,7 +286,7 @@ claude mcp add proxy-scraper -- uvx --python ">=3.10" --from "proxy-scraper-cli[
285
286
  ```
286
287
 
287
288
  <details>
288
- <summary><b>VS Code, Codex, or without uv</b></summary>
289
+ <summary><b>VS Code, Codex, Docker, or without uv</b></summary>
289
290
 
290
291
  **VS Code** – `.vscode/mcp.json`:
291
292
 
@@ -311,6 +312,19 @@ args = ["--python", ">=3.10", "--from", "proxy-scraper-cli[mcp]", "proxy-scraper
311
312
 
312
313
  **Without uv:** `pipx install --python python3.12 "proxy-scraper-cli[mcp]"` (any Python 3.10+), then use `proxy-scraper-mcp` as the command.
313
314
 
315
+ **Docker** – no Python needed, the image has everything:
316
+
317
+ ```json
318
+ {
319
+ "mcpServers": {
320
+ "proxy-scraper": {
321
+ "command": "docker",
322
+ "args": ["run", "-i", "--rm", "ghcr.io/maximilianfeix/proxy-scraper", "--mcp"]
323
+ }
324
+ }
325
+ }
326
+ ```
327
+
314
328
  It's also in the [official MCP registry](https://registry.modelcontextprotocol.io) as `io.github.maximilianfeix/proxy-scraper`, so clients that browse the registry can install it from there.
315
329
 
316
330
  </details>
@@ -991,7 +1005,7 @@ Only for things that don't matter. Public proxies are run by strangers who can r
991
1005
 
992
1006
  What's next is in the [open issues](../../issues) – ideas and wishes are welcome as an [issue](../../issues/new/choose). During Hacktoberfest there are [beginner-friendly issues](../../issues?q=is%3Aopen+label%3Ahacktoberfest) with pointers on where to start.
993
1007
 
994
- Shipped in v1.24: `--recheck -` for lists you pipe in, which proxies get through to Discord, and a README you can try in five seconds.
1008
+ Shipped in v1.24 and v1.25: `--recheck -` for lists you pipe in, which proxies get through to Discord, a README you can try in five seconds, and the MCP server in the Docker image.
995
1009
 
996
1010
  Shipped in v1.22 and v1.23: a live dashboard for the rotating server, `--export pac` and an hourly `proxy.pac`, "best first" that counts how likely a proxy is still up, the lists in a repository of their own ([free-proxy-list](https://github.com/maximilianfeix/free-proxy-list)), daily snapshots on Hugging Face, `brew install`, a Chinese README, Python 3.14, and a recipe for Burp Suite, ZAP and mitmproxy.
997
1011
 
@@ -10,6 +10,7 @@
10
10
  [![Release](https://img.shields.io/github/v/release/maximilianfeix/proxy-scraper?style=flat-square&color=D4F77A&labelColor=121113)](https://github.com/maximilianfeix/proxy-scraper/releases/latest)
11
11
  [![Live proxies](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmaximilianfeix%2Fproxy-scraper%2Fproxy-list%2Fbadges%2Ftotal.json&style=flat-square&labelColor=121113)](#live-list)
12
12
  [![PyPI](https://img.shields.io/pypi/v/proxy-scraper-cli?style=flat-square&color=D4F77A&labelColor=121113&label=pypi)](https://pypi.org/project/proxy-scraper-cli/)
13
+ [![Downloads](https://img.shields.io/pepy/dt/proxy-scraper-cli?style=flat-square&color=D4F77A&labelColor=121113&label=downloads)](https://pepy.tech/projects/proxy-scraper-cli)
13
14
  [![Python](https://img.shields.io/badge/python-3.9–3.14-D4F77A?style=flat-square&labelColor=121113)](pyproject.toml)
14
15
  [![Stars](https://img.shields.io/github/stars/maximilianfeix/proxy-scraper?style=flat-square&color=D4F77A&labelColor=121113)](https://github.com/maximilianfeix/proxy-scraper/stargazers)
15
16
  [![License](https://img.shields.io/badge/license-MIT-D4F77A?style=flat-square&labelColor=121113)](LICENSE)
@@ -243,7 +244,7 @@ claude mcp add proxy-scraper -- uvx --python ">=3.10" --from "proxy-scraper-cli[
243
244
  ```
244
245
 
245
246
  <details>
246
- <summary><b>VS Code, Codex, or without uv</b></summary>
247
+ <summary><b>VS Code, Codex, Docker, or without uv</b></summary>
247
248
 
248
249
  **VS Code** – `.vscode/mcp.json`:
249
250
 
@@ -269,6 +270,19 @@ args = ["--python", ">=3.10", "--from", "proxy-scraper-cli[mcp]", "proxy-scraper
269
270
 
270
271
  **Without uv:** `pipx install --python python3.12 "proxy-scraper-cli[mcp]"` (any Python 3.10+), then use `proxy-scraper-mcp` as the command.
271
272
 
273
+ **Docker** – no Python needed, the image has everything:
274
+
275
+ ```json
276
+ {
277
+ "mcpServers": {
278
+ "proxy-scraper": {
279
+ "command": "docker",
280
+ "args": ["run", "-i", "--rm", "ghcr.io/maximilianfeix/proxy-scraper", "--mcp"]
281
+ }
282
+ }
283
+ }
284
+ ```
285
+
272
286
  It's also in the [official MCP registry](https://registry.modelcontextprotocol.io) as `io.github.maximilianfeix/proxy-scraper`, so clients that browse the registry can install it from there.
273
287
 
274
288
  </details>
@@ -949,7 +963,7 @@ Only for things that don't matter. Public proxies are run by strangers who can r
949
963
 
950
964
  What's next is in the [open issues](../../issues) – ideas and wishes are welcome as an [issue](../../issues/new/choose). During Hacktoberfest there are [beginner-friendly issues](../../issues?q=is%3Aopen+label%3Ahacktoberfest) with pointers on where to start.
951
965
 
952
- Shipped in v1.24: `--recheck -` for lists you pipe in, which proxies get through to Discord, and a README you can try in five seconds.
966
+ Shipped in v1.24 and v1.25: `--recheck -` for lists you pipe in, which proxies get through to Discord, a README you can try in five seconds, and the MCP server in the Docker image.
953
967
 
954
968
  Shipped in v1.22 and v1.23: a live dashboard for the rotating server, `--export pac` and an hourly `proxy.pac`, "best first" that counts how likely a proxy is still up, the lists in a repository of their own ([free-proxy-list](https://github.com/maximilianfeix/free-proxy-list)), daily snapshots on Hugging Face, `brew install`, a Chinese README, Python 3.14, and a recipe for Burp Suite, ZAP and mitmproxy.
955
969
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proxy-scraper-cli
3
- Version: 1.24.0
3
+ Version: 1.25.0
4
4
  Summary: Finds free HTTP, SOCKS4 and SOCKS5 proxies that actually work: 700+ sources, real checks, honeypot filtering and a rotating local proxy server.
5
5
  Author: Maximilian Feix
6
6
  License-Expression: MIT
@@ -52,6 +52,7 @@ Dynamic: license-file
52
52
  [![Release](https://img.shields.io/github/v/release/maximilianfeix/proxy-scraper?style=flat-square&color=D4F77A&labelColor=121113)](https://github.com/maximilianfeix/proxy-scraper/releases/latest)
53
53
  [![Live proxies](https://img.shields.io/endpoint?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmaximilianfeix%2Fproxy-scraper%2Fproxy-list%2Fbadges%2Ftotal.json&style=flat-square&labelColor=121113)](#live-list)
54
54
  [![PyPI](https://img.shields.io/pypi/v/proxy-scraper-cli?style=flat-square&color=D4F77A&labelColor=121113&label=pypi)](https://pypi.org/project/proxy-scraper-cli/)
55
+ [![Downloads](https://img.shields.io/pepy/dt/proxy-scraper-cli?style=flat-square&color=D4F77A&labelColor=121113&label=downloads)](https://pepy.tech/projects/proxy-scraper-cli)
55
56
  [![Python](https://img.shields.io/badge/python-3.9–3.14-D4F77A?style=flat-square&labelColor=121113)](pyproject.toml)
56
57
  [![Stars](https://img.shields.io/github/stars/maximilianfeix/proxy-scraper?style=flat-square&color=D4F77A&labelColor=121113)](https://github.com/maximilianfeix/proxy-scraper/stargazers)
57
58
  [![License](https://img.shields.io/badge/license-MIT-D4F77A?style=flat-square&labelColor=121113)](LICENSE)
@@ -285,7 +286,7 @@ claude mcp add proxy-scraper -- uvx --python ">=3.10" --from "proxy-scraper-cli[
285
286
  ```
286
287
 
287
288
  <details>
288
- <summary><b>VS Code, Codex, or without uv</b></summary>
289
+ <summary><b>VS Code, Codex, Docker, or without uv</b></summary>
289
290
 
290
291
  **VS Code** – `.vscode/mcp.json`:
291
292
 
@@ -311,6 +312,19 @@ args = ["--python", ">=3.10", "--from", "proxy-scraper-cli[mcp]", "proxy-scraper
311
312
 
312
313
  **Without uv:** `pipx install --python python3.12 "proxy-scraper-cli[mcp]"` (any Python 3.10+), then use `proxy-scraper-mcp` as the command.
313
314
 
315
+ **Docker** – no Python needed, the image has everything:
316
+
317
+ ```json
318
+ {
319
+ "mcpServers": {
320
+ "proxy-scraper": {
321
+ "command": "docker",
322
+ "args": ["run", "-i", "--rm", "ghcr.io/maximilianfeix/proxy-scraper", "--mcp"]
323
+ }
324
+ }
325
+ }
326
+ ```
327
+
314
328
  It's also in the [official MCP registry](https://registry.modelcontextprotocol.io) as `io.github.maximilianfeix/proxy-scraper`, so clients that browse the registry can install it from there.
315
329
 
316
330
  </details>
@@ -991,7 +1005,7 @@ Only for things that don't matter. Public proxies are run by strangers who can r
991
1005
 
992
1006
  What's next is in the [open issues](../../issues) – ideas and wishes are welcome as an [issue](../../issues/new/choose). During Hacktoberfest there are [beginner-friendly issues](../../issues?q=is%3Aopen+label%3Ahacktoberfest) with pointers on where to start.
993
1007
 
994
- Shipped in v1.24: `--recheck -` for lists you pipe in, which proxies get through to Discord, and a README you can try in five seconds.
1008
+ Shipped in v1.24 and v1.25: `--recheck -` for lists you pipe in, which proxies get through to Discord, a README you can try in five seconds, and the MCP server in the Docker image.
995
1009
 
996
1010
  Shipped in v1.22 and v1.23: a live dashboard for the rotating server, `--export pac` and an hourly `proxy.pac`, "best first" that counts how likely a proxy is still up, the lists in a repository of their own ([free-proxy-list](https://github.com/maximilianfeix/free-proxy-list)), daily snapshots on Hugging Face, `brew install`, a Chinese README, Python 3.14, and a recipe for Burp Suite, ZAP and mitmproxy.
997
1011
 
@@ -1,7 +1,7 @@
1
1
  """proxy-scraper: collects public HTTP/SOCKS4/SOCKS5 proxies from hundreds of sources, checks them
2
2
  in parallel with its own protocol handshakes and learns which sources deliver good proxies."""
3
3
 
4
- __version__ = "1.24.0"
4
+ __version__ = "1.25.0"
5
5
 
6
6
 
7
7
  def __getattr__(name):