Sačuvajte rezultate ProxyHub MCP-a u datoteku IP:Port
Pročitajte JSON odgovor list_proxies, obradite greške i sačuvajte čistu datoteku HTTP proxyja uz razlikovanje podataka od provjera uživo.
Za jedan IP:port po retku iz ProxyHub MCP-a počnite od potpunog odgovora JSON-RPC, a ne teksta kopiranog iz razgovora.
- Pozovite
list_proxieskroz MCP klijent stypepostavljenim nahttp. - Sačuvajte potpuni odgovor kao
mcp-response.json. - Sljedeći pretvarač koji koristi standardnu biblioteku sačuvajte kao
mcp-to-file.pyuz odgovor.
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")
Pokrenite ga u tom direktoriju:
uv run --no-project python mcp-to-file.py
Provjerite ispisani broj i http-proxies.txt. Izvorni odgovor ostaje sačuvan. Greške JSON-RPC i odgovori isError na nivou alata uzrokuju greške; uspješan odgovor bez podudaranja zapisuje praznu datoteku i prijavljuje nulu. Ograničenje alata je do 100 zapisa po pozivu, pa izlaz predstavlja vraćeni odabir, ne nužno cijelu listu HTTP proxyja.
Pretvarač prihvata samo retke prijavljene kao http te provjerava IPv4 sintaksu i raspon porta, u skladu s IPv4 formatom trenutnog sakupljača. Za drugi protokol sačuvajte tu informaciju ili koristite zasebnu datoteku; obična miješana datoteka IP:port ne govori klijentu koji je prima koje rukovanje treba koristiti.
Izvezeni redak i dalje je podatak. updated_at bilježi vrijeme ažuriranja pohranjenih podataka, a ne zahtjev uživo iz vaše mreže. Testirajte odabrane tačke ograničenim zahtjevom preko HTTP proxyja prema potrebnom odredištu. Ako poziv MCP-a ne uspije, istražite preuzimanje podataka; ako kasniji zahtjev kroz izvezenu tačku ne uspije, istražite tu zasebnu proxy vezu.