Spara ProxyHub-MCP-resultat som en IP:Port-fil
Läs JSON-svaret från list_proxies, hantera fel och spara en ren HTTP-proxyfil utan att blanda ihop data med livekontroller.
För att skapa en IP:port per rad från ProxyHub MCP börjar du med hela JSON-RPC-svaret, inte ett textblock kopierat från chatten.
- Anropa
list_proxiesvia din MCP-klient medtypesatt tillhttp. - Spara hela svaret som
mcp-response.json. - Spara följande konverterare, som använder standardbiblioteket, som
mcp-to-file.pybredvid svaret.
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")
Kör den i den katalogen:
uv run --no-project python mcp-to-file.py
Kontrollera det utskrivna antalet och http-proxies.txt. Ursprungssvaret behålls. JSON-RPC-fel och isError-svar på verktygsnivå ger fel; ett lyckat svar utan träffar skriver en tom fil och rapporterar noll. Verktygets gräns är upp till 100 poster per anrop, så utdata motsvarar det returnerade urvalet, inte nödvändigtvis hela HTTP-proxylistan.
Konverteraren tar bara emot rader rapporterade som http och kontrollerar IPv4-syntax och portintervall, i linje med den nuvarande insamlarens IPv4-format. För andra protokoll ska du bevara informationen eller använda en separat fil; en enkel blandad IP:port-fil kan inte tala om för mottagande klient vilken handskakning den ska använda.
En exporterad rad är fortfarande data. updated_at anger uppdateringstiden för lagrade data, inte en liveförfrågan från ditt nätverk. Testa valda endpoints med en begränsad HTTP-proxyförfrågan mot målet du behöver. Misslyckades MCP-anropet, undersök datahämtningen; misslyckas en senare förfrågan via en exporterad endpoint, undersök den separata proxyanslutningen.