ProxyHub MCP-ден әр жолда бір IP:port алу үшін чаттан көшірілген мәтіннен емес, толық JSON-RPC жауабынан бастаңыз.

  1. MCP клиенті арқылы list_proxies шақырып, type мәнін http етіп орнатыңыз.
  2. Толық жауапты mcp-response.json ретінде сақтаңыз.
  3. Төмендегі стандартты кітапхананы пайдаланатын түрлендіргішті жауаптың қасына mcp-to-file.py ретінде сақтаңыз.
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")

Сол каталогта іске қосыңыз:

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

Басып шығарылған санды және http-proxies.txt файлын тексеріңіз. Бастапқы жауап сақталады. JSON-RPC қателері мен құрал деңгейіндегі isError жауаптары қате туғызады; сәйкес жазбасы жоқ сәтті жауап бос файл жазып, нөлді хабарлайды. Құрал шегі — бір шақыруда 100 жазбаға дейін, сондықтан шығыс қайтарылған таңдама, міндетті түрде бүкіл HTTP прокси тізімі емес.

Түрлендіргіш тек http деп көрсетілген жолдарды қабылдап, қазіргі жинағыштың IPv4 форматына сай IPv4 синтаксисі мен порт ауқымын тексереді. Өзге протокол үшін сол ақпаратты сақтаңыз немесе бөлек файл қолданыңыз; қарапайым аралас IP:port файлы оны қабылдайтын клиентке қай қол алысуды қолдану керегін айтпайды.

Экспортталған жол әлі де дерек. updated_at сақталған деректің жаңару уақытын жазады, сіздің желіңізден нақты уақыттағы сұрауды емес. Таңдалған нүктелерді керек мақсатқа шектеулі HTTP прокси сұрауымен сынаңыз. MCP шақыруы сәтсіз болса, дерек алуды зерттеңіз; кейін экспортталған нүкте арқылы сұрау сәтсіз болса, сол бөлек прокси қосылымын зерттеңіз.

Қатысты мақалалар