
ironcurtain memory-mcp-server/v0.2.1
स्वायत्त AI एजेंटों के लिए एक सुरक्षित* रनटाइम। सरल अंग्रेज़ी संविधानों से नीति। (*https://ironcurtain.dev)
IronCurtain
स्वायत्त AI एजेंट्स के लिए एक सुरक्षित* रनटाइम, जहाँ सुरक्षा नीति मानव-पठनीय संविधान से ली जाती है।
*जब कोई "सुरक्षित" लिखता है, तो आपको तुरंत संदेह करना चाहिए। सुरक्षित से हमारा क्या मतलब है?
[!WARNING] शोध प्रोटोटाइप। IronCurtain एक प्रारंभिक-चरण की शोध परियोजना है जो यह खोजती है कि AI एजेंट्स को वास्तव में उपयोगी बनाने के लिए पर्याप्त सुरक्षित कैसे बनाया जाए। API, कॉन्फ़िगरेशन प्रारूप और आर्किटेक्चर बदल सकते हैं। योगदान और प्रतिक्रिया का स्वागत है।
डेमो
एजेंट से एक रिपॉज़िटरी क्लोन करने और बदलाव पुश करने के लिए कहा जाता है। git_clone और git_push दोनों को पॉलिसी इंजन द्वारा एस्केलेट किया जाता है, लेकिन ऑटो-अप्रूवर उन्हें स्वचालित रूप से अनुमोदित कर देता है — कमांड मोड (Ctrl-A) से उपयोगकर्ता के विश्वसनीय इनपुट ने स्पष्ट इरादा प्रदान किया, इसलिए मैन्युअल /approve की आवश्यकता नहीं पड़ी।
समस्या
स्वायत्त AI एजेंट्स आपकी ओर से फ़ाइलें प्रबंधित कर सकते हैं, git कमांड चला सकते हैं, संदेश भेज सकते हैं, और API के साथ इंटरैक्ट कर सकते हैं। लेकिन आज के एजेंट फ्रेमवर्क एजेंट को उपयोगकर्ता के समान विशेषाधिकार देते हैं, जैसे फ़ाइलसिस्टम, क्रेडेंशियल्स और नेटवर्क तक पूर्ण पहुँच। सुरक्षा शोधकर्ता इसे एम्बिएंट ऑथॉरिटी कहते हैं, और इसका मतलब है कि एक ही प्रॉम्प्ट इंजेक्शन या मल्टी-टर्न ड्रिफ्ट के कारण एजेंट फ़ाइलें हटा सकता है, डेटा चोरी कर सकता है, या दुर्भावनापूर्ण कोड पुश कर सकता है।
आम प्रतिक्रिया यह होती है कि या तो एजेंट्स को एक संकीर्ण सैंडबॉक्स तक सीमित कर दिया जाए (जिससे उनकी उपयोगिता सीमित हो जाती है) या उपयोगकर्ता से हर क्रिया को अनुमोदित करने के लिए कहा जाए (जिससे उनकी स्वायत्तता सीमित हो जाती है)। दोनों में से कोई भी संतोषजनक नहीं है।
दृष्टिकोण
IronCurtain एक अलग रास्ता अपनाता है: अपने सुरक्षा इरादे को सरल अंग्रेज़ी में व्यक्त करें, फिर सिस्टम को प्रवर्तन का तरीका खोजने दें।
आप एक संविधान लिखते हैं, जो एक संक्षिप्त दस्तावेज़ है जो बताता है कि आपका एजेंट क्या कर सकता है और क्या नहीं। IronCurtain इसे एक LLM पाइपलाइन का उपयोग करके एक नियतात्मक सुरक्षा नीति में संकलित करता है, संकलित नियमों को उत्पन्न परीक्षण परिदृश्यों के विरुद्ध मान्य करता है, और फिर रनटाइम पर प्रत्येक टूल कॉल पर नीति को लागू करता है। परिणाम एक ऐसा एजेंट है जो आपके द्वारा प्राकृतिक भाषा में परिभाषित सीमाओं के भीतर स्वायत्त रूप से काम कर सकता है।
मुख्य विचार:
- एजेंट अविश्वसनीय है। IronCurtain मानता है कि LLM प्रॉम्प्ट इंजेक्शन या ड्रिफ्ट से समझौता किया जा सकता है। सुरक्षा इस पर निर्भर नहीं करती कि मॉडल "अच्छा है।"
- अंग्रेज़ी में इनपुट, प्रवर्तन में आउटपुट। आप इरादा लिखते हैं ("अनुमोदन के बिना कोई विनाशकारी git ऑपरेशन नहीं"); सिस्टम इसे नियतात्मक नियमों में संकलित करता है जो रनटाइम पर किसी और LLM की भागीदारी के बिना लागू होते हैं।
- सिमेंटिक इंटरपोज़िशन। एजेंट को कच्ची सिस्टम पहुँच देने के बजाय, सभी इंटरैक्शन MCP सर्वर (फ़ाइलसिस्टम, git, आदि) के माध्यम से होते हैं। प्रत्येक टूल कॉल एक पॉलिसी इंजन से गुज़रता है जो allow, deny, या अनुमोदन के लिए उपयोगकर्ता को escalate कर सकता है।
- गहराई में रक्षा। एजेंट कोड एक V8 आइसोलेट में चलता है जिसकी होस्ट तक कोई सीधी पहुँच नहीं होती। बाहर निकलने का एकमात्र रास्ता सिमेंटिक रूप से अर्थपूर्ण MCP टूल कॉल हैं और प्रत्येक को नीति के विरुद्ध जाँचा जाता है।
आर्किटेक्चर
IronCurtain विभिन्न ट्रस्ट मॉडलों के साथ दो सत्र मोड का समर्थन करता है:
-
बिल्टइन एजेंट (कोड मोड) — IronCurtain का अपना LLM एजेंट TypeScript स्निपेट लिखता है जो एक V8 सैंडबॉक्स में निष्पादित होते हैं। IronCurtain एजेंट, सैंडबॉक्स और पॉलिसी इंजन को नियंत्रित करता है। प्रत्येक टूल कॉल सैंडबॉक्स से एक संरचित MCP अनुरोध के रूप में बाहर निकलता है, पॉलिसी इंजन (allow / deny / escalate) से गुज़रता है, और तभी वास्तविक MCP सर्वर तक पहुँचता है।
-
Docker एजेंट मोड — एक बाहरी एजेंट (Claude Code, Goose, Codex) एक कंटेनर के अंदर चलता है जिसकी सार्वजनिक नेटवर्क तक सीधी पहुँच नहीं होती। IronCurtain बाहरी प्रभावों को मध्यस्थता करता है: LLM API कॉल एक TLS-टर्मिनेटिंग MITM प्रॉक्सी (होस्ट allowlist, fake-to-real key swap) से गुज़रते हैं, MCP टूल कॉल उसी पॉलिसी इंजन से गुज़रते हैं, और समर्थित पैकेज इंस्टॉलेशन सत्यापनकारी पैकेज प्रॉक्सी से गुज़रते हैं।
ऑप्ट-इन नेस्टेड Docker डेवलपर सत्रों को एक निजी, अल्पकालिक
डेमन देता है बिना होस्ट Docker सॉकेट को उजागर किए। कार्यान्वित प्रोफ़ाइल macOS पर Apple Container और Docker
Desktop, तथा amd64 पर Docker Desktop के साथ WSL2 को कवर करते हैं। इसके offline, images, और packages मोड
स्थानीय इमेज उपयोग, मध्यस्थता वाले सार्वजनिक इमेज पुल, और समर्थित पैकेज बिल्ड को अलग करते हैं। नेटिव Linux Engine
नेस्टिंग के लिए स्वीकृत नहीं है; पूर्वापेक्षाओं और सीमाओं के लिए कॉन्फ़िगरेशन संदर्भ देखें।
दोनों मोड में, एजेंट अविश्वसनीय है। सुरक्षा इस पर निर्भर नहीं करती कि मॉडल निर्देशों का पालन करता है — यह सीमा पर लागू की जाती है।
आरेखों, परत-दर-परत ट्रस्ट विश्लेषण, और macOS प्लेटफ़ॉर्म नोट्स के साथ पूर्ण आर्किटेक्चर के लिए SANDBOXING.md देखें।
त्वरित शुरुआत
पूर्वापेक्षाएँ
- Node.js 24 या 26 — सम-संख्या वाली प्रमुख लाइनें जिनका IronCurtain परीक्षण करता है। दोनों प्रीबिल्ट
isolated-vmबाइनरी इंस्टॉल करते हैं। Node 25 असमर्थित और अपरीक्षित है। - Docker — आवश्यक नहीं लेकिन Docker एजेंट मोड के लिए अत्यधिक अनुशंसित, जो सबसे मजबूत आइसोलेशन प्रदान करता है। macOS 26+ (Apple silicon) पर, Apple
containerएक वैकल्पिक बैकएंड के रूप में काम करता है (प्रति कंटेनर VM; इसकी सेवाएँ चल रही होने पर स्वचालित रूप से उपयोग किया जाता है —ironcurtain configमेंcontainerRuntimeदेखें) - कम से कम एक LLM प्रदाता (Anthropic, Google, या OpenAI) के लिए एक API कुंजी
इंस्टॉल
एक वैश्विक CLI टूल के रूप में (अंतिम उपयोगकर्ता):
npm install -g @provos/ironcurtain
स्रोत से (विकास):
git clone https://github.com/provos/ironcurtain.git
cd ironcurtain
npm install
एक बार का सेटअप
1. अपनी API कुंजी सेट करें:
export ANTHROPIC_API_KEY=sk-ant-...
आप प्रोजेक्ट रूट में .env फ़ाइल में भी keys रख सकते हैं (जो dotenv के माध्यम से स्वतः लोड होती हैं), या उन्हें ironcurtain config के माध्यम से ~/.ironcurtain/config.json में जोड़ सकते हैं। Environment variables config फ़ाइल मानों पर प्राथमिकता लेते हैं। समर्थित: ANTHROPIC_API_KEY, GOOGLE_GENERATIVE_AI_API_KEY, OPENAI_API_KEY।
2. पहली बार शुरू करने का wizard चलाएँ (अनुशंसित mux पथ का उपयोग करने से पहले इसे स्पष्ट रूप से चलाएँ; यह पहले गैर-mux ironcurtain start पर भी स्वतः चलता है):
ironcurtain setup
GitHub टोकन सेटअप, वेब सर्च प्रोवाइडर, मॉडल चयन, और अन्य सेटिंग्स के माध्यम से आपका मार्गदर्शन करता है। आपकी पसंद के साथ ~/.ironcurtain/config.json बनाता है।
IronCurtain चलाना
IronCurtain डेवलपर अनुभव के अनुरूप एक डिफ़ॉल्ट नीति के साथ आता है — केवल-पढ़ने वाले ऑपरेशन की अनुमति है, परिवर्तन (राइट, पुश, PR निर्माण) मानव अनुमोदन के लिए एस्केलेट होते हैं। आप सेटअप के तुरंत बाद इसका उपयोग शुरू कर सकते हैं।
टर्मिनल मल्टीप्लेक्सर (अनुशंसित)
IronCurtain का उपयोग करने का अनुशंसित तरीका। यह आपको आपके एजेंट के इंटरैक्टिव TUI (Claude Code या Goose) की पूरी शक्ति देता है, जबकि IronCurtain अपने नीति इंजन के माध्यम से प्रत्येक टूल कॉल को मध्यस्थता करता है — सब कुछ एक ही टर्मिनल में।
ironcurtain mux
मुख्य क्षमताएँ: