
cMCP: गोपनीय MCP गेटवे। MCP टूल कॉल के लिए हार्डवेयर-प्रमाणित नीति प्रवर्तन।
त्वरित आरंभ · आर्किटेक्चर · कॉन्फ़िगरेशन · CLI · परिवर्तन लॉग
डेवलपर प्रीव्यू - कॉन्फिडेंशियल कंप्यूटिंग समिट, 23 जून 2026 में लॉन्च किया गया। v1.0 से पहले ब्रेकिंग परिवर्तन हो सकते हैं। आज क्या शिप होता है बनाम रोडमैप पर क्या है, इसके लिए STATUS.md देखें।
cMCP (कॉन्फिडेंशियल MCP रनटाइम) MCP चलाने का सुरक्षित, गोपनीय तरीका है: एक ओपन-सोर्स गेटवे जो MCP टूल-कॉल नीति को हार्डवेयर ट्रस्टेड एक्ज़ीक्यूशन एनवायरनमेंट (TEE) के अंदर लागू करता है। हर टूल कॉल को इंटरसेप्ट किया जाता है, Cedar पॉलिसी बंडल के विरुद्ध मूल्यांकन किया जाता है, और वहां लागू किया जाता है जहां इसके द्वारा नियंत्रित प्रक्रिया उस तक नहीं पहुंच सकती। प्रत्येक सत्र एक हस्ताक्षरित TRACE क्लेम उत्पन्न करता है जिसे एक वेरिफायर ऑपरेटर पर भरोसा किए बिना जांचता है, जब गेटवे TEE में चलता है तो हार्डवेयर-प्रमाणित होता है और सॉफ़्टवेयर मोड में केवल-हस्ताक्षरित होता है। यदि आप MCP का सुरक्षित संस्करण खोज रहे हैं, तो यह इसके लिए AgenTrust रनटाइम है।
TL;DR - अपने एजेंट को cMCP गेटवे की ओर इंगित करें। यह TEE के अंदर Cedar नीति के विरुद्ध हर टूल कॉल का मूल्यांकन करता है, जो नीति अस्वीकार करती है उसे ब्लॉक या रिडैक्ट करता है, और प्रमाण के रूप में एक छेड़छाड़-स्पष्ट TRACE क्लेम उत्सर्जित करता है।
pip install cmcp-runtimeचलाएं और बिना किसी हार्डवेयर की आवश्यकता के सॉफ़्टवेयर मोड में शुरू करें।
आपका एजेंट Snowflake, Salesforce, एक दर्जन APIs को कॉल करता है। उन कॉलों में से किसी एक पर ग्राहक का डेटा लीक होने से इसे क्या रोकता है? यदि कोई नियामक पूछता है, तो क्या आप साबित कर सकते हैं कि ऐसा नहीं हुआ?
एक एजेंट एक टूल को कॉल करता है। पॉलिसी इंजन अनुमति देता है। टूल कॉल हो जाती है।
इनमें से कोई भी यह साबित नहीं करता कि पॉलिसी इंजन स्वयं समझौता नहीं किया गया था। केवल-सॉफ़्टवेयर MCP गवर्नेंस गारंटी नहीं दे सकता:
टूल कॉल को नियंत्रित करने वाला कंट्रोल प्लेन वहां चलना चाहिए जहां इसके द्वारा नियंत्रित प्रक्रिया उस तक नहीं पहुंच सकती।
MCP टूल कॉल के लिए हार्डवेयर-प्रमाणित पॉलिसी प्रवर्तन। हर टूल कॉल को इंटरसेप्ट किया जाता है, Cedar पॉलिसी बंडल के विरुद्ध मूल्यांकन किया जाता है, और ट्रस्टेड एक्ज़ीक्यूशन एनवायरनमेंट (TEE) के अंदर चलने वाले पॉलिसी इंजन द्वारा लागू किया जाता है। किसी भी कोड के चलने से पहले पॉलिसी बंडल हैश को हार्डवेयर अटेस्टेशन रिपोर्ट में मापा जाता है।
टनल-आधारित कनेक्टिविटी समाधानों के विपरीत, cMCP रनटाइम TEE के अंदर टूल-कॉल पेलोड को प्रोसेस करता है। कनेक्टिविटी प्रदाता सिफरटेक्स्ट देखता है, प्लेनटेक्स्ट नहीं। एन्क्लेव से केवल हस्ताक्षरित TRACE क्लेम निकलता है।
pip install cmcp-runtime
cmcp-config.yaml बनाएं:
attestation:
provider: auto
enforcement_mode: advisory # advisory पहली बार ट्यूनिंग को आसान बनाता है; डिफ़ॉल्ट `enforcing` है
listen_addr: "127.0.0.1:8443" # लूपबैक पिन करें: डेव मोड बिना बियरर टोकन के चलता है
policy_bundle_path: ./policies/
catalog_path: ./catalog.json
listen_addr यहां अनिवार्य है। CMCP_DEV_MODE=1 जानबूझकर बियरर टोकन आवश्यकता को छोड़ देता है ताकि आप चीजों को जल्दी आज़मा सकें, और डिफ़ॉल्ट बाइंड अभी भी 0.0.0.0:8443 है। 0.3.0 पर उस संयोजन ने आपकी मशीन के हर इंटरफ़ेस पर एक अनप्रमाणित गेटवे खड़ा कर दिया। 0.4.0 से इसे अस्वीकार कर दिया गया है: टोकनलेस डेव मोड केवल लूपबैक एड्रेस बाइंड कर सकता है, और गैर-लूपबैक बाइंड के लिए CMCP_BEARER_TOKEN की आवश्यकता होती है। listen_addr को स्पष्ट रूप से पिन करें और कॉन्फ़िगरेशन दोनों पर सही है।
गेटवे शुरू करें:
CMCP_DEV_MODE=1 cmcp start --config cmcp-config.yaml
टूल कॉल करें:
curl -X POST http://localhost:8443/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"salesforce.contacts","arguments":{"query":"Acme Corp"},"_cmcp":{"session_id":"s1","workflow_id":"demo-agent"}}}'
क्या आप एक निर्देशित संस्करण पसंद करते हैं? agentrust-io.com/quickstart एक लैपटॉप पर लगभग दस मिनट में वही रास्ता दिखाता है, बिना किसी हार्डवेयर और बिना साइनअप के: इंस्टॉल करें, एक Cedar forbid नियम लिखें, एक टूल कॉल को अपस्ट्रीम तक पहुंचने से पहले 403 POLICY_DENY लौटते देखें, फिर हस्ताक्षरित रसीद सत्यापित करें।
पूर्ण वॉकथ्रू के लिए docs/quickstart.md देखें: Cedar नीति, टूल कैटलॉग, पहला TRACE क्लेम, और सत्यापन (कोई हार्डवेयर TEE आवश्यक नहीं)।
Agent -> cMCP Runtime -> Cedar Policy Engine (TEE) -> Tool
|
GatewayClaim (TRACE Profile)
+-- trace.eat_profile
+-- trace.runtime.platform + measurement
+-- trace.policy.bundle_hash
+-- trace.cnf.jwk (Ed25519 confirmation key)
+-- gateway.audit_chain (root/tip/length)
+-- signature (Ed25519 over canonical JSON)
प्रदाता ऑटो-डिटेक्ट प्रोब क्रम: azure-cvm -> tpm -> sev-snp -> tdx। पहला प्रदाता जिसका detect() सफल होता है उसे चुना जाता है। opaque एक अभी-लागू-नहीं प्लेसहोल्डर है: इसे ऑटो-डिटेक्ट से बाहर रखा गया है, और इसे स्पष्ट रूप से चुनने पर चुपचाप गिरने के बजाय ATTESTATION_PROVIDER_NOT_IMPLEMENTED उठता है। यदि कोई हार्डवेयर प्रदाता पता नहीं चलता है, तो गेटवे केवल CMCP_DEV_MODE=1 के तहत शुरू होता है (एक गैर-प्रमाणित केवल-सॉफ़्टवेयर फ़ॉलबैक) और अन्यथा शुरू करने से इनकार करता है।
from cmcp_runtime.config import TEEProvider
# ऑटो-डिटेक्ट (डिफ़ॉल्ट)
# attestation.provider: auto -> azure-cvm -> tpm -> sev-snp -> tdx
# (सॉफ़्टवेयर-केवल केवल CMCP_DEV_MODE=1 के तहत उपयोग किया जाता है)
# स्पष्ट हार्डवेयर चयन
# attestation.provider: sev-snp
# OPAQUE प्रबंधित रनटाइम (केवल ऑप्ट-इन; अभी लागू नहीं)
# OPAQUE_ATTESTATION_URL=https://... cmcp start --config cmcp-config.yaml
| मोड | व्यवहार | उपयोग का मामला |
|---|---|---|
डिफ़ॉल्ट enforcing है। एडवाइज़री मोड का उपयोग करने के लिए cmcp-config.yaml में enforcement_mode: advisory सेट करें।
cmcp-config.yaml पूर्ण संदर्भ:
attestation:
provider: auto # auto | tpm | sev-snp | tdx | opaque | software-only
enforcement_mode: enforcing # enforcing | advisory | silent
validity_seconds: 86400 # अटेस्टेशन ताज़गी विंडो (डिफ़ॉल्ट: 24 घंटे)
staleness_policy: fail_closed # fail_closed | warn_only
expected_measurement: ~ # एक विशिष्ट PCR/माप पिन करें (वैकल्पिक)
policy_bundle_path: policies/ # .cedar फ़ाइलों और manifest.json वाली निर्देशिका
catalog_path: catalog.json # अनुमोदित टूल कैटलॉग
listen_addr: "127.0.0.1:8443" # टोकनलेस डेव मोड केवल-लूपबैक है; व्यापक बाइंड से पहले CMCP_BEARER_TOKEN सेट करें
max_response_size_bytes: 2097152 # 2 MB डिफ़ॉल्ट
policy_reload_interval_seconds: 0 # >0 पिन किए गए CMCP_POLICY_HASH के साथ शुरू करने से इनकार करता है, docs/spec/policy-hot-reload.md देखें
पर्यावरण चर:
| चर | प्रभाव |
|---|---|
CMCP_DEV_MODE=1 | केवल-सॉफ़्टवेयर TEE प्रदाता का उपयोग करें; कोई हार्डवेयर आवश्यक नहीं |
CMCP_BEARER_TOKEN | सभी इनबाउंड अनुरोधों पर इस बियरर टोकन की आवश्यकता होती है |
OPAQUE_ATTESTATION_URL | OPAQUE प्रबंधित रनटाइम अटेस्टेशन सक्षम करें (स्पष्ट ऑप्ट-इन) |
एक GatewayClaim प्रमाण की इकाई है जो ऑडिटर, नियामक, या डाउनस्ट्रीम वेरिफायर को सौंपी जाती है। यह प्रति सत्र (या प्रति कॉल, कॉन्फ़िगर करने योग्य) उत्पन्न होता है और एक कुंजी के साथ हस्ताक्षरित होता है जो TEE को कभी नहीं छोड़ती।
(यह तालिका सबसे अधिक उपयोग किए जाने वाले फ़ील्ड का सारांश है।)
cmcp_verify लाइब्रेरी के साथ सत्यापन के लिए ऑपरेटर पर भरोसा करने की आवश्यकता नहीं है। वेरिफायर हस्ताक्षर को TEE-बद्ध कुंजी के विरुद्ध, पॉलिसी बंडल हैश को अनुमोदित मान के विरुद्ध, और आंतरिक स्थिरता के लिए ऑडिट श्रृंखला की जांच करता है।
मानक स्कीमा schemas/trace-claim.schema.json है, और docs/quickstart.md एक पूर्ण उदाहरण दिखाता है। पूर्ण सत्यापन प्रोटोकॉल के लिए docs/spec/verification-library.md और TRACE विनिर्देश देखें।
भेद्यता रिपोर्टिंग और प्रतिक्रिया SLA के लिए SECURITY.md देखें। स्पष्ट स्कोप सीमाओं के लिए LIMITATIONS.md देखें, जिसमें APM पेलोड कैप्चर, रनटाइम कॉन्फ़िग इंजेक्शन, और P4.1 सप्लाई चेन (टाइपोस्क्वाट) के लिए अवशिष्ट जोखिम शामिल हैं जिन्हें चरण 1 बंद नहीं करता।
cMCP (कॉन्फिडेंशियल MCP रनटाइम) एक ओपन-सोर्स गेटवे है जो MCP टूल-कॉल नीति को हार्डवेयर ट्रस्टेड एक्ज़ीक्यूशन एनवायरनमेंट के अंदर लागू करता है। यह प्रत्येक टूल कॉल को इंटरसेप्ट करता है, Cedar पॉलिसी बंडल के विरुद्ध मूल्यांकन करता है, निर्णय (अनुमति, अस्वीकृति, या रिडैक्शन) लागू करता है, और कॉल को हार्डवेयर-सील ऑडिट श्रृंखला में रिकॉर्ड करता है।
केवल-सॉफ़्टवेयर गवर्नेंस पॉलिसी इंजन को उसी OS में चलाता है जिस तक एक ऑपरेटर या सप्लाई चेन CVE पहुंच सकता है, इसलिए यह साबित नहीं कर सकता कि जो नीति चली वह अनुमोदित थी या निर्णय मेमोरी में पलटा नहीं गया था। cMCP पॉलिसी इंजन को TEE के अंदर चलाता है और किसी भी कोड के चलने से पहले Cedar बंडल हैश को हार्डवेयर अटेस्टेशन रिपोर्ट में मापता है, इसलिए कंट्रोल प्लेन उस प्रक्रिया तक नहीं पहुंच सकता जिसे वह नियंत्रित करता है।
नहीं। केवल-सॉफ़्टवेयर TEE प्रदाता का उपयोग करने और बिना हार्डवेयर TEE के पूरा क्विकस्टार्ट चलाने के लिए CMCP_DEV_MODE=1 सेट करें। हार्डवेयर प्रदाता (TPM, AMD SEV-SNP, Intel TDX, OPAQUE) उत्पादन में उपयोग किए जाते हैं।
एक TRACE क्लेम (एक GatewayClaim) एक हस्ताक्षरित, हार्डवेयर-प्रमाणित आर्टिफैक्ट है जो प्रति सत्र उत्पन्न होता है। यह रिकॉर्ड करता है कि कौन से टूल चले, किस नीति ने प्रत्येक कॉल का निर्णय किया, Cedar बंडल हैश, और ऑडिट श्रृंखला, और यह एक Ed25519 कुंजी के साथ हस्ताक्षरित होता है जो TEE को कभी नहीं छोड़ती। एक वेरिफायर इसे cmcp_verify लाइब्रेरी के साथ ऑपरेटर पर भरोसा किए बिना जांचता है।
TPM 2.0 / vTPM, AMD SEV-SNP, और Intel TDX, v0.2 के लिए NVIDIA GPU कॉन्फिडेंशियल कंप्यूटिंग की योजना के साथ और OPAQUE गोपनीय रनटाइम स्पष्ट ऑप्ट-इन के रूप में उपलब्ध है। ऑटो-डिटेक्शन क्रम Azure कॉन्फिडेंशियल VM है, फिर TPM 2.0 / vTPM, फिर AMD SEV-SNP, फिर Intel TDX; केवल-सॉफ़्टवेयर प्रदाता केवल CMCP_DEV_MODE=1 के तहत उपयोग किया जाता है।
MIT।
CONTRIBUTING.md · GOVERNANCE.md · [चर्चाएँ](https
| प्रदाता | प्लेटफ़ॉर्म | आश्वासन | नोट्स |
|---|
tpm | TPM 2.0 / vTPM (Azure, AWS, GCP Trusted Launch) | मध्यम | स्थानीय TPM कोट |
sev-snp | AMD SEV-SNP (Azure DCasv5, AWS C6a Nitro) | उच्च | AMD KDS |
tdx | Intel TDX (Azure DCedsv5, GCP C3) | उच्च | Intel PCS |
gpu-cc (v0.2) | NVIDIA H100/H200/Blackwell (CC मोड) | उच्च | NVIDIA Remote Attestation Service (NRAS) |
opaque (ऑप्ट-इन) | OPAQUE गोपनीय रनटाइम | n/a (अभी लागू नहीं) | प्लेसहोल्डर: ऑटो-डिटेक्ट से बाहर; इसे स्पष्ट रूप से चुनने पर नॉट-इम्प्लीमेंटेड त्रुटि उठती है |
enforcing| नीति अस्वीकृतियां HTTP 403 लौटाती हैं; कॉल आगे नहीं भेजी जाती |
| उत्पादन |
advisory | नीति अस्वीकृतियां लॉग होती हैं; कॉल आगे बढ़ती है | पहली तैनाती, नीति ट्यूनिंग |
silent | नीति का मूल्यांकन होता है लेकिन कुछ भी लॉग या ब्लॉक नहीं होता | बेसलाइनिंग |
| कमांड | फ़्लैग | विवरण |
|---|
cmcp start | --config PATH (आवश्यक) | गेटवे शुरू करें |
cmcp validate-config | --config PATH (आवश्यक) | शुरू किए बिना cmcp-config.yaml मान्य करें |
cmcp validate-bundle | --bundle-path PATH (आवश्यक), --expected-hash sha256:<hex> (आवश्यक) | तैनाती से पहले Cedar बंडल हैश सत्यापित करें |
cmcp verify | CLAIM_FILE (आवश्यक); --policy-hash, --catalog-hash, --max-age, --trusted-key, --trusted-tpm-ca, --audit-bundle, --agent-manifest, --agent-manifest-trust-anchor | हस्ताक्षरित TRACE क्लेम सत्यापित करें (हस्ताक्षर, स्कीमा, ताज़गी, ऑडिट श्रृंखला, पिन किए गए हैश, और ट्रस्ट एंकर) |
| फ़ील्ड | विवरण |
|---|
trace.eat_profile | EAT प्रोफ़ाइल URI: tag:agentrust-io.com,2026:trace-v0.2 |
trace.runtime | एन्क्लेव बूट पर दर्ज TEE प्लेटफ़ॉर्म और हार्डवेयर माप |
trace.policy.bundle_hash | स्टार्टअप पर लोड किए गए Cedar बंडल का SHA-256; किसी भी नीति फ़ाइल को बदलने से यह मान बदल जाता है |
trace.cnf.jwk | TEE साइनिंग कुंजी से बंधी Ed25519 सार्वजनिक कुंजी |
trace.tool_transcript | ऑडिट-श्रृंखला-व्युत्पन्न प्रति-कॉल दृश्य: hash (ऑडिट श्रृंखला टिप से बंधता है), call_count, और गोपनीयता-संरक्षण entries (टूल नाम, डेटा वर्ग, निर्णय) |
gateway.audit_chain | हैश-श्रृंखलित ऑडिट लॉग रूट और टिप; व्यक्तिगत प्रविष्टियों को दोबारा चलाए बिना सत्यापन योग्य |
signature | पूर्ण क्लेम बॉडी के कैनोनिकल JSON पर Ed25519 (RFC 8785) |
| मानक | कवरेज |
|---|
| OWASP Agentic AI Top 10 | MCP10 (टूल कॉल के माध्यम से डेटा लीक), MCP02 (अनधिकृत टूल), MCP08 (प्रमाणित गवर्नेंस), MCP04 (सप्लाई चेन) |
| NIST SP 800-207 | TEE के अंदर नीति निर्णय बिंदु; वर्कलोड पहचान में कोई निहित भरोसा नहीं |
| EU AI Act Art. 12, 15 | प्रति-निर्णय ऑडिट रिकॉर्ड (Art. 12); TEE-समर्थित साइबर सुरक्षा नियंत्रण (Art. 15) |
| DORA Art. 9 | अटेस्टेशन श्रृंखला; gateway.audit_chain के माध्यम से ऑडिट लॉग प्रतिधारण |
| RATS/EAT RFC 9711 | GatewayClaim एक EAT है; eat_profile फ़ील्ड TRACE प्रोफ़ाइल की पहचान करता है |
| टूल | यह क्या जांचता है |
|---|
| ruff | हर PR पर स्टाइल और इम्पोर्ट लिंटिंग |
| bandit | हर PR पर Python सुरक्षा लिंटिंग |
| pip-audit | हर PR पर निर्भरता भेद्यता स्कैन |
| mypy | हर PR पर स्थिर प्रकार जांच |
| CodeQL | Python SAST, सुरक्षा-विस्तारित क्वेरी, साप्ताहिक |
| OpenSSF Scorecard | साप्ताहिक स्कोरिंग, SARIF अपलोड |
| पृष्ठ | विवरण |
|---|
| docs/quickstart.md | शून्य से पहले TRACE क्लेम तक 30 मिनट से कम में |
| docs/configuration.md | सभी फ़ील्ड और डिफ़ॉल्ट के साथ पूर्ण कॉन्फ़िग संदर्भ |
| docs/SPEC.md | उत्पाद विनिर्देश: समस्या वर्गीकरण, आर्किटेक्चर, कवरेज मैट्रिक्स |
| docs/spec/threat-model.md | STRIDE विश्लेषण, प्रतिद्वंद्वी मॉडल, अवशिष्ट जोखिम |
| docs/spec/cedar-policy.md | Cedar पॉलिसी भाषा संदर्भ और स्कीमा |
| docs/testing/benchmarks.md | प्रति TEE प्रदाता विलंबता और थ्रूपुट बेंचमार्क |