Зачувајте ги резултатите од 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-повикот не успеал, истражете го преземањето податоци; ако подоцна не успее барање преку извезена точка, истражете ја таа одделна прокси-врска.