Goal: Establish a dynamic proxy pool maintenance mechanism based on scores.
Actionable Steps:
Asynchronous Fetcher: Define BaseFetcher and implement multi-source asynchronous crawling.
Weighted Scoring System:
Initial Score: 10
Successful Verification: +10 (max 100)
Failed Verification: -20 (min 0, delete if it reaches 0)
Purpose: Only extremely stable proxies are retained long-term.
Concurrent Verification: Use asyncio.Semaphore to limit the number of concurrent verifications (e.g., 200) to prevent crashing your own machine or getting banned by target websites.
Skill 3: UX-First API Implementation (User Experience First Interfaces)
Goal: Create a flexible and easy-to-integrate proxy acquisition interface.
Actionable Steps:
Smart Polling Strategy (GET /get):
Logic: Prioritize returning the highest-scoring (100 points) proxies. Within the highest score bracket, use Random or Round-Robin strategies to avoid multiple people getting the same IP in a short period.
Parameter Filtering (Query Params):
type: http | https (fetch as needed)
anonymous: true | false (whether it is highly anonymous)
format=text: Only returns the ip:port string. Convenient for users to call directly in scripts: proxies={"http": requests.get("...").text}.
Health Dashboard (GET /stats):
Returns total pool count, percentage of high-scoring proxies, and the time of the last check.
Friendly Error Handling:
When the pool is empty, return HTTP 503 Service Unavailable with a clear JSON message {"msg": "Pool is empty, refreshing..."}, instead of letting the client time out.
1---2name: xiaomingx-proxy-pool-proxy-pool3description: Skills & Capabilities4---5# Skills & Capabilities67## Skill 1: Modern Project Setup (uv-based project construction)8**Goal:** Create a modern Python project with environment isolation and clear dependencies.9**Actionable Steps:**101. **Initialization:** Use `uv init` to initialize the project structure and generate `pyproject.toml`.112. **Dependency Management:** Use `uv add fastapi uvicorn[standard] aiohttp apscheduler redis pydantic-settings loguru` to add core dependencies.123. **Development Environment:** Configure `.python-version` to lock the Python version, ensuring consistency in team collaboration.1314## Skill 2: Core Logic Implementation (Collection & Intelligent Scoring)15**Goal:** Establish a dynamic proxy pool maintenance mechanism based on scores.16**Actionable Steps:**171. **Asynchronous Fetcher:** Define `BaseFetcher` and implement multi-source asynchronous crawling.182. **Weighted Scoring System:**19 - Initial Score: 1020 - Successful Verification: +10 (max 100)21 - Failed Verification: -20 (min 0, delete if it reaches 0)22 - *Purpose:* Only extremely stable proxies are retained long-term.233. **Concurrent Verification:** Use `asyncio.Semaphore` to limit the number of concurrent verifications (e.g., 200) to prevent crashing your own machine or getting banned by target websites.2425## Skill 3: UX-First API Implementation (User Experience First Interfaces)26**Goal:** Create a flexible and easy-to-integrate proxy acquisition interface.27**Actionable Steps:**281. **Smart Polling Strategy (`GET /get`):**29 - **Logic:** Prioritize returning the highest-scoring (100 points) proxies. Within the highest score bracket, use **Random** or **Round-Robin** strategies to avoid multiple people getting the same IP in a short period.30 - **Parameter Filtering (Query Params):**31 - `type`: `http` | `https` (fetch as needed)32 - `anonymous`: `true` | `false` (whether it is highly anonymous)33 - **Multi-format Response:**34 - `format=json` (default): Returns detailed info `{"ip": "...", "port": 8080, "score": 100, "source": "..."}`.35 - `format=text`: Only returns the `ip:port` string. Convenient for users to call directly in scripts: `proxies={"http": requests.get("...").text}`.362. **Health Dashboard (`GET /stats`):**37 - Returns total pool count, percentage of high-scoring proxies, and the time of the last check.383. **Friendly Error Handling:**39 - When the pool is empty, return HTTP 503 Service Unavailable with a clear JSON message `{"msg": "Pool is empty, refreshing..."}`, instead of letting the client time out.4041## Skill 4: Documentation & Developer Experience (Docs & DX)42**Goal:** Let users get the project running within one minute.43**Actionable Steps:**441. **README Structure Optimization:**45 - **Badge:** Prominently display the `Built with uv` badge.46 - **Quick Start:**47 ```bash48 # Minimalist startup49 git clone ...50 uv sync51 uv run main.py52 ```53 - **API Documentation:** Showcase screenshots of the Swagger UI (`/docs`) to intuitively demonstrate ease of use.542. **Development Guide:** Explain how to add new dependencies via `uv add` and how to write custom Fetcher extensions.5556---57> Source: [XiaomingX/proxy-pool](https://github.com/XiaomingX/proxy-pool) — distributed by [TomeVault](https://tomevault.io).58<!-- tomevault:4.0:skill_md:2026-06-25 -->
Run npx skillmds@latest add tomevault-io/xiaomingx-proxy-pool-proxy-pool in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
Skills & Capabilities It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.