Сачувајте резултате ProxyHub MCP-а у датотеку IP:Port
Прочитајте JSON одговор list_proxies, обрадите грешке и сачувајте чисту датотеку HTTP проксија уз разликовање података од провера уживо.
За један IP:port по реду из ProxyHub MCP-а почните од потпуног одговора 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-а не успе, истражите преузимање података; ако каснији захтев кроз извезену тачку не успе, истражите ту засебну прокси везу.