
Ed25519 हस्ताक्षरित रसीदें + AI एजेंटों के लिए Cedar नीतियाँ। वित्त आदेश गेट (Legate), प्रूफ पैक, 3 IETF इंटरनेट-ड्राफ्ट। npx protect-mcp
AI एजेंट के टूल कॉल के लिए फ़ेल-क्लोज़्ड सेडर पॉलिसी गेट और हस्ताक्षरित रसीदें।
protect-mcp एक गेट है जो AI एजेंट के टूल कॉल के सामने बैठता है। यह प्रत्येक कॉल का मूल्यांकन Cedar पॉलिसी (वही भाषा जो AWS IAM के लिए उपयोग करता है) के विरुद्ध करता है, नियमों को तोड़ने वाले को चलने से पहले ब्लॉक करता है, और प्रत्येक निर्णय की एक ऑफ़लाइन-सत्यापन योग्य Ed25519 रसीद पर हस्ताक्षर करता है। यह स्थानीय रूप से चलता है, आपके निर्णयों की कोई टेलीमेट्री कहीं नहीं भेजता, और MIT लाइसेंस के अंतर्गत है।
would_deny: true के रूप में चिह्नित किया जाता है, इसलिए कोई विफलता कभी चुप नहीं होती।serve --enforce और doctor एक स्टार्टअप सेल्फ-टेस्ट चलाते हैं और गेट को तब तक सशस्त्र करने से इनकार करते हैं जब तक वे यह नहीं दिखा सकते कि एक ज्ञात-निषिद्ध कार्य वास्तव में अस्वीकृत है। एक गेट जो यह साबित नहीं कर सकता कि वह अस्वीकार करता है, शुरू नहीं होता।@veritasacta/verify के साथ ऑफ़लाइन सत्यापन योग्य होते हैं। किसी विक्रेता विश्वास की आवश्यकता नहीं: गणित को इस बात से कोई फर्क नहीं पड़ता कि इसे कौन चलाता है।npx protect-mcp init
npx protect-mcp wrap -- node your-mcp-server.js
npx protect-mcp dashboard --open
npx protect-mcp recommend --write
npx protect-mcp --policy protect-mcp.recommended.json --enforce -- node your-mcp-server.js
Claude Desktop के लिए, पहले एक dry-run config patch चलाएँ, फिर इसे लागू करें:```bash
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 डैशबोर्ड चाहते हैं।
यदि आप क्लॉड कोड हुक्स वायर करने के बजाय गेट को उपकरणों के रूप में कॉल करना चाहते हैं, तो इसे MCP सर्वर के रूप में चलाएँ:```bash npx protect-mcp mcp
यह stdio के ऊपर MCP बोलता है और चार केवल-पढ़ने योग्य उपकरणों को उजागर करता है, पूरा लूप:
- **`evaluate_action`**: एक इनलाइन सीडर नीति के विरुद्ध प्रस्तावित टूल कॉल का निर्णय लें, विफल-बंद (किसी भी नीति त्रुटि पर 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:```json
{
"mcpServers": {
"protect-mcp": { "command": "npx", "args": ["-y", "protect-mcp", "mcp"] }
}
}
रसीदें उनके साथ बाइट-संगत होती हैं जिन्हें गेट रनटाइम पर हस्ताक्षरित करता है, इसलिए यहाँ जारी की गई रसीद @veritasacta/verify और ब्राउज़र सत्यापनकर्ता के साथ समान रूप से सत्यापित होती है।
protect-mcp dashboard दृश्यता से प्रवर्तन की ओर बढ़ने के लिए ऑपरेटर दृश्य है:
Require approval, Block, या Observe के लिए एक-क्लिक स्थानीय नीति संपादन। परिवर्तनों की समीक्षा करने के बाद रैपर को पुनरारंभ करें।लाइव डेस्कटॉप फ़ॉलबैक अनुमोदन के लिए, रैपर द्वारा मुद्रित स्थानीय गेटवे अनुमोदन एंडपॉइंट और nonce के साथ डैशबोर्ड प्रारंभ करें:```bash
npx protect-mcp dashboard --open
--approval-endpoint http://127.0.0.1:9876
--approval-nonce "$PROTECT_MCP_APPROVAL_NONCE"
`Approve` उन फ़्लैग्स के मौजूद होने पर लाइव लोकल गेटवे पर अग्रेषित करता है।
`Deny`, `Edit`, और `Take over` को अनुमोदन-रिकॉर्ड के रूप में स्थानीय रूप से रिकॉर्ड किया जाता है; इन्हें ऑपरेटर निर्देश के रूप में उपयोग करें और आवश्यकता पड़ने पर टूल को पुनः चलाएँ।
### भुगतान सीमा MVP: डाइजेस्ट एंकरिंग, डेटा अपलोड नहीं
स्थानीय स्व-हस्ताक्षरित रसीदें मुफ़्त और ऑफ़लाइन-सत्यापन योग्य रहती हैं। भुगतान सीमा स्वतंत्र साक्ष्य है कि ScopeBlind ने किसी समय पर, किसी संगठन पहचान के तहत, एक रसीद डाइजेस्ट देखा, बिना कच्चे प्रॉम्प्ट, टूल पेलोड, आउटपुट, निजी कुंजी या कच्ची रसीद प्राप्त किए।```bash
# Create or refresh a local org identity and public-key directory.
npx protect-mcp registry init --org "Meridian Global Macro" --billing-account acct_meridian
# Local preview: writes a digest registry and shareable static verifier page.
npx protect-mcp registry anchor
# Hosted mode: uploads receipt digests only for independent anchoring.
SCOPEBLIND_TOKEN=... npx protect-mcp registry anchor \
--hosted \
--endpoint https://api.scopeblind.com \
--verifier-base https://legate.scopeblind.com
स्थानीय पूर्वावलोकन जानबूझकर local-preview-not-independent लेबल किया गया है।
होस्टेड मोड केवल रसीद हैश, अनुरोध आईडी, संगठन सार्वजनिक कुंजी और बिलिंग मेटाडेटा को एंकर करता है। यह कच्ची रसीदें या संवेदनशील संदर्भ अपलोड नहीं करता है।
protect-mcp killer-demo तीन मिनट का पूर्ण सेल्स/डेमो पैक तैयार करता है:```bash
npx protect-mcp killer-demo --dir ./scopeblind-demo
यह नकली फ़ाइल सिस्टम, GitHub, ईमेल और PMS गतिविधि बनाता है; शैडो मोड में जोखिमपूर्ण कॉल दिखाता है; एक नीति पैक लागू करता है; एक संवेदनशील PMS बुकिंग के लिए अनुमोदन की आवश्यकता होती है; गेटवे के माध्यम से निष्पादित करता है; एक हस्ताक्षरित रसीद लिखता है; सिद्ध करता है कि मूल रसीद सत्यापित होती है; सिद्ध करता है कि छेड़छाड़ की गई रसीद विफल होती है; और एक चयनात्मक प्रकटीकरण पैकेज बनाता है जो संवेदनशील संदर्भ को छिपाता है जबकि न्यूनतम प्रमाण दिखाता है।
पहले जनरेट किए गए `DEMO-RUNBOOK.md` को खोलें। फिर ग्राहक को सटीक अनुक्रम के माध्यम से ले जाने के लिए मुद्रित डैशबोर्ड कमांड चलाएं।
### चयनात्मक प्रकटीकरण v0
प्रतिबद्धता-मोड रसीदें स्पष्ट पाठ में हर फ़ील्ड को उजागर करने के बजाय एक `committed_fields_root` ले जा सकती हैं। बाद में, धारक केवल चयनित फ़ील्ड्स का खुलासा कर सकता है:```bash
npx protect-mcp verify-disclosure \
--receipt ./receipts/selective-disclosure.receipt.json \
--disclosure ./receipts/selective-disclosure.tool-only.json
सत्यापनकर्ता मूल रसीद हैश, Ed25519 हस्ताक्षर, प्रतिबद्धता रूट, और प्रत्येक प्रकट किए गए फ़ील्ड का मर्कल प्रूफ जांचता है। फिर यह समझाता है कि कौन से फ़ील्ड प्रकट किए गए और कौन से प्रतिबद्ध फ़ील्ड छिपे रहे। यह नमकीन प्रतिबद्धता प्रकटीकरण है, पूर्ण शून्य-ज्ञान नहीं, लेकिन यह गोपनीयता के दावे को ठोस बनाता है: ऑडिटर पूर्ण टूल पेलोड या संवेदनशील डेस्क संदर्भ प्राप्त किए बिना चयनित तथ्यों को सत्यापित कर सकते हैं।
आप अपने रिकॉर्ड पर एक CLAIM साबित कर सकते हैं बिना इसे प्रकट किए। पूरे रिकॉर्ड पर एक हस्ताक्षरित, position-blind प्रमाणन जारी करें जो केवल प्रति-निर्णय श्रेणियां (एक रसीद डाइजेस्ट, निर्णय, क्षमता टैग) प्रकट करता है, कभी आपके टूल इनपुट, आउटपुट या डेटा नहीं:```bash
npx protect-mcp claim --no net.egress
कोई भी इसे ऑफ़लाइन सत्यापित करता है, केवल श्रेणियाँ देखता है, सामग्री कभी नहीं:```bash
npx protect-mcp verify-claim claim-<id>.json
सत्यापनकर्ता प्रकट किए गए सेट पर एक मर्कल रूट की पुनर्गणना करता है और स्वतंत्र रूप से विधेय की पुनर्गणना करता है, ताकि जारीकर्ता प्रकटीकरण के आधार पर दावे के बारे में झूठ नहीं बोल सके। सार्वजनिक, केवल-जोड़ें ScopeBlind पारदर्शिता लॉग में दावे के डाइजेस्ट को रिकॉर्ड करने के लिए --anchor जोड़ें, ताकि आप पर भरोसा न करने वाला प्रतिपक्ष यह पुष्टि कर सके कि प्रकट किया गया सेट पूर्ण है और चुपचाप पुन: काटा नहीं गया (केवल हैश भेजा जाता है; रिकॉर्ड स्थानीय रहता है):```bash
npx protect-mcp claim --no net.egress --anchor
यह एक जवाबदेह, स्थिति-अंध प्रमाणीकरण है, पूर्ण शून्य-ज्ञान नहीं: यह आकार प्रकट करता है, सामग्री नहीं।
## 60 सेकंड में इसे आज़माएं (कोई एजेंट आवश्यक नहीं)
[](https://legate.scopeblind.com/record)
दो मिनट की फिल्म [legate.scopeblind.com/record](https://legate.scopeblind.com/record) पर देखें, फिर इसे अपनी प्रति पर फिर से चलाएं:```bash
npx protect-mcp sample # seed a labeled sample record (8 decisions: 1 blocked, 2 payments)
npx protect-mcp record # open it: signatures verified in your browser
npx protect-mcp claim --payment-under 100 --anchor --output payments-under-100.json
npx protect-mcp verify-claim payments-under-100.json
npx protect-mcp anchor-record
उत्पन्न demo-tampered.jsonl को रिकॉर्ड पेज में डालें ताकि पोस्ट-साइनिंग संपादन पकड़ा जा सके। sample किसी मौजूदा रिकॉर्ड को छूने से इंकार करता है, इसलिए इसे एक खाली फ़ोल्डर में चलाएँ। जब आप असली चीज़ के लिए तैयार हों, तो नीचे दिए गए गेट को वायर करें और वही कमांड अपने एजेंट के अपने रिकॉर्ड के विरुद्ध चलाएँ।
npx protect-mcp init-hooks
npx protect-mcp serve --enforce --cedar ./cedar
एकल-शॉट मूल्यांकन, जिस तरह से एक PreToolUse हुक इसे कॉल करता है। एग्ज़िट कोड 2 का अर्थ है अस्वीकार (टूल ब्लॉक हो गया है); एग्ज़िट कोड 0 का अर्थ है अनुमति:```bash
npx protect-mcp evaluate --cedar ./cedar --tool Bash --input '{"command":"rm"}'
echo $? # 2 -> denied, fail-closed
npx protect-mcp evaluate --cedar ./cedar --tool Read --input '{"path":"README.md"}'
echo $? # 0 -> allowed
एक लापता या अनलोड करने योग्य नीति अस्वीकार करती है (exit 2) जब तक कि आप स्पष्ट रूप से
--fail-on-missing-policy false पास न करें।
protect-mcp init-hooks आपके लिए एक .claude/settings.json लिखता है। गेट को हाथ से
जोड़ने के लिए, आपको दो क्रियाओं की आवश्यकता है: evaluate (PreToolUse, exit 2 पर ब्लॉक करता है)
और sign (PostToolUse, एक रसीद रिकॉर्ड करता है)। संस्करण को पिन करें ताकि एक Claude Code
सत्र हमेशा उस गेट को चलाए जिसका आपने परीक्षण किया है:```json
{
"hooks": {
"PreToolUse": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "npx [email protected] evaluate --cedar ./cedar --tool "$TOOL_NAME" --input "$TOOL_INPUT""
}
]
}
],
"PostToolUse": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "npx [email protected] sign --tool "$TOOL_NAME" --receipts ./receipts --key ./keys/gateway.json"
}
]
}
]
}
}
`evaluate` अस्वीकार पर 2 कोड से बाहर निकलता है, जिससे Claude Code टूल कॉल को ब्लॉक कर देता है, और अनुमति पर 0 कोड से बाहर निकलता है।
`sign` सर्वोत्तम प्रयास है: यह एक कुंजी कॉन्फ़िगर होने पर Ed25519-हस्ताक्षरित रसीद जोड़ता है, और यदि कोई हस्ताक्षरकर्ता उपलब्ध नहीं है तो यह टूल को विफल करने के बजाय एक ईमानदार अहस्ताक्षरित पंक्ति (`"signed": false`) रिकॉर्ड करता है।
## इसे अन्य एजेंटों में उपयोग करें (Codex, Cursor, Gemini, Hermes)
वही fail-closed गेट किसी भी एजेंट में टूल हुक के रूप में चलता है जो उनका समर्थन करता है। `--format <host>` जोड़ें ताकि क्रिया उस होस्ट के हुक पेलोड को stdin से पढ़े और अपने अनुबंध में अस्वीकार कर दे:```bash
# the PreToolUse / before-tool command for each host
npx -y protect-mcp@latest evaluate --format codex --cedar ./cedar # OpenAI Codex
npx -y protect-mcp@latest evaluate --format gemini --cedar ./cedar # Gemini CLI BeforeTool
npx -y protect-mcp@latest evaluate --format cursor --cedar ./cedar # Cursor beforeShellExecution
npx -y protect-mcp@latest evaluate --format hermes --cedar ./cedar # Hermes pre_tool_call
प्रत्येक को sign --format <host> के साथ संयोजित करें post-tool ईवेंट में रसीदों के लिए। महत्वपूर्ण मामला Hermes है, जो हुक एग्ज़िट कोड को अनदेखा करता है और stdout से फैसला पढ़ता है, इसलिए --format hermes {"decision":"block"} के माध्यम से अस्वीकार करता है न कि exit 2 के द्वारा (एक कच्चा exit-2 वहां चुपचाप विफल हो जाएगा)। --format के बिना, क्रियाएँ --tool/--input फ़्लैग को ऊपर Claude Code अनुभाग की तरह ही पढ़ती हैं।
Cedar नीतियाँ एक निर्देशिका में रहती हैं जिसे आप --cedar के साथ इंगित करते हैं। एक forbid नियम अस्वीकार करता है, एक permit नियम अनुमति देता है। टूल इनपुट में किसी मान से मिलान करने के लिए, .contains() मुहावरे का उपयोग करें:```cedar
// Allow read-only tools.
permit(
principal,
action == Action::"MCP::Tool::call",
resource == Tool::"Read"
);
// Deny dangerous shell commands by matching the command against a list. forbid( principal, action == Action::"MCP::Tool::call", resource == Tool::"Bash" ) when { ["rm", "dd", "mkfs"].contains(context.command) };
// Block destructive tools outright. forbid( principal, action == Action::"MCP::Tool::call", resource == Tool::"delete_file" );
> **खतरा:** किसी स्ट्रिंग को किसी सूची से मैच करने के लिए `context.command in ["rm", "dd"]` न लिखें। `in` एंटिटी पदानुक्रमों के लिए है, स्ट्रिंग सदस्यता के लिए नहीं। Cedar इस एक्सप्रेशन को टाइप त्रुटि मानता है और चुपचाप पूरे `forbid` नियम को हटा देता है, जो (फेल-ओपन गेट के तहत) एक शेष `permit` को छोड़ देता है। यह नीचे दिए गए सलाहकार नोट के पीछे का सटीक दोष है। इसके बजाय `[...].contains(context.command)` का उपयोग करें। 0.7.0 संस्करण से गेट उस त्रुटि पर अनुमति देने के बजाय अस्वीकार कर देता है, और एक CI ट्रिपवायर परीक्षण बिल्ड को विफल कर देता है यदि पैटर्न शिप की गई नीति में पुनः प्रस्तुत किया जाता है। देखें [GHSA-hm46-7j72-rpv9](https://github.com/ScopeBlind/scopeblind-gateway/security/advisories/GHSA-hm46-7j72-rpv9)।
### स्टार्टर नीति पैक
अधिकांश टीमों को पहले दिन से Scratch से Cedar नहीं लिखना चाहिए। एक स्टार्टर पैक स्थापित करें, शैडो मोड में चलाएं, रसीदों का निरीक्षण करें, फिर सख्त करें या लागू करें:```bash
npx protect-mcp policy-packs list
npx protect-mcp policy-packs show secrets-safe
npx protect-mcp policy-packs install filesystem-safe --dir ./cedar
npx protect-mcp policy-packs install all --dir ./cedar
npx protect-mcp serve --cedar ./cedar
अंतर्निहित पैक:
filesystem-safe: डिस्ट्रक्टिव फ़ाइल कार्रवाइयाँ और सीक्रेट-जैसे पथ रीड।git-safe: फोर्स पुश, हार्ड रीसेट, डिस्ट्रक्टिव क्लीनअप, रिपॉजिटरी डिलीट।email-safe: ड्राफ्टिंग की अनुमति दें, बिना उपस्थिति के भेजने को ब्लॉक करें।database-safe: रीड-ओरिएंटेड DB पोस्चर, राइट/एडमिन SQL ब्लॉक करें।cloud-spend-safe: स्पष्ट क्लाउड खर्च सृजन और बुनियादी ढांचे का विनाश।secrets-safe: सामान्य फ़ाइल, एनवी, शेल, और क्लाउड सीक्रेट एक्सफ़िल्ट्रेशन।finance-mandate-safe: बुकिंग प्रवाह में प्रतिबंधित-सूची और एकाग्रता उल्लंघन।रसीदें सार्वजनिक कुंजी वाले किसी भी व्यक्ति द्वारा ऑफ़लाइन हस्ताक्षरित और सत्यापन योग्य हैं। कोई नेटवर्क नहीं, कोई विक्रेता नहीं, ScopeBlind में कोई भरोसा नहीं:```bash npx @veritasacta/verify ./receipts/receipts.jsonl --format jsonl
`npx protect-mcp bundle --output audit.json` एक स्व-निहित, ऑफ़लाइन-सत्यापनीय ऑडिट बंडल निर्यात करता है जिसमें आपकी रसीदें और सार्वजनिक हस्ताक्षर कुंजी शामिल होती है।
## सुरक्षा
`protect-mcp` 0.7.0 डिज़ाइन द्वारा फेल क्लोज्ड है। किसी भी नीति-मूल्यांकन त्रुटि, लापता इंजन, या ऐसी नीति जो मूल्यांकन पर त्रुटि देती है, पर निर्णय DENY होता है, allow नहीं। `serve --enforce` और `doctor` बूट सेल्फ-टेस्ट चलाते हैं जो साबित करता है कि गेट किसी ज्ञात-निषिद्ध वेक्टर को भरोसा किए जाने से पहले अस्वीकार करता है, और यदि ऐसा नहीं कर सकता तो सशस्त्र होने से इनकार करता है।
**प्रभावित संस्करण: 0.5.x और 0.6.x।** वे रेखाएं फेल ओपन होती हैं (वे मूल्यांकन त्रुटि पर ALLOW लौटाती हैं) और पिन किए गए इंजन के विरुद्ध Cedar का सही मूल्यांकन नहीं करती हैं, इसलिए एक `forbid` नियम अवरुद्ध करने में विफल हो सकता है। **>= 0.7.0 पर अपग्रेड करें।**
विवरण और सुधार: [GHSA-hm46-7j72-rpv9](https://github.com/ScopeBlind/scopeblind-gateway/security/advisories/GHSA-hm46-7j72-rpv9)। भेद्यता की रिपोर्ट करने के लिए, [SECURITY.md](https://github.com/scopeblind/scopeblind-gateway/blob/main/SECURITY.md) देखें।
## आदेश
| Command | Description |
|---------|-------------|
| `serve` | Claude Code के लिए HTTP हुक सर्वर प्रारंभ करें (पोर्ट 9377)। `--enforce` पहले संयम स्व-परीक्षण चलाता है; `--cedar <dir>` और `--policy <path>` नीति का चयन करते हैं। |
| `init` | एक Ed25519 कुंजी युग्म (`keys/gateway.json`), एक कॉन्फ़िग टेम्पलेट, और एक नमूना नीति उत्पन्न करें। |
| `sample` | एक स्पष्ट रूप से लेबल किया गया नमूना रिकॉर्ड (8 निर्णय: एक अवरुद्ध कॉल, दो भुगतान; kid `sample-demo`) और एक छेड़छाड़ की गई प्रतिलिपि बीजित करें, ताकि एजेंट को वायर करने से पहले `record`, `claim`, `verify-claim`, और `anchor-record` को शुरू से पुन: चलाया जा सके। मौजूदा रिकॉर्ड को छूने से इनकार करता है; `--force` ओवरराइड करता है। |
| `policy` | टर्मिनल से Cedar नीति देखें और बदलें: `policy list` (प्रति टूल permit / forbid / default-deny, गेट ने इसे कितनी बार अनुमति दी या अस्वीकार किया), `policy show`, `policy allow <tool>`, `policy deny <tool>`, `policy path`। चल रहा `serve` बदलाव पर हॉट-रीलोड करता है। |
| `wrap` | एक संरक्षित MCP कमांड प्रिंट करें या Claude Desktop MCP सर्वर को पैच करें। डिफ़ॉल्ट रूप से ड्राई-रन; Claude Desktop कॉन्फ़िग अपडेट करने के लिए `--write` का उपयोग करें। |
| `dashboard` | `127.0.0.1` पर एक केवल-स्थानीय डैशबोर्ड प्रारंभ करें जो टूल इन्वेंट्री, जोखिम, नीति कवरेज, सटीक-क्रिया अनुमोदन, रसीद श्रृंखला, और ऑडिट निर्यात दिखाता है। |
| `recommend` | देखे गए स्थानीय कॉलों से एक समीक्षा योग्य JSON नीति का मसौदा तैयार करें। डिफ़ॉल्ट रूप से ड्राई-रन; `protect-mcp.recommended.json` बनाने के लिए `--write` का उपयोग करें। |
| `registry` | एक संगठन पहचान बनाएं, रसीद डाइजेस्ट एंकर करें, और एक स्थिर सत्यापनकर्ता पृष्ठ लिखें। होस्टेड मोड केवल डाइजेस्ट अपलोड करता है। |
| `record` | अपनी रसीदों पर एक स्थानीय, खोज योग्य दर्शक खोलें (`--live` एजेंट चलने पर स्ट्रीम करता है): आपके ब्राउज़र में आपकी गेटवे कुंजी, क्षमता टैग, एक उत्पत्ति वृक्ष, और एक-क्लिक हस्ताक्षरित निर्यात के विरुद्ध सत्यापित Ed25519 हस्ताक्षर। सभी स्थानीय, कुछ भी अपलोड नहीं। |
| `claim` | रिकॉर्ड पर एक पूर्वानुमान का हस्ताक्षरित, स्थिति-अंध प्रमाणिकरण ढालें (`--no <cap>` incl. `--no payment`, `--only <c1,c2>`, `--no-verdict <verdict>`, `--count <verdict>`, `--payment-under <cap>`), केवल निर्णय श्रेणियों का खुलासा करते हुए। सार्वजनिक पारदर्शिता लॉग में दावा डाइजेस्ट रिकॉर्ड करने के लिए `--anchor` जोड़ें; नामांकित कुंजियाँ नामित संगठन के रूप में एंकर करती हैं। |
| `anchor-record` | रिकॉर्ड के Merkle रूट + गणना + समय सीमा को सार्वजनिक लॉग में चेकपॉइंट करें (हार्टबीट-अनुकूल: अपरिवर्तित होने पर छोड़ देता है)। बाद का दावा जिसकी प्रतिबद्धता एक एंकर किए गए चेकपॉइंट से मेल खाती है, उस चेकपॉइंट के अनुसार पूर्ण रिकॉर्ड पर प्रमाणित रूप से होता है। |
| `verify-claim` | एक दावा पैक को ऑफ़लाइन सत्यापित करें: हस्ताक्षर, पुनर्गणना Merkle रूट, स्वतंत्र रूप से पुनर्गणना पूर्वानुमान, और एंकर साइडकार जब मौजूद हो (एंकर किए गए लिफाफे को इस सटीक दावे से बांधता है, फिर पुष्टि करता है कि सार्वजनिक लॉग इसे रखता है)। `--check-anchor` को एंकर की आवश्यकता है; `--offline` लॉग हॉप को छोड़ देता है। |
| `killer-demo` | शैडो-मोड से नीति से अनुमोदन से हस्ताक्षरित-रसीद डेमो पैक तक एक पूर्ण उत्पन्न करें। |
| `verify-disclosure` | एक `scopeblind.selective_disclosure.v0` पैकेज सत्यापित करें और प्रकट बनाम छिपे हुए फ़ील्ड समझाएं। |
| `policy-packs` | स्टार्टर Cedar नीति पैक सूचीबद्ध करें, निरीक्षण करें और स्थापित करें। |
| `evaluate` | एक टूल कॉल का Cedar नीति (PreToolUse गेट) के विरुद्ध मूल्यांकन करें। Exit 2 = अस्वीकार (फेल-क्लोज्ड), exit 0 = अनुमति दें। |
| `sign` | एक टूल कॉल पर हस्ताक्षर करके रसीद बनाएं (PostToolUse)। सर्वोत्तम प्रयास: यदि कोई कुंजी नहीं है तो एक ईमानदार अहस्ताक्षरित पंक्ति रिकॉर्ड करता है। |
| `simulate` | यह देखने के लिए कि क्या अवरुद्ध होता, एक रिकॉर्ड किए गए निर्णय लॉग के विरुद्ध ड्राई-रन नीति चलाएं। |
| `demo` | गेट के साथ लिपटा एक अंतर्निहित डेमो सर्वर प्रारंभ करें, तुरंत रसीदें देखने के लिए। |
| `doctor` | अपनी सेटअप (कुंजियाँ, नीतियाँ, Cedar इंजन, सत्यापनकर्ता) जांचें और संयम स्व-परीक्षण चलाएं। |
| `bundle` | रसीदों और सार्वजनिक कुंजी का एक ऑफ़लाइन-सत्यापनीय ऑडिट बंडल निर्यात करें। |
| `report` | निर्णय लॉग और रसीदों से एक अनुपालन रिपोर्ट (Markdown या JSON) उत्पन्न करें। |
पूर्ण फ़्लैग संदर्भ के लिए `npx protect-mcp --help` चलाएँ।
## लिंक
- प्रोटोकॉल (IETF): [draft-farley-acta-signed-receipts](https://datatracker.ietf.org/doc/draft-farley-acta-signed-receipts/)
- [CHANGELOG](https://github.com/scopeblind/scopeblind-gateway/blob/main/CHANGELOG.md)
- [npm](https://www.npmjs.com/package/protect-mcp)
- [scopeblind.com](https://scopeblind.com)
MIT लाइसेंस प्राप्त। [ScopeBlind](https://scopeblind.com) द्वारा निर्मित।