Lai no ProxyHub MCP iegūtu vienu IP:port katrā rindā, sāciet ar pilnu JSON-RPC atbildi, nevis no sarunas kopētu teksta bloku.

  1. Ar MCP klientu izsauciet list_proxies, iestatot type uz http.
  2. Saglabājiet pilnu atbildi kā mcp-response.json.
  3. Tālāk redzamo pārveidotāju, kas izmanto standarta bibliotēku, saglabājiet kā mcp-to-file.py blakus atbildei.
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")

Palaidiet to šajā direktorijā:

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

Pārbaudiet izdrukāto skaitu un http-proxies.txt. Sākotnējā atbilde saglabājas. JSON-RPC kļūdas un rīka līmeņa isError atbildes izraisa kļūdas; veiksmīga atbilde bez atbilstībām ieraksta tukšu failu un ziņo nulli. Rīka ierobežojums ir līdz 100 ierakstiem izsaukumā, tāpēc izvade ir atgrieztā atlase, ne obligāti viss HTTP starpniekserveru saraksts.

Pārveidotājs pieņem tikai rindas, kas norādītas kā http, un pārbauda IPv4 sintaksi un porta diapazonu atbilstoši pašreizējā vācēja IPv4 formātam. Citam protokolam saglabājiet šo informāciju vai izmantojiet atsevišķu failu; vienkāršs jaukts IP:port fails saņēmēja klientam nepasaka, kādu rokasspiedienu izmantot.

Eksportēta rinda joprojām ir dati. updated_at reģistrē glabāto datu atjaunināšanas laiku, nevis dzīvu pieprasījumu no jūsu tīkla. Izvēlētos galapunktus pārbaudiet ar ierobežotu HTTP starpniekservera pieprasījumu uz vajadzīgo galamērķi. Ja MCP izsaukums neizdevās, izpētiet datu iegūšanu; ja vēlāk neizdevās pieprasījums caur eksportētu galapunktu, izpētiet šo atsevišķo starpniekservera savienojumu.

Saistītie raksti