MCP

Phantom Secrets: وكيل محلي وخادم MCP يخفيان الأسرار الحقيقية عن وكلاء البرمجة بالذكاء الاصطناعي

يناسب الفرق التي تتيح لوكلاء البرمجة بالذكاء الاصطناعي الوصول إلى العناصر النائبة phm_ فقط دون الأسرار الحقيقية أبدًا، مقابل قبول أن يعيد phantom init كتابة ملف .env في المشروع وأن أدوات جانب الوكيل تجري فحصًا للقراءة فقط دون إصدار طلبات إلى المزوّد.

Official source · ashlrai/phantom-secrets

Install

brew tap ashlrai/phantom
brew trust --formula ashlrai/phantom/phantom
brew install ashlrai/phantom/phantom

لمن تناسب الأداة

إذا ربطت وكيل برمجة بالذكاء الاصطناعي في تطويرك اليومي وكان ملف .env في مشروعك يحتوي على أسرار حقيقية، فإن السجلات وصدى الأخطاء ومقاطع السياق كلها قد تتحوّل إلى مسارات لتسريب الأسرار. تناسب Phantom من يحتاج إلى حدّ فاصل واضح بين «أن يظل التطبيق يحصل على القيم الحقيقية كالمعتاد» و«أن يرى الوكيل قيمة السرّ أبدًا»، وكذلك الفرق التي تريد توزيع الأسرار وتدويرها بشكل مركزي دون دفعها إلى سلسلة أدوات كل فرد.

شكلها «وكيل محلي + خادم MCP»: تُستبدل أسرار المشروع بعناصر نائبة phm_ ذات نطاق، ويجلب التطبيق القيم الحقيقية عبر وكيل محلي مصادَق عليه، فيتناول جانب الوكيل أدوات MCP لا ترى القيم، تُستخدم للجرد والتشخيص والطلبات المحكومة. الشرط الأساسي أن تكون مستعدًا لإبقاء عملية وكيل تعمل باستمرار على جهازك، وأن تُدخل إعادة كتابة .env في عملية إدارة الإصدارات الخاصة بك — وهذه ليست خطوة يمكن تخطّيها بضغطة.

ثلاث دقائق لأول محاولة

المسار الرسمي الموصى به هو Homebrew. التثبيت على macOS الذي يعرضه المستودع هو سلسلة من ثلاث خطوات: أولًا tap، ثم trust، وأخيرًا install؛ والنتيجة ملفَّان تنفيذيَّان، phantom وphantom-mcp، يقابلان الإصدار v0.7.9 الذي يذكره المستودع.

brew tap ashlrai/phantom
brew trust --formula ashlrai/phantom/phantom
brew install ashlrai/phantom/phantom

المتطلبات المسبقة: أن يكون Homebrew مثبَّتًا بالفعل على macOS؛ وإذا اخترت عدم استخدام Homebrew وبنيت الشيفرة المصدرية بنفسك، فإن المستودع يثبّت إصدار سلسلة أدوات الترجمة، لذا تحتاج بيئة البناء إلى سلسلة أدوات Rust المطابقة لذلك الإصدار.

بعد ذلك تأتي خطوتا إعداد بالترتيب. أولًا ادخل مجلد المشروع ونفّذ phantom init؛ لاحظ أن هذا عملية كتابة — فهي تعيد كتابة ملف .env الخاص بهذا المشروع وتستبدل قيم المفاتيح الحقيقية بعناصر نائبة phm_؛ ونقطة التحقق هي أن تتأكد قبل التنفيذ من نسخ ملف .env احتياطيًا أو إيداعه في نظام الإصدارات، وأن تقارن في مخرجات الأمر عدد عمليات الاستبدال بما تتوقعه. أما الخطوة الثانية فهي كتابة إعدادات العميل:

phantom init
phantom setup --client claude

بعد ذلك استخدم خطوة القراءة فقط لإجراء تحقق منخفض المخاطر: يعرض phantom list قائمة أسرارك دون إظهار أي قيمة. علامة النجاح الملاحظة هي أن يسرد الطرفية أسماء العناصر دون أن يلي أيًّا منها محرف سرّ حقيقي؛ ثم اطلب من الوكيل أن يقرأ المستودع مرة أخرى فيحصل على أشياء تبدأ بـ phm_ بدلًا من القيم الحقيقية.

للاطلاع على المرجع الكامل للأوامر والخيارات، راجع المستودع الرسمي https://github.com/ashlrai/phantom-secrets

حالات الاستخدام

الحالة الأولى: امنح الوكيل قناة «يرى القائمة ولا يرى القيم». أدوات MCP في جانب الوكيل عمياء عن القيم وتغطي ثلاثة استعمالات: الجرد والتشخيص والطلبات المحكومة؛ ويضع المستودع هذه الأدوات في موقع فحوص القدرة والحالة وحالة المستودع، ولا تستدعي أي إجراء على جانب المزوّد. وهكذا يمكنك أن تطرح على الوكيل سؤال «ما الأسرار التي يضبطها هذا المشروع، وهل السلسلة الحالية تعمل، وأي الملفات في المستودع تشير إلى العناصر النائبة» بثقة — فالوكيل لا يعيد قيم الأسرار ولا يغيّر موارد السحابة أثناء الفحص.

الحالة الثانية: دع كود التطبيق يواصل العمل بالقيم الحقيقية مع إبقاء تلك القيم خارج مدى نظر الوكيل. يحدث الاستبدال في مرحلة التهيئة: تتحوّل قيم المفاتيح الحقيقية في .env إلى عناصر نائبة phm_ ذات نطاق، ويقرأ التطبيق متغيّرات البيئة كالمعتاد، وتتولى الوكيل المحلي الطلبات التي يُطلقها، فيسترجع القيم الحقيقية بعد المصادقة. تشترك نقطة دخول الطلبات المحكومة في جانب الوكيل المحلي مع نقاط دخول الجرد والتشخيص في القيد نفسه «بلا قيم»، فيمرّ التطبيق بسلاسة ويظل الوكيل عاجزًا عن الحصول على الأسرار نفسها. وتجدر الإشارة إلى أن مواد المستودع تصف الوكيل المحلي بأنه «مُصادَق عليه» فقط دون بسط صورة المصادقة نفسها؛ ففي هذه الطبقة اعتمد على ما يذكره المستودع.

حدود الاستخدام

أولًا، يُعيد phantom init كتابة ملف .env، وهذه عملية كتابة حقيقية. خُذ نسخة احتياطية أو سجّل التغييرات في نظام الإصدارات قبل التنفيذ، ولا تلصق الفرق قبل وبعد الاستبدال مباشرة في قناة عامة.

ثانيًا، خاصية العمى عن القيم في أدوات جانب الوكيل تضمن «عدم رؤية القيم» فقط، ولا تعني «القدرة على فعل كل شيء». يضعها المستودع في موقع فحوص القدرة والحالة وحالة المستودع، ولا تُصدر نيابةً عنك أي إجراءات على المزوّد؛ أما النداءات السحابية الحقيقية فتحدث في مسار الطلب الذي يُطلقه التطبيق عبر الوكيل المحلي، لذا ينبغي التمييز بين المقطعين عند التشخيص.

ثالثًا، ليست أداة خالية من المخاطر: فعليها قراءة ملف .env المحلي وملفات إعداد العميل، كما يرسل الوكيل المحلي الطلبات إلى مزوّدين من الغير، فلا تزال الأسرار تتدفق بين جهازك وذلك المزوّد. إن قبولك لهذا المسار يعتمد على ما إذا كانت مؤسستك تسمح بوجوده في جانب الوكيل.

رابعًا، تتغيّر طرق التثبيت وأوصاف الأوامر في المستودع مع كل إصدار، لذا عُد إلى المستودع الرسمي للتحقق قبل الترقية.