Za jedan IP:port po retku iz ProxyHub MCP-a počnite od potpunog odgovora JSON-RPC, a ne teksta kopiranog iz razgovora.

  1. Pozovite list_proxies kroz MCP klijent s type postavljenim na http.
  2. Spremite potpuni odgovor kao mcp-response.json.
  3. Sljedeći pretvarač koji koristi standardnu biblioteku spremite kao mcp-to-file.py uz 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. Pogreške JSON-RPC i odgovori isError na razini alata uzrokuju pogreš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 cijeli popis HTTP proxyja.

Pretvarač prihvaća samo retke prijavljene kao http te provjerava IPv4 sintaksu i raspon porta, u skladu s IPv4 formatom trenutačnog prikupljač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 točke ograničenim zahtjevom preko HTTP proxyja prema potrebnom odredištu. Ako je poziv MCP-a neuspješan, istražite dohvat podataka; ako kasniji zahtjev kroz izvezenu točku ne uspije, istražite tu zasebnu proxy vezu.

Povezani članci