For å få éin IP:port per linje frå ProxyHub MCP byrjar du med heile JSON-RPC-svaret, ikkje ei tekstblokk kopiert frå ein chat.

  1. Kall list_proxies gjennom MCP-klienten med type sett til http.
  2. Lagre heile svaret som mcp-response.json.
  3. Lagre konverteraren nedanfor, som bruker standardbiblioteket, som mcp-to-file.py ved sida av 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øyr han i den mappa:

uv run --no-project python mcp-to-file.py

Kontroller det utskrivne talet og http-proxies.txt. Det opphavlege svaret vert halde på. JSON-RPC-feil og isError-svar på verktøynivå gir feil; eit vellukka svar utan treff skriv ei tom fil og rapporterer null. Verktøyet har ei grense på opptil 100 postar per kall, så utdataa er det returnerte utvalet, ikkje nødvendigvis heile HTTP-proxylista.

Konverteraren godtek berre rader rapporterte som http og sjekkar IPv4-syntaks og portområde, i samsvar med IPv4-formatet til den noverande innsamlaren. For andre protokollar må du ta vare på den informasjonen eller bruke ei eiga fil; ei enkel blanda IP:port-fil fortel ikkje mottakarklienten kva handtrykk han skal bruke.

Ei eksportert rad er framleis data. updated_at registrerer oppdateringstida for lagra data, ikkje ein direkte førespurnad frå nettverket ditt. Test valde endepunkt med ein avgrensa HTTP-proxyførespurnad til målet du treng. Mislukkast MCP-kallet, undersøk datahentinga; mislukkast ein seinare førespurnad via eit eksportert endepunkt, undersøk den separate proxytilkoplinga.

Relaterte artiklar