Zapisz wyniki ProxyHub MCP w pliku IP:Port
Odczytaj odpowiedź JSON list_proxies, obsłuż błędy i zapisz czysty plik proxy HTTP, oddzielając dane od testów rzeczywistego połączenia.
Aby uzyskać z ProxyHub MCP po jednym IP:port w wierszu, zacznij od pełnej odpowiedzi JSON-RPC, a nie tekstu skopiowanego z czatu.
- Wywołaj
list_proxiesprzez klienta MCP, ustawiająctypenahttp. - Zapisz pełną odpowiedź jako
mcp-response.json. - Zapisz poniższy konwerter korzystający z biblioteki standardowej jako
mcp-to-file.pyobok odpowiedzi.
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")
Uruchom go w tym katalogu:
uv run --no-project python mcp-to-file.py
Sprawdź wypisaną liczbę i http-proxies.txt. Oryginalna odpowiedź pozostaje. Błędy JSON-RPC i odpowiedzi isError na poziomie narzędzia zgłaszają błędy; poprawna odpowiedź bez trafień zapisuje pusty plik i podaje zero. Limit narzędzia wynosi do 100 pozycji na wywołanie, więc wynik to zwrócony wybór, niekoniecznie cała lista proxy HTTP.
Konwerter przyjmuje tylko wiersze zgłoszone jako http i sprawdza składnię IPv4 oraz zakres portu, zgodnie z formatem IPv4 obecnego kolektora. Dla innego protokołu zachowaj tę informację albo użyj osobnego pliku; zwykły mieszany plik IP:port nie mówi odbierającemu klientowi, jakiego uzgadniania użyć.
Wyeksportowany wiersz nadal jest danymi. updated_at zapisuje czas aktualizacji przechowywanych danych, nie rzeczywiste żądanie z twojej sieci. Przetestuj wybrane punkty ograniczonym żądaniem przez proxy HTTP do potrzebnego celu. Jeśli nie powiodło się wywołanie MCP, zbadaj pobieranie danych; jeśli później zawiodło żądanie przez wyeksportowany punkt, zbadaj to odrębne połączenie proxy.