Norėdami iš ProxyHub MCP gauti po vieną IP:port eilutėje, pradėkite nuo viso JSON-RPC atsakymo, ne nuo pokalbio teksto kopijos.

  1. Per MCP klientą iškvieskite list_proxies, nustatę type į http.
  2. Išsaugokite visą atsakymą kaip mcp-response.json.
  3. Toliau pateiktą standartinę biblioteką naudojantį keitiklį išsaugokite kaip mcp-to-file.py šalia atsakymo.
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")

Paleiskite jį tame kataloge:

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

Patikrinkite išspausdintą skaičių ir http-proxies.txt. Pradinis atsakymas išlieka. JSON-RPC klaidos ir įrankio lygmens isError atsakymai sukelia klaidas; sėkmingas atsakymas be atitikmenų įrašo tuščią failą ir praneša nulį. Įrankio riba — iki 100 įrašų vienu iškvietimu, tad išvestis yra grąžinta atranka, ne būtinai visas HTTP tarpinių serverių sąrašas.

Keitiklis priima tik kaip http nurodytas eilutes ir tikrina IPv4 sintaksę bei prievado diapazoną pagal dabartinio rinkiklio IPv4 formatą. Kito protokolo atveju išsaugokite tą informaciją arba naudokite atskirą failą; paprastas mišrus IP:port failas priimančiam klientui nepasako, kokį rankos paspaudimą naudoti.

Eksportuota eilutė tebėra duomenys. updated_at fiksuoja saugomų duomenų atnaujinimo laiką, ne gyvą užklausą iš jūsų tinklo. Pasirinktus taškus išbandykite ribota HTTP tarpinio serverio užklausa į reikiamą paskirtį. Jei nepavyko MCP iškvietimas, tirkite duomenų gavimą; jei vėliau nepavyko užklausa per eksportuotą tašką, tirkite tą atskirą tarpinio serverio ryšį.

Susiję straipsniai