अपने एजेंट को डेटाबेस क्वेरी करने दें,
जब तक आप न कहें, रीड-ओनली
AgentsRoom आपके MySQL और MariaDB कनेक्शन संभालता है और आपके AI कोडिंग एजेंट को उनके सामने क्वेरी चलाने का रास्ता देता है। डिफ़ॉल्ट रूप से रीड-ओनली, एक बार में एक स्टेटमेंट, और पासवर्ड पहुंच से बाहर।
जो एजेंट असली पंक्तियां पढ़ सकता है वह आपके डेटा के बारे में अंदाज़ा लगाना बंद कर देता है। जो एजेंट उनमें लिख नहीं सकता वह ऐसा जोखिम नहीं रह जाता जिसकी आपको लाइन-दर-लाइन निगरानी करनी पड़े।
AgentsRoom कैसे किसी प्राइवेट सबनेट के डेटाबेस तक पहुंचता है और किसी AI एजेंट की रीड-ओनली क्वेरी का जवाब देता है।
जो AI कोडिंग एजेंट आपका डेटा नहीं देख सकता वह उस स्कीमा के हिसाब से कोड लिखता है जिसकी उसने कल्पना की। वह एक कॉलम गढ़ लेता है, मान लेता है कि किसी enum के तीन मान हैं जबकि उसके सात हैं, और किसी बग की व्याख्या किसी पंक्ति के बजाय एक थ्योरी से करता है। उसे डेटाबेस कनेक्शन देना यह ठीक कर देता है, और यही किसी मददगार एजेंट को एक घटना में बदलने का सबसे तेज़ रास्ता भी है। AgentsRoom इसी तनाव के इर्द-गिर्द बना है।
आप अपने MySQL और MariaDB कनेक्शन ऐप में वैसे ही सहेजते हैं जैसे किसी भी SQL क्लाइंट में सहेजते : होस्ट, पोर्ट, यूज़र, डेटाबेस, और TLS जब सर्वर उसकी अपेक्षा करता हो। अगर डेटाबेस खुले इंटरनेट से पहुंच में नहीं है, तो कनेक्शन किसी SSH सुरंग या किसी AWS SSM पोर्ट-फ़ॉरवर्डिंग सेशन से रूट होता है, उन्हीं SSH और SSM कनेक्शनों का इस्तेमाल करते हुए जो आपने पहले AgentsRoom में सहेजे हैं। इसी तरह प्राइवेट सबनेट में बैठा डेटाबेस ऐसी चीज़ बन जाता है जिसे आप उसे दुनिया के लिए खोले बिना क्वेरी कर सकते हैं।
हर कनेक्शन रीड-ओनली शुरू होता है। कोई SELECT चलता है। डेटा बदलने वाला स्टेटमेंट नहीं चलता, जब तक आप उस ख़ास कनेक्शन को राइटेबल न बना दें और कार्रवाई की पुष्टि न कर दें। प्रति कॉल केवल एक स्टेटमेंट स्वीकार होता है, इसलिए किसी सेमीकोलन के पीछे कुछ अतिरिक्त नहीं छिपता, और रिज़ल्ट सेट सीमित होते हैं ताकि कोई चौड़ी क्वेरी किसी एजेंट या किसी विंडो को भर न दे। किसी कनेक्शन को प्रोडक्शन के रूप में भी चिह्नित किया जा सकता है, जिससे पुष्टि गलती से देना और मुश्किल हो जाता है।
ऐसा SQL क्लाइंट जो मानकर चलता है कि एजेंट चला रहा है
MySQL और MariaDB, प्राइवेट नेटवर्क में भी पहुंच में, गार्डरेल डिफ़ॉल्ट रूप से चालू।
MySQL और MariaDB कनेक्शन
हर डेटाबेस के लिए एक कनेक्शन सहेजें : होस्ट, पोर्ट, यूज़र, खोलने वाला डेटाबेस और TLS जब सर्वर उसकी मांग करे। आपका लोकल डेटाबेस, स्टेजिंग वाला और प्रोडक्शन रेप्लिका सब एक ही सूची में रहते हैं, दोबारा टाइप करने के बजाय चुने जाने के लिए तैयार।
किसी प्राइवेट डेटाबेस तक पहुंचें
प्राइवेट सबनेट का डेटाबेस कोई ख़ास मामला नहीं है। कनेक्शन को किसी SSH सुरंग या किसी AWS SSM पोर्ट-फ़ॉरवर्डिंग सेशन से रूट करें और AgentsRoom उसे आपके लिए खोल देता है, उन्हीं SSH और SSM कनेक्शनों का दोबारा इस्तेमाल करते हुए जो आपने पहले ऐप में सहेजे हैं।
डिफ़ॉल्ट रूप से रीड-ओनली
नया कनेक्शन पढ़ सकता है और कुछ नहीं। क्वेरी पंक्तियां लौटाती हैं, डेटा बदलने वाले स्टेटमेंट अस्वीकार होते हैं। सुरक्षित मोड चालू करना किसी को याद रखने की ज़रूरत नहीं, क्योंकि सुरक्षित मोड ही वह जगह है जहां हर कनेक्शन शुरू होता है।
किसी राइट से पहले दो ताले
लिखने में दो सोचे-समझे कदम लगते हैं, एक नहीं। कनेक्शन को राइटेबल बनाना पड़ता है, और कार्रवाई की खुद स्पष्ट पुष्टि करनी पड़ती है। एक लापरवाह क्लिक बिना WHERE क्लॉज़ वाले UPDATE तक नहीं पहुंच सकता।
प्रति कॉल एक स्टेटमेंट
हर कॉल में ठीक एक स्टेटमेंट होता है। किसी सेमीकोलन के पीछे लगाई गई कोई भी चीज़ चलाने के बजाय अस्वीकार कर दी जाती है, इसलिए जो रीड दिखती है वह अपने साथ चुपके से दूसरा स्टेटमेंट नहीं ला सकती। उसके ऊपर रिज़ल्ट सेट भी सीमित होते हैं।
प्रोडक्शन चिह्नित रहता है
किसी कनेक्शन को प्रोडक्शन के रूप में चिह्नित करें और पुष्टि कठिन हो जाती है। जो डेटाबेस मायने रखता है वह ठीक लोकल कॉपी जैसा दिखना बंद कर देता है, लंबे दिन के आख़िर में आपके लिए भी और किसी टास्क लिस्ट पर काम कर रहे एजेंट के लिए भी।
एजेंट डेटाबेस क्वेरी करते हैं, पासवर्ड उनके पास कभी नहीं होता
आपके डेटाबेस क्रेडेंशियल AgentsRoom के पास रहते हैं, बांटे नहीं जाते। कोई एजेंट किसी ऐसे कनेक्शन के सामने क्वेरी चलाने को कहता है जिसे वह नाम से जानता है, ऐप कनेक्शन खोलता है, स्टेटमेंट चलाता है और पंक्तियां लौटाता है। पासवर्ड न कभी उसका हिस्सा होता है जो एजेंट को मिलता है, न उस क्वेरी का जो वह लिखता है, और न उस बातचीत का जो वह रखता है।
रीड-ओनली नियम इसका दूसरा आधा हिस्सा है, और किसी एजेंट के लिए यह ऐसा डिफ़ॉल्ट नहीं है जिससे वह बातों में निकल सके। एजेंट जिस टूल से क्वेरी करता है वह रीड के अलावा कुछ भी अस्वीकार करता है, चाहे वह कनेक्शन कुछ भी होने दे। किसी कनेक्शन को राइटेबल बनाना आपके लिए राइट खोलता है, SQL कंसोल में, जहां हर राइट एक स्पष्ट पुष्टि मांगता है, जो कनेक्शन के प्रोडक्शन के रूप में चिह्नित होने पर जानबूझकर देना कठिन रखी जाती है। किसी एजेंट के खराब क्वेरी चलाने का सबसे बुरा नतीजा एक गलत जवाब ही रहता है, न कि गायब हुई कोई टेबल।
एकल-स्टेटमेंट नियम वह पुरानी खिड़की बंद कर देता है। जिस कॉल में एक स्टेटमेंट है उसे किसी सेमीकोलन और दूसरे स्टेटमेंट से बढ़ाया नहीं जा सकता, इसलिए जो क्वेरी समीक्षा में निर्दोष पढ़ी जाती है वह चलते समय कुछ और नहीं कर सकती। सीमित रिज़ल्ट सेट के साथ मिलकर, गलती गलती ही रहती है, एक्सपोर्ट नहीं बन जाती।
आज MySQL और MariaDB, और कुछ नहीं
AgentsRoom का डेटाबेस क्लाइंट MySQL वायर प्रोटोकॉल बोलता है, और MariaDB उसके साथ संगत है, इसलिए अभी दोनों समर्थित हैं : सीधे, या किसी SSH सुरंग या किसी AWS SSM पोर्ट-फ़ॉरवर्डिंग सेशन के ज़रिए जब सर्वर खुले इंटरनेट से पहुंच में न हो।
PostgreSQL, MongoDB, SQL Server, SQLite और बाकी समर्थित नहीं हैं। यह जानने का हक़ आपको डाउनलोड के बाद नहीं, उससे पहले है। अगला इंजन कौन सा आएगा यह इससे तय होता है कि लोग क्या मांगते हैं, इसलिए अगर आपका इंजन नहीं है, तो सार्वजनिक बैकलॉग पर बताएं कि कौन सा, और उसे गिना जाएगा।
अपना डेटाबेस इंजन मांगेंकिसी प्राइवेट डेटाबेस से एक जवाब तक
कनेक्शन सहेजें, उसे रूट करें, फिर उसे क्वेरी करें या किसी एजेंट से करवाएं।
कनेक्शन सहेजें
डेटाबेस जोड़ें : होस्ट, पोर्ट, यूज़र, डेटाबेस का नाम, और TLS अगर सर्वर उसकी अपेक्षा करता हो। उसे ऐसा नाम दें जिसे आप बाद में पहचान लें, और अगर वह प्रोडक्शन है तो उसे वैसा चिह्नित करें।
अगर वह प्राइवेट है तो उसे रूट करें
अगर डेटाबेस सीधे पहुंच में नहीं है, तो कनेक्शन को किसी SSH सुरंग या किसी AWS SSM पोर्ट-फ़ॉरवर्डिंग सेशन की ओर इंगित करें, जो पहले से AgentsRoom में सहेजे कनेक्शनों से बना हो। प्राइवेट सबनेट का डेटाबेस उसे सार्वजनिक किए बिना पहुंच में आ जाता है।
उसे क्वेरी करें, या किसी एजेंट से क्वेरी करवाएं
अपना स्टेटमेंट ऐप से चलाएं, या किसी एजेंट को MCP पर चलाने दें। जब तक आप न बदलें तब तक रीड-ओनली, प्रति कॉल एक स्टेटमेंट, सीमित रिज़ल्ट सेट, और हर राइट तथा आपके डेटा के बीच खड़ी एक स्पष्ट पुष्टि।
जब किसी एजेंट को असली पंक्तियां चाहिए
वे पल जब प्रोडक्शन डेटा पढ़ना समाधान तक का सबसे छोटा रास्ता है।
असली डेटा के सामने डीबग करें
बग सिर्फ़ कुछ ही अकाउंट के लिए दिखता है। एजेंट को वे पंक्तियां पढ़ने दें और वह वह मान ढूंढ लेता है जो लॉजिक तोड़ता है, बजाय इसके कि डेटा कैसा हो सकता है इस पर तीन थ्योरी सुझाए।
ऐसा डेटाबेस जो सार्वजनिक नहीं है
डेटाबेस बिना किसी सार्वजनिक एंडपॉइंट के एक प्राइवेट सबनेट में रहता है। कनेक्शन को अपने सहेजे कनेक्शनों पर बनी किसी SSH सुरंग या किसी AWS SSM सेशन से रूट करें, और इंटरनेट के लिए कोई पोर्ट खोले बिना उसे क्वेरी करें।
एजेंट को जांचने दें, अंदाज़ा लगाने नहीं
कोई माइग्रेशन या कोई क्वेरी लिखने से पहले एजेंट देख सकता है कि सचमुच क्या संग्रहीत है। वह पढ़ता है, वह बताता है, और ऐसा करते हुए उसे कुछ भी बदलने की क्षमता कभी नहीं मिलती।
प्रोडक्शन, बिना राइट के जोखिम के
प्रोडक्शन पढ़ना अक्सर ज़रूरी होता है, किसी काम के बीच उसमें लिखना लगभग कभी नहीं। कनेक्शन को प्रोडक्शन के रूप में चिह्नित करें, उसे रीड-ओनली रखें, और जांच करने तथा तोड़ देने के बीच का फ़र्क़ किसी के ध्यान देने पर निर्भर रहना बंद कर देता है।
मेरे एजेंट डेटाबेस कैसे क्वेरी करते हैं?
AgentsRoom MCP के ज़रिए, चार टूल के साथ। db_list आपके सहेजे गए कनेक्शन और उनका मेटाडेटा लौटाता है, db_schema एक लाइन SQL के बिना स्कीमा, टेबल और कॉलम में घूमता है, db_query एक स्टेटमेंट चलाता है और पंक्तियां लौटाता है, और db_connection_new ऐसा डेटाबेस सुझाता है जिसे आपने अभी तक सहेजा नहीं है। AgentsRoom कनेक्शन खोलता है, जिसमें उसके आगे की SSH सुरंग या AWS SSM सेशन भी शामिल है अगर कोई हो। एजेंट तक जो वापस जाता है वह एक रिज़ल्ट सेट है, कोई क्रेडेंशियल कभी नहीं।
db_query रीड-ओनली है, चाहे कनेक्शन कुछ भी होने दे। किसी कनेक्शन को राइटेबल बनाना आपके लिए राइट खोलता है, SQL कंसोल में, जहां हर राइट की स्पष्ट पुष्टि होती है और जहां प्रोडक्शन के रूप में चिह्नित कनेक्शन यह बात खुलकर कहता है। यह उन्हें किसी एजेंट के लिए नहीं खोलता : db_query का रीड-ओनली नियम MCP प्रोसेस के बजाय डेस्कटॉप ऐप में रहता है, इसलिए वह तब भी टिका रहता है जब एजेंट को कुछ और मांगने के लिए बहला लिया जाए। DROP चलाने के लिए पासवर्ड की ज़रूरत नहीं होती, इसीलिए गार्डरेल सिर्फ़ क्रेडेंशियल पर नहीं, स्टेटमेंट पर बैठा है।
किसी डेटाबेस को दर्ज करने पर वही सीमा लागू होती है। db_connection_new बनाने का फ़ॉर्म खोलता है, जो होस्ट, यूज़र और उस SSH या AWS SSM कनेक्शन से पहले से भरा होता है जिसके ज़रिए उस तक पहुंचा जाना चाहिए, और आप उसकी समीक्षा करते हैं, पासवर्ड टाइप करते हैं और सहेजते हैं। जब तक आप ऐसा न करें तब तक कुछ भी संग्रहीत नहीं होता। एजेंट को वह मिलता है जो उसे आपके डेटा के बारे में सोचने के लिए चाहिए, और वे सारे रास्ते जिनसे यह एक्सेस आम तौर पर एक घटना बन जाता है, उसके लिए उपलब्ध ही नहीं हैं।
AgentsRoom MCP देखेंअक्सर पूछे जाने वाले सवाल
कौन से डेटाबेस समर्थित हैं?
MySQL और MariaDB, और सिर्फ़ यही। क्लाइंट MySQL वायर प्रोटोकॉल बोलता है और MariaDB उसके साथ संगत है, इसलिए दोनों काम करते हैं, सीधे या किसी SSH सुरंग या किसी AWS SSM पोर्ट-फ़ॉरवर्डिंग सेशन के ज़रिए। PostgreSQL, MongoDB, SQL Server, SQLite और बाकी आज समर्थित नहीं हैं। अगर आपको उनमें से कोई चाहिए, तो सार्वजनिक बैकलॉग पर उसकी मांग करें : सूची उसी से बढ़ती है जो लोग सचमुच मांगते हैं।
क्या कोई AI एजेंट मेरे डेटाबेस में लिख सकता है?
नहीं। एजेंट जिस MCP टूल से क्वेरी करता है, db_query, वह रीड-ओनली है चाहे कनेक्शन कुछ भी होने दे : SELECT, SHOW, DESCRIBE, EXPLAIN और WITH निकल जाते हैं, जो कुछ भी डेटा बदलेगा वह अस्वीकार हो जाता है। किसी कनेक्शन को राइटेबल बनाना SQL कंसोल में आपके लिए राइट खोलता है, जहां हर राइट की स्पष्ट पुष्टि होती है, किसी एजेंट के लिए नहीं। गार्डरेल पासवर्ड पर नहीं, स्टेटमेंट पर बैठा है, क्योंकि DROP चलाने के लिए पासवर्ड ही चाहिए हो, ऐसा नहीं है।
मैं किसी प्राइवेट सबनेट के डेटाबेस तक कैसे पहुंचूं?
कनेक्शन को किसी SSH सुरंग या किसी AWS SSM पोर्ट-फ़ॉरवर्डिंग सेशन से रूट करें, जो उन्हीं SSH और SSM कनेक्शनों से बना हो जो आपने पहले AgentsRoom में सहेजे हैं। ऐप सुरंग या सेशन खोलता है और डेटाबेस को उसी से जोड़ता है, इसलिए डेटाबेस सार्वजनिक इंटरनेट से पहुंच के बाहर रहता है।
क्या मेरे एजेंट डेटाबेस पासवर्ड देखते हैं?
नहीं। एजेंट किसी कनेक्शन का नाम लेकर MCP पर क्वेरी करते हैं। AgentsRoom क्रेडेंशियल रखता है और स्टेटमेंट खुद चलाता है, इसलिए पासवर्ड न कभी एजेंट को लौटाया जाता है, न क्वेरी में लिखा जाता है और न बातचीत का हिस्सा बनता है।
क्या कोई एजेंट एक साथ कई स्टेटमेंट चला सकता है?
नहीं। एक कॉल में ठीक एक स्टेटमेंट होता है। किसी सेमीकोलन के पीछे लगाई गई कोई भी चीज़ चलाने के बजाय अस्वीकार कर दी जाती है, जिससे रीड जैसी दिखने वाली चीज़ के भीतर राइट छिपाने का सबसे पुराना तरीका ख़त्म हो जाता है।
किसी कनेक्शन को प्रोडक्शन के रूप में चिह्नित करने से क्या बदलता है?
किसी राइट से पहले ज़रूरी पुष्टि कठिन हो जाती है। जो डेटाबेस मायने रखता है वह लोकल कॉपी जैसा व्यवहार करना बंद कर देता है, जो लंबे दिन के आख़िर में आप चाहते हैं और किसी टास्क लिस्ट पर काम कर रहे एजेंट से उससे भी ज़्यादा चाहते हैं।
अगर कोई क्वेरी बहुत सारी पंक्तियां लौटाए तो क्या होता है?
रिज़ल्ट सेट सीमित होते हैं। जो क्वेरी बहुत बड़ी टेबल लौटाती, वह विंडो या एजेंट कॉन्टेक्स्ट भर देने के बजाय कटी हुई वापस आती है, इसलिए चौड़ा SELECT आपके डेटा के एक्सपोर्ट के बजाय एक असुविधा भर रहता है।
क्या कोई एजेंट डेटाबेस कनेक्शन जोड़ सकता है?
वह सुझा सकता है, सहेज कभी नहीं सकता। db_connection_new बनाने का फ़ॉर्म खोलता है, जो होस्ट, पोर्ट, यूज़र और उस SSH या AWS SSM कनेक्शन से पहले से भरा होता है जिसके ज़रिए डेटाबेस तक पहुंचा जाना चाहिए, और आप उसकी समीक्षा करते हैं, पासवर्ड टाइप करते हैं और सहेजते हैं। जब तक आप ऐसा न करें तब तक कुछ भी संग्रहीत नहीं होता, और एजेंट कभी कोई क्रेडेंशियल नहीं देता।
कोई एजेंट मेरा स्कीमा कैसे जानता है?
db_schema से, जो बिना किसी SQL के किसी सहेजे गए कनेक्शन की पड़ताल करता है। बिना किसी आर्ग्युमेंट के कॉल करने पर वह स्कीमा सूचीबद्ध करता है, किसी डेटाबेस के साथ टेबल और व्यू, और किसी टेबल के साथ वह कॉलम, उनके टाइप, वे खाली हो सकते हैं या नहीं, उनकी की और उनके डिफ़ॉल्ट लौटाता है। यह किसी एजेंट से हाथ से information_schema क्वेरी करवाने के मुक़ाबले सस्ता और सुरक्षित है।
आपको यह भी पसंद आ सकता है
AWS SSM के ज़रिए RDS
ऐसे Amazon RDS इंस्टेंस तक अपनी ही मशीन से पहुंचें जिसका कोई पब्लिक एंडपॉइंट नहीं है, aws ssm start-session और AWS-StartPortForwardingSessionToRemoteHost डॉक्यूमेंट के ज़रिए। रखरखाव के लिए कोई bastion नहीं, कोई VPN नहीं, कोई इनबाउंड SSH नियम नहीं। AgentsRoom सेशन को एक loopback पोर्ट पर खोलता है और SQL क्लाइंट को उसी से जोड़ता है। सिर्फ़ MySQL और MariaDB, यानी RDS MySQL और Aurora MySQL-compatible।
SSH कनेक्शन
अपने SSH कनेक्शन सहेजें, बिल्ट-इन SSH टर्मिनल खोलें, और Claude Code, Codex या Antigravity CLI को सीधे अपने रिमोट सर्वर या VPS पर चलाएं। SSH की या पासवर्ड से प्रमाणीकरण, प्रति-प्रोजेक्ट कनेक्शन प्रोफ़ाइल, बिना किसी अलग SSH क्लाइंट के।
सीक्रेट मैनेजर
API की, टोकन और पासवर्ड अपने OS कीचेन में रखें, उन्हें डेव कमांड और एजेंट परिवेश में {{secret:NAME}} के रूप में रेफ़र करें, और AgentsRoom को लॉन्च के समय उन्हें हल करने दें। एजेंट नाम देखते हैं, मान कभी नहीं, और कुछ भी किसी सर्वर पर सिंक नहीं होता।
डेव टर्मिनल
प्रति-प्रोजेक्ट टर्मिनल मैनेजर और प्रोसेस लॉन्चर। बैकएंड, फ्रंटएंड और वर्कर्स को एक क्लिक में शुरू करें, लोकल या किसी रिमोट सर्वर पर।
AgentsRoom MCP
वह MCP सर्वर जो आपके एजेंट को खुद AgentsRoom चलाने देता है : प्रोजेक्ट, टर्मिनल, बैकलॉग और कनेक्शन, साथ आने वाले गार्डरेल समेत।
अपने एजेंट को डेटा दें, की नहीं
AgentsRoom डाउनलोड करें, अपने MySQL और MariaDB कनेक्शन सहेजें, उन तक किसी SSH सुरंग या किसी AWS SSM सेशन के ज़रिए पहुंचें, और अपने एजेंट को उन्हें रीड-ओनली क्वेरी करने दें।
कंपेनियन ऐप: चलते-फिरते अपने एजेंट्स मॉनिटर करें
Claude, Codex, Antigravity CLI या किसी अन्य AI प्रदाता का उपयोग करें।
बग और अनुरोध सीधे अपने सार्वजनिक बैकलॉग में भेजें।
AgentsRoom को कार्य करते देखें।