ذخیره نتایج ProxyHub MCP در فایل IP:Port
پاسخ JSON مربوط به list_proxies را بخوانید، خطاها را مدیریت کنید و فایل تمیز پروکسی HTTP بسازید، با حفظ تفاوت داده و بررسی زنده.
برای تولید یک IP:port در هر خط از ProxyHub MCP، از پاسخ کامل JSON-RPC شروع کنید، نه بلوک متنی کپیشده از گفتگو.
- از طریق کلاینت MCP،
list_proxiesرا فراخوانی کنید و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 شکست خورد، دریافت داده را بررسی کنید؛ اگر درخواست بعدی از طریق نقطه صادرشده شکست خورد، همان اتصال پروکسی جداگانه را بررسی کنید.