Wil je uit ProxyHub MCP één IP:port per regel maken, begin dan met de volledige JSON-RPC-respons, niet met een gekopieerd tekstblok uit de chat.

  1. Roep list_proxies aan via je MCP-client met type ingesteld op http.
  2. Sla de volledige respons op als mcp-response.json.
  3. Sla de onderstaande converter, die de standaardbibliotheek gebruikt, op als mcp-to-file.py naast die respons.
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")

Voer hem in die map uit:

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

Controleer het afgedrukte aantal en http-proxies.txt. De oorspronkelijke respons blijft bewaard. JSON-RPC-fouten en isError-responsen op toolniveau geven fouten; een geslaagde respons zonder treffers schrijft een leeg bestand en meldt nul. De tool geeft maximaal 100 items per aanroep. De uitvoer is dus die teruggegeven selectie, niet noodzakelijk de hele HTTP-proxylijst.

De converter accepteert alleen rijen met het gerapporteerde type http en controleert IPv4-syntaxis en poortbereik, passend bij het IPv4-formaat van de huidige verzamelaar. Bewaar bij een ander protocol die informatie of gebruik een apart bestand. Een eenvoudig gemengd IP:port-bestand vertelt de ontvangende client niet welke handshake hij moet gebruiken.

Een geëxporteerde rij blijft data. updated_at registreert de bijwerktijd van opgeslagen gegevens, niet een liveverzoek vanuit je netwerk. Test gekozen endpoints met een begrensd verzoek via een HTTP-proxy naar de benodigde bestemming. Mislukte de MCP-aanroep, onderzoek dan het ophalen van data; mislukt later een verzoek via een geëxporteerd endpoint, onderzoek dan die afzonderlijke proxyverbinding.

Gerelateerde artikelen