Salvează rezultatele ProxyHub MCP într-un fișier IP:Port
Citește răspunsul JSON list_proxies, tratează erorile și salvează un fișier curat de proxy-uri HTTP, fără să confunzi datele cu verificările live.
Pentru a produce câte un IP:port pe linie din ProxyHub MCP, începe cu răspunsul JSON-RPC complet, nu cu un bloc de text copiat din chat.
- Apelează
list_proxiesprin clientul MCP cutypesetat lahttp. - Salvează răspunsul complet ca
mcp-response.json. - Salvează convertorul de mai jos, care folosește biblioteca standard, ca
mcp-to-file.pylângă răspuns.
import json
from ipaddress import IPv4Address
from pathlib import Path
reply = json.loads(
Path("mcp-response.json").read_text(encoding="utf-8")
)
if "error" in reply:
raise RuntimeError("MCP returned a JSON-RPC error")
result = reply["result"]
if result.get("isError"):
raise RuntimeError("The proxy tool reported an error")
data = result["structuredContent"]
endpoints = []
seen = set()
for row in data["proxies"]:
if row["type"] != "http":
continue
host = str(IPv4Address(row["ip"]))
port = row["port"]
if type(port) is not int or not 1 <= port <= 65535:
raise ValueError("Invalid proxy port")
endpoint = f"{host}:{port}"
if endpoint not in seen:
seen.add(endpoint)
endpoints.append(endpoint)
text = "\n".join(endpoints)
Path("http-proxies.txt").write_text(
text + ("\n" if text else ""),
encoding="utf-8",
)
print(f"Saved {len(endpoints)} HTTP endpoints")
Rulează-l în acel director:
uv run --no-project python mcp-to-file.py
Verifică numărul afișat și http-proxies.txt. Răspunsul original se păstrează. Erorile JSON-RPC și răspunsurile isError la nivel de instrument produc erori; un răspuns reușit fără potriviri scrie un fișier gol și raportează zero. Limita instrumentului este de până la 100 de intrări pe apel, deci ieșirea reprezintă selecția returnată, nu neapărat întreaga listă de proxy-uri HTTP.
Convertorul acceptă doar rânduri raportate ca http și verifică sintaxa IPv4 și intervalul portului, conform formatului IPv4 al colectorului actual. Pentru alt protocol, păstrează acea informație sau folosește un fișier separat; un simplu fișier IP:port amestecat nu spune clientului receptor ce negociere să folosească.
Un rând exportat rămâne date. updated_at înregistrează ora actualizării datelor stocate, nu o cerere live din rețeaua ta. Testează endpointurile alese cu o cerere limitată prin proxy HTTP către destinația necesară. Dacă apelul MCP a eșuat, investighează preluarea datelor; dacă o cerere ulterioară printr-un endpoint exportat a eșuat, investighează acea conexiune proxy separată.