Збереження результатів 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, досліджуйте отримання даних; якщо пізніше не вдався запит через експортовану точку, досліджуйте це окреме проксі-з’єднання.