رؤى المستقبل

تنفيذ آمن لبرامج بايثون باستخدام MCP Run Python: بيئة معزولة مدعومة بتقنية Deno

AI
رؤى الذكاء والمستقبل
· · 3 دقائق قراءة
تنفيذ آمن لبرامج بايثون باستخدام MCP Run Python: بيئة معزولة مدعومة بتقنية Deno

يوفر حزمة MCP Run Python بيئة آمنة ومعزولة لتنفيذ كود بايثون. باستخدام Pyodide و Deno، يتم عزل تنفيذ الكود عن النظام المضيف، مما يخفف من المخاطر الأمنية المحتملة. تستكشف هذه المدونة الميزات والتثبيت والاستخدام وقدرات إدارة التبعيات لـ MCP Run Python، مما يوفر نظرة عامة شاملة للمطورين الذين يتطلعون إلى دمج تنفيذ بايثون الآمن في تطبيقاتهم.

الميزات والفوائد الرئيسية

يوفر MCP Run Python مجموعة من الميزات التي تجعله خيارًا مقنعًا لتشغيل كود بايثون بأمان:

  • تنفيذ آمن: يتم تشغيل كود بايثون داخل بيئة WebAssembly تديرها Pyodide و Deno، مما يعزله بشكل فعال ويمنع الوصول المباشر إلى موارد النظام المضيف.
  • إدارة الحزم: يبسط إدارة التبعيات عن طريق الكشف التلقائي عن حزم بايثون المطلوبة وتثبيتها.
  • نتائج كاملة: يلتقط جميع المخرجات ذات الصلة، بما في ذلك الإخراج القياسي (stdout) والخطأ القياسي (stderr) والقيمة المرجعية للكود المنفذ.
  • دعم غير متزامن: يتعامل مع تنفيذ كود بايثون غير المتزامن بشكل صحيح، مما يضمن التوافق مع تطبيقات بايثون الحديثة.
  • معالجة الأخطاء: يوفر تقارير أخطاء مفصلة، بما في ذلك تتبعات الأخطاء ورسائل الاستثناءات، للمساعدة في تصحيح الأخطاء.

التثبيت والإعداد

انتقلت طريقة التثبيت الموصى بها من npx إلى deno، مما يوفر حماية وعزلاً وأمانًا محسّنين.

  • تثبيت Deno: يتم توزيع MCP Run Python كحزمة JSR ويمكن تنفيذها مباشرة باستخدام أمر deno run.
  • هيكل الأمر: هيكل الأمر العام هو: deno run -N -R=node_modules -W=node_modules --node-modules-dir=auto jsr:@pydantic/mcp-run-python [stdio|sse|warmup]
    • -N -R=node_modules -W=node_modules (أو --allow-net --allow-read=node_modules --allow-write=node_modules): يمنح أذونات الشبكة والقراءة والكتابة اللازمة إلى الدليل ./node_modules لكي يقوم Pyodide بتنزيل وتخزين حزم بايثون مؤقتًا.
    • --node-modules-dir=auto: يوجه Deno لاستخدام دليل node_modules محلي.
    • stdio: يقوم بتشغيل الخادم باستخدام وسيطة Stdio MCP، وهو مناسب لتنفيذ العمليات الفرعية المحلية.
    • sse: يقوم بتشغيل الخادم باستخدام وسيطة SSE MCP، مما يتيح اتصالات HTTP عن بُعد.
    • warmup: يقوم بتشغيل برنامج بايثون صغير لتنزيل وتخزين مكتبة بايثون القياسية مؤقتًا، والتحقق من وظائف الخادم.

أمثلة على الاستخدام

يمكن استخدام MCP Run Python في كل من PydanticAI ومباشرة مع عملاء MCP الآخرين. يوفر المستند مثالاً على الاستخدام المباشر باستخدام عميل Python MCP.

  • مثال على الاتصال المباشر: يوضح برنامج بايثون mcp_run_python.py الاتصال بخادم MCP Run Python مباشرة باستخدام stdio_client من مكتبة Python MCP. يقوم بتهيئة ClientSession، ويسرد الأدوات المتاحة، ثم يستدعي الأداة run_python_code لتنفيذ مقتطف كود بايثون مُقدَّم.
  • استنتاج التبعيات: يتم استنتاج التبعيات تلقائيًا من عبارات import داخل كود بايثون. على سبيل المثال، إذا استورد الكود numpy، فسيقوم خادم MCP Run Python تلقائيًا بتثبيت حزمة numpy.
  • بيانات تعريف البرنامج النصي المضمنة (PEP 723): يمكن أيضًا تحديد التبعيات بشكل صريح باستخدام بيانات تعريف البرنامج النصي المضمنة داخل التعليقات في بداية ملف بايثون، كما هو موضح في PEP 723. هذا النهج مفيد لتحديد التبعيات التي لم يتم استيرادها مباشرة أو لتثبيت إصدارات معينة من الحزم. مثال:
    # /// script
    # dependencies = ["pydantic", "email-validator"]
    # ///
    
    تتيح هذه البيانات الوصفية استخدام التبعيات التي لم يتم استيرادها صراحةً في الكود وتسمح بتثبيت الإصدار (مثل dependencies = ["rich<13"]).

التسجيل

يدعم MCP Run Python إرسال stdout وstderr من تنفيذ كود بايثون كرسائل تسجيل MCP. تتطلب هذه الوظيفة تعيين مستوى التسجيل عند الاتصال بالخادم. ومع ذلك، هناك خطأ معروف في عميل Python MCP يمنع حاليًا عرض هذه الميزة.

خاتمة

يوفر MCP Run Python طريقة قوية وآمنة لتنفيذ كود بايثون داخل بيئة معزولة. تجعل ميزاته، بما في ذلك إدارة التبعيات التلقائية والتقاط النتائج الشامل ودعم غير المتزامن، أداة قيمة للمطورين الذين يحتاجون إلى دمج تنفيذ بايثون الآمن في تطبيقاتهم. يعزز الانتقال إلى التنفيذ المستند إلى Deno الأمان ويبسط النشر. من خلال فهم التثبيت والاستخدام وقدرات إدارة التبعيات، يمكن للمطورين الاستفادة بشكل فعال من MCP Run Python لبناء تطبيقات أكثر أمانًا وموثوقية.


المصدر: PydanticAI (implied from jsr:@pydantic/mcp-run-python)

مقالات ذات صلة

التعليقات

البريد لن يُنشر - يُستخدم للصورة الرمزية فقط

جاري تحميل التعليقات...