שמירת תוצאות 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 נכשלה, בדקו את אחזור הנתונים; אם בקשה מאוחרת יותר דרך נקודה שיוצאה נכשלה, בדקו את חיבור הפרוקסי הנפרד הזה.