
إيصالات موقعة بـ Ed25519 + سياسات Cedar لوكلاء الذكاء الاصطناعي. بوابة التفويض المالي (Legate)، حزم الإثبات، 3 مسودات إنترنت من IETF. npx protect-mcp
بوابة سياسة Cedar بنمط الفشل المغلق بالإضافة إلى إيصالات موقّعة لاستدعاءات أدوات وكيل الذكاء الاصطناعي.
protect-mcp هي بوابة تقف أمام استدعاءات أدوات وكيل الذكاء الاصطناعي. تقيّم
كل استدعاء مقابل سياسة Cedar،
وتحجب ما يخالف القواعد قبل تنفيذه، وتوقّع
إيصال Ed25519 قابلاً للتحقق دون اتصال لكل قرار. تعمل البوابة المُهيّأة محليًا ولا ترسل أي بيانات قياس عن القرارات. أما
محوّل التنسيق المنفصل فيتصل بخدمة التعاون المستضافة من ScopeBlind؛
ولطلباته والسجلات المُعادة مسار البيانات الموصوف أدناه. كلاهما
مرخّص بموجب MIT.
للعمل على المستودعات المشتركة، استخدم مشاريع العملاء: يتفق الأشخاص على الموجز والحدود، ويُعدّ الوكلاء المراجعات، ويوافق كلا الشخصين على نسخة محددة قبل أن يتمكن مستقبِل المالك من تغيير المستودع. يتضمن سير عمل المستودع أدناه الإعداد وأدوات الوكيل الخمس المحدودة.
would_deny: true،
فلا يكون الفشل صامتًا أبدًا.serve --enforce وdoctor اختبارًا
ذاتيًا عند بدء التشغيل ويرفضان تسليح البوابة ما لم يستطيعا إثبات أن إجراءً
معروفًا بأنه محظور يُرفض فعلاً. البوابة التي لا تستطيع إثبات أنها ترفض لا تبدأ.@veritasacta/verify.
لا يحتاج التحقق من التوقيع إلى أي استعلام عبر الشبكة. لكن الادعاءات المتعلقة بالتنفيذ
لا تزال تعتمد على مشغّل البوابة المحدَّد.# 1. Generate an Ed25519 keypair, config template, and sample policy.
npx protect-mcp init
# 2. Print a shadow-mode client configuration, then apply it in your MCP host.
# This command prints configuration and exits; it does not launch the server.
npx protect-mcp wrap -- node your-mcp-server.js
# 3. Reopen the host and use its tools, then inspect the local-only dashboard.
npx protect-mcp dashboard --open
# 4. Draft a reviewable policy from observed calls.
npx protect-mcp recommend --write
# 5. When reviewed, restart the wrapper in enforce mode with that policy.
npx protect-mcp --policy protect-mcp.recommended.json --enforce -- node your-mcp-server.js
بالنسبة لـ Claude Desktop، قم بتشغيل تصحيح تكوين تجريبي أولاً، ثم قم بتطبيقه:
npx protect-mcp wrap --claude-desktop
npx protect-mcp wrap --claude-desktop --write
npx protect-mcp dashboard --open
تتصل لوحة المعلومات بـ 127.0.0.1، وتقرأ فقط ملفات السجلات/الإيصالات المحلية، ولا
ترفع أي شيء. استخدم npx protect-mcp connect فقط إذا كنت تريد صراحةً
لوحة معلومات ScopeBlind المستضافة.
إذا كنت تفضّل استدعاء البوابة كأدوات بدلاً من ربط خطافات Claude Code، فشغّلها كخادم MCP:
npx protect-mcp mcp
يتحدث MCP عبر stdio ويكشف عن أربع أدوات للقراءة فقط، الحلقة الكاملة:
evaluate_action: يقرر استدعاء أداة مقترحًا مقابل سياسة Cedar مضمّنة، بفشل مغلق (أي خطأ في السياسة هو DENY). يُرجع { allowed, decision, reason, policy_digest }.sign_decision: يحوّل القرار إلى إيصال موقّع بـ Ed25519 (الرفض يوقّع gateway_restraint، والسماح يوقّع decision_receipt). يُرجع الإيصال ومفتاحه العام؛ ويولّد مفتاحًا مؤقتًا إذا لم توفّر واحدًا.verify_receipt: يتحقق من إيصال موقّع دون اتصال مقابل مفتاح عام. يُرجع { valid, error, type, kid, issuer }.self_test: يثبته، دون مدخلات. يُرفض إجراء محظور معروف، ثم يمرّ إيصال موقّع ذهابًا وإيابًا وتفشل نسخة معدّلة.وجّه أي مضيف MCP إليه، على سبيل المثال Claude Desktop:
{
"mcpServers": {
"protect-mcp": { "command": "npx", "args": ["-y", "protect-mcp", "mcp"] }
}
}
الإيصالات متوافقة بايت-ببايت مع تلك التي توقّعها البوابة في وقت التشغيل، لذا فإن الإيصال الذي يُصدر هنا يستخدم نفس غلاف Acta. تعتمد قدرات التحقق والتوافق مع التقنين (canonicalization) على إصدار المدقّق؛ استخدم واجهة verifyReceipt الخاصة بالبوابة لسلوك المطابقة الموصوف أدناه.
تُصلح شجرة المصدر هذه عيب ترتيب المفاتيح الرقمية الموجود حتى الإصدار 0.14.0: تستخدم التوقيعات وتجزئات السلسلة الآن إصدار أعضاء JCS المباشر، مع الاحتفاظ بملف مفاتيح الكائنات ASCII الخاص بالبوابة. تأتي المفاتيح التي تبدو رقمية مثل "10" قبل "2"، بما في ذلك داخل الكائنات المتداخلة. تُرفض القيم غير JSON و Unicode غير الصالح.
تستمر إيصالات JSON العادية التي لم تتغير ترميزاتها في التحقق. تُبلَّغ الإيصالات التاريخية الموقّعة بترتيب المفاتيح الرقمية القديم كـ legacy_non_jcs_signature؛ ولا يعتبرها التحقق الصارم صالحة كـ JCS. لإجراء فحص توافق تاريخي صريح، استخدم verifyReceipt(receipt, publicKey, { allowLegacyNumericKeys: true }) وافحص حقلي canonicalization و warning. عندئذٍ يكون hash الخاص بها هو التجزئة التاريخية الأصلية. حافظ على الإيصالات الأصلية وروابط السلسلة: إعادة حساب إيصال قديم بمفاتيح رقمية باستخدام receiptHash تنتج الآن تجزئته JCS وقد تكسر السلسلة التاريخية. هذه التغييرات مضمنة في 0.15.0.
يتضمن الإصدار 0.25.0 ملف تعريف وكيل قابل لإعادة الاستخدام. افتح
ابدأ عبر وكيلك
للحصول على أمر الإعداد مع مفتاح الصلاحية المعروض من الخدمة. تحقق من هذا المفتاح
مقابل مصدر موثوق قبل الاتصال. على سبيل المثال:
npx --yes [email protected] coordination agent setup \
--client claude-code \
--profile ~/.scopeblind/agent.json \
--endpoint https://scopeblind.com/api/coordination \
--authority-key PINNED_64_HEX_AUTHORITY_KEY
استخدم --client codex أو --client json لتعليمات التسجيل تلك.
يطبع الإعداد التكوين؛ طبّقه في عميلك، ثم أعد فتح ذلك العميل.
يحتفظ الملف الشخصي الخاص بمفتاح وكيل واتصالات محددة النطاق بشكل منفصل، مع
أذونات ملفات 600. لا يمنح الإعداد أي أذونات مهام ولا ينسخ أي مفتاح متصفح بشري. يشغّل الخادم المسجَّل coordination agent --profile FILE.
اطلب من وكيلك تحضير مهمة فاتورة مشتركة لمراجعتك. تدفق الأداة هو:
coordination.prepare_task({request_id, draft}) يحفظ مسودة غير موقّعة ويعيد
رابط مراجعة خاص لك. احتفظ بنفس request_id
عند إعادة المحاولة. تحتوي المسودة على عنوان وهدف وحدود مقترحة اختيارية
وافتراضات وتفضيلات خاصة. لا ينشئ أي غرفة أو سلطة بشرية.coordination.inspect_task_request({request_id}) يتحقق من تلك المراجعة.
coordination.claim_task_connection({request_id}) يطالب بالمنحة المفوّضة
بالضبط ويعيد connection_id. ثم استدعِ
coordination.inspect_negotiation({connection_id}) قبل الاقتراح أو الاختبار.coordination.check_handoffs({connection_id}) يكتشف ذلك التفويض؛
coordination.claim_execution_connection({connection_id, handoff_id}) يحفظ
اتصال تنفيذ جديد. افحص connection_id المُعاد قبل
تقديم المدفوعات. لا يصبح رمز التفاوض أبداً رمز دفع.