Gem ProxyHub-MCP-resultater som en IP:Port-fil
Læs JSON-svaret fra list_proxies, håndtér fejl, og gem en ren HTTP-proxyfil uden at forveksle data med livekontroller.
For at få én IP:port pr. linje fra ProxyHub MCP skal du starte med hele JSON-RPC-svaret, ikke en tekstblok kopieret fra en chat.
- Kald
list_proxiesvia din MCP-klient medtypesat tilhttp. - Gem hele svaret som
mcp-response.json. - Gem følgende konverter, der bruger standardbiblioteket, som
mcp-to-file.pyved siden af 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 mappe:
uv run --no-project python mcp-to-file.py
Kontrollér det udskrevne antal og http-proxies.txt. Det oprindelige svar bevares. JSON-RPC-fejl og isError-svar på værktøjsniveau udløser fejl; et vellykket svar uden match skriver en tom fil og rapporterer nul. Værktøjets grænse er op til 100 poster pr. kald, så outputtet er det returnerede udvalg, ikke nødvendigvis hele HTTP-proxylisten.
Konverteren accepterer kun rækker rapporteret som http og kontrollerer IPv4-syntaks og portinterval, svarende til den nuværende indsamlers IPv4-format. For andre protokoller skal du bevare den information eller bruge en separat fil; en simpel blandet IP:port-fil fortæller ikke den modtagende klient, hvilket håndtryk den skal bruge.
En eksporteret række er stadig data. updated_at registrerer opdateringstidspunktet for lagrede data, ikke en liveanmodning fra dit netværk. Test valgte endepunkter med en afgrænset HTTP-proxyanmodning mod den nødvendige destination. Mislykkedes MCP-kaldet, så undersøg datahentningen; mislykkes en senere anmodning via et eksporteret endepunkt, så undersøg den separate proxyforbindelse.