Запазете резултатите от 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 извикването е неуспешно, проучете извличането на данни; ако по-късна заявка през експортирана точка се провали, проучете тази отделна прокси връзка.