Για ένα IP:port ανά γραμμή από το ProxyHub MCP, ξεκινήστε από την πλήρη απόκριση JSON-RPC, όχι από κείμενο αντιγραμμένο από συνομιλία.

  1. Καλέστε το list_proxies μέσω του πελάτη MCP με το type ορισμένο σε http.
  2. Αποθηκεύστε την πλήρη απόκριση ως mcp-response.json.
  3. Αποθηκεύστε τον παρακάτω μετατροπέα, που χρησιμοποιεί την τυπική βιβλιοθήκη, ως 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 proxy.

Ο μετατροπέας δέχεται μόνο γραμμές που δηλώνονται ως http και ελέγχει τη σύνταξη IPv4 και το εύρος θύρας, σύμφωνα με τη μορφή IPv4 του τρέχοντος συλλέκτη. Για άλλο πρωτόκολλο, διατηρήστε την πληροφορία ή χρησιμοποιήστε χωριστό αρχείο· ένα απλό μικτό αρχείο IP:port δεν λέει στον πελάτη που το λαμβάνει ποια χειραψία να χρησιμοποιήσει.

Μια εξαγόμενη γραμμή παραμένει δεδομένο. Το updated_at καταγράφει τον χρόνο ενημέρωσης αποθηκευμένων δεδομένων, όχι ζωντανό αίτημα από το δίκτυό σας. Δοκιμάστε τα επιλεγμένα σημεία με περιορισμένο αίτημα μέσω HTTP proxy προς τον απαιτούμενο προορισμό. Αν απέτυχε η κλήση MCP, ερευνήστε την ανάκτηση δεδομένων· αν αποτύχει αργότερα αίτημα μέσω εξαγόμενου σημείου, ερευνήστε εκείνη τη χωριστή σύνδεση proxy.

Σχετικά άρθρα