
सुरक्षा गेटवे MCP सर्वरों के लिए प्रति-उपकरण नीति प्रवर्तन, Ed25519-हस्ताक्षरित ऑडिट रसीदें, और शैडो-मोड लॉगिंग के साथ। AI एजेंट पहुंच नियंत्रण के लिए Cedar, OPA, और Cerbos बाहरी नीति इंजनों का समर्थन करता है।
⚠️ यह रिपॉजिटरी स्थानांतरित हो गई है। सक्रिय विकास ScopeBlind/scopeblind-gateway पर जारी है।
यह व्यक्तिगत फोर्क प्रामाणिक रिपॉजिटरी से पीछे हो सकता है। कृपया समस्याओं, पुल अनुरोधों और नवीनतम कोड के लिए org रिपॉजिटरी का उपयोग करें।
MCP सर्वरों के लिए सुरक्षा गेटवे। डिफ़ॉल्ट रूप से शैडो-मोड लॉग, प्रति-टूल नीतियां, वैकल्पिक स्थानीय Ed25519 रसीदें, और सत्यापन-अनुकूल ऑडिट आउटपुट।
वर्तमान CLI पथ: किसी भी stdio MCP सर्वर को एक पारदर्शी प्रॉक्सी के रूप में लपेटें। शैडो मोड में यह प्रत्येक tools/call अनुरोध को लॉग करता है और सब कुछ पास करता है। प्रति-टूल नियमों को लागू करने के लिए एक नीति फ़ाइल जोड़ें। स्थानीय हस्ताक्षर कुंजी और कॉन्फ़िगरेशन उत्पन्न करने के लिए protect-mcp init चलाएं ताकि गेटवे हस्ताक्षरित रसीदें भी जारी कर सके।
# Wrap an existing OpenClaw / MCP config into a usable pack
npx @scopeblind/passport wrap --runtime openclaw --config ./openclaw.json --policy email-safe
# Shadow mode — log every tool call, enforce nothing
npx protect-mcp -- node my-server.js
# Generate keys + config template for local signing
npx protect-mcp init
# Shadow mode with local signing enabled
npx protect-mcp --policy protect-mcp.json -- node my-server.js
# Enforce mode
npx protect-mcp --policy protect-mcp.json --enforce -- node my-server.js
# Export an offline-verifiable audit bundle
npx protect-mcp bundle --output audit.json
protect-mcp आपके MCP क्लाइंट और सर्वर के बीच एक stdio प्रॉक्सी के रूप में बैठता है:
MCP Client ←stdin/stdout→ protect-mcp ←stdin/stdout→ your MCP server
यह tools/call JSON-RPC अनुरोधों को इंटरसेप्ट करता है और:
block, rate_limit, और min_tier लागू करता हैअन्य सभी MCP संदेश (initialize, tools/list, सूचनाएं) पारदर्शी रूप से पास हो जाते हैं।
[PROTECT_MCP] के साथ stderr पर उत्सर्जित होता हैsigning.key_path वाली नीति के साथ चलाते हैं, .protect-mcp-receipts.jsonl में संग्रहीत होता है, और http://127.0.0.1:9876/receipts पर उपलब्ध होता हैnpx @veritasacta/verify के साथ रसीदों या बंडलों को सत्यापित करेंइससे पहले कि आप इसे रोल आउट करें या उपयोगकर्ताओं से बात करें, ये महत्वपूर्ण हैं:
npx protect-mcp -- ... पथ पर हस्ताक्षर स्वचालित नहीं है। वह पथ शैडो मोड में निर्णय लॉग करता है। स्थानीय हस्ताक्षर के लिए, npx protect-mcp init चलाएं और फिर गेटवे को उत्पन्न नीति फ़ाइल के साथ प्रारंभ करें।unknown पर डिफ़ॉल्ट करता है जब तक कि कोई होस्ट इंटीग्रेशन प्रोग्रामेटिक रूप से प्रवेश API को कॉल नहीं करता।{
"default_tier": "unknown",
"tools": {
"dangerous_tool": { "block": true },
"admin_tool": { "min_tier": "signed-known", "rate_limit": "5/hour" },
"read_tool": { "require": "any", "rate_limit": "100/hour" },
"*": { "rate_limit": "500/hour" }
},
"signing": {
"key_path": "./keys/gateway.json",
"issuer": "protect-mcp",
"enabled": true
},
"credentials": {
"internal_api": {
"inject": "env",
"name": "INTERNAL_API_KEY",
"value_env": "INTERNAL_API_KEY"
}
}
}
| क्षेत्र | मान | विवरण |
|---|---|---|
block | true | इस टूल को स्पष्ट रूप से ब्लॉक करें |
require | "any", "none" | बुनियादी पहुंच आवश्यकता |
min_tier | "unknown", "signed-known", "evidenced", "privileged" | न्यूनतम टियर आवश्यक यदि आपका होस्ट प्रवेश स्थिति सेट करता है |
rate_limit | "N/unit" | दर सीमा (जैसे "5/hour", "100/day") |
टूल के नाम बिल्कुल मेल खाते हैं, "*" एक वाइल्डकार्ड फ़ॉलबैक के रूप में।
claude_desktop_config.json में जोड़ें:
{
"mcpServers": {
"my-protected-server": {
"command": "npx",
"args": [
"-y", "protect-mcp",
"--policy", "/path/to/protect-mcp.json",
"--enforce",
"--", "node", "my-server.js"
]
}
}
}
वही पैटर्न — सर्वर कमांड को protect-mcp से बदलें।
protect-mcp [options] -- <command> [args...]
protect-mcp init
Commands:
init Generate Ed25519 keypair + config template
status Show decision stats and local passport identity
digest Generate a local human-readable summary
receipts Show recent persisted signed receipts
bundle Export an offline-verifiable audit bundle
Options:
--policy <path> Policy/config JSON file
--slug <slug> Service identifier for logs/receipts
--enforce Enable enforcement mode (default: shadow)
--verbose Enable debug logging
--help Show help
लाइब्रेरी उन प्रिमिटिव को भी एक्सपोज़ करती है जो अभी डिफ़ॉल्ट CLI पथ में वायर्ड नहीं हैं:
import {
ProtectGateway,
loadPolicy,
evaluateTier,
meetsMinTier,
resolveCredential,
initSigning,
signDecision,
queryExternalPDP,
buildDecisionContext,
createAuditBundle,
} from 'protect-mcp';
इनका उपयोग करें यदि आप जोड़ना चाहते हैं:
प्रत्येक टूल कॉल stderr पर संरचित JSON उत्सर्जित करता है:
[PROTECT_MCP] {"v":2,"tool":"read_file","decision":"allow","reason_code":"observe_mode","policy_digest":"none","mode":"shadow","timestamp":1710000000}
जब हस्ताक्षर कॉन्फ़िगर किया जाता है, तो एक हस्ताक्षरित रसीद आती है:
[PROTECT_MCP_RECEIPT] {"v":2,"type":"decision_receipt","algorithm":"ed25519","kid":"...","issuer":"protect-mcp","issued_at":"2026-03-22T00:00:00Z","payload":{"tool":"read_file","decision":"allow","policy_digest":"...","mode":"shadow","request_id":"..."},"signature":"..."}
CLI से सत्यापित करें: npx @veritasacta/verify receipt.json
ब्राउज़र में सत्यापित करें: scopeblind.com/verify
पैकेज स्व-निहित ऑडिट बंडलों के लिए एक सहायक निर्यात करता है:
{
"format": "scopeblind:audit-bundle",
"version": 1,
"tenant": "my-service",
"receipts": ["..."],
"verification": {
"algorithm": "ed25519",
"signing_keys": ["..."]
}
}
अपने स्वयं के एकत्रित हस्ताक्षरित रसीदों के चारों ओर createAuditBundle() का उपयोग करें।
protect-mcp के साथ शिप करें — प्रत्येक एक वास्तविक हमले को रोकता है:
| नीति | घटना | OWASP श्रेणियाँ |
|---|---|---|
clinejection.json | CVE-2025-6514: MCP OAuth proxy hijack (437K वातावरण) | A01, A03 |
terraform-destroy.json | स्वायत्त Terraform एजेंट उत्पादन को नष्ट करता है | A05, A06 |
github-mcp-hijack.json | निर्मित GitHub मुद्दे के माध्यम से प्रॉम्प्ट इंजेक्शन | A01, A02, A03 |
data-exfiltration.json | आउटबाउंड टूल दुरुपयोग के माध्यम से एजेंट डेटा चोरी | A02, A04 |
financial-safe.json | अनधिकृत वित्तीय लेन-देन | A05, A06 |
npx protect-mcp --policy node_modules/protect-mcp/policies/clinejection.json -- node server.js
पूर्ण OWASP Agentic Top 10 मैपिंग: scopeblind.com/docs/owasp
OPA, Cerbos, Cedar (AWS AgentCore), और सामान्य HTTP एंडपॉइंट का समर्थन करता है:
{
"policy_engine": "hybrid",
"external": {
"endpoint": "http://localhost:8181/v1/data/mcp/allow",
"format": "cedar",
"timeout_ms": 200,
"fallback": "deny"
}
}
npx @veritasacta/verify --self-testMIT — बिना किसी प्रतिबंध के उपयोग, संशोधन, वितरण और निर्माण के लिए स्वतंत्र।
scopeblind.com · npm · GitHub · IETF Draft