Сохранение результатов 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, исследуйте получение данных; если позже не удался запрос через выгруженную точку, исследуйте это отдельное прокси-соединение.