Захавайце вынікі ProxyHub MCP у файл IP:Port
Прачытайце JSON-адказ list_proxies, апрацуйце памылкі і захавайце чысты файл HTTP-проксі, не блытаючы даныя з праверкай жывога злучэння.
Каб атрымаць з ProxyHub MCP па адным IP:port у радку, пачніце з поўнага адказу JSON-RPC, а не з тэксту, скапіяванага з чата.
- Выклічце
list_proxiesпраз MCP-кліент, задаўшыtypeзначэннеhttp. - Захавайце поўны адказ як
mcp-response.json. - Захавайце наступны канвертар на стандартнай бібліятэцы як
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, даследуйце атрыманне даных; калі пазней не ўдаўся запыт праз экспартаваны пункт, даследуйце гэтае асобнае злучэнне проксі.