حفظ نتائج ProxyHub MCP في ملف IP:Port
اقرأ استجابة list_proxies بصيغة JSON، وعالج الأخطاء واحفظ ملف بروكسي 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 فافحص جلب البيانات؛ وإذا فشل لاحقاً طلب عبر نقطة مصدّرة، فافحص اتصال البروكسي المنفصل ذاك.