Za en IP:port na vrstico iz ProxyHub MCP začnite s celotnim odgovorom JSON-RPC, ne z besedilom, kopiranim iz klepeta.

  1. Prek odjemalca MCP pokličite list_proxies z type nastavljenim na http.
  2. Celoten odgovor shranite kot mcp-response.json.
  3. Spodnji pretvornik, ki uporablja standardno knjižnico, shranite kot mcp-to-file.py ob odgovoru.
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")

Zaženite ga v tem imeniku:

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

Preverite izpisano število in http-proxies.txt. Izvirni odgovor ostane shranjen. Napake JSON-RPC in odgovori isError na ravni orodja sprožijo napake; uspešen odgovor brez zadetkov zapiše prazno datoteko in poroča nič. Omejitev orodja je do 100 zapisov na klic, zato izhod predstavlja vrnjeni izbor, ne nujno celotnega seznama HTTP posrednikov.

Pretvornik sprejme samo vrstice, označene kot http, in preveri skladnjo IPv4 ter obseg vrat, skladno z obliko IPv4 trenutnega zbiralnika. Za drug protokol ohranite ta podatek ali uporabite ločeno datoteko; preprosta mešana datoteka IP:port prejemnemu odjemalcu ne pove, katero rokovanje naj uporabi.

Izvožena vrstica je še vedno podatek. updated_at beleži čas posodobitve shranjenih podatkov, ne žive zahteve iz vašega omrežja. Izbrane točke preizkusite z omejeno zahtevo prek HTTP posrednika do potrebnega cilja. Če je odpovedal klic MCP, preučite pridobivanje podatkov; če pozneje odpove zahteva prek izvožene točke, preučite to ločeno povezavo posrednika.

Sorodni članki