इस प्रोजेक्ट के बारे में

यह Microsoft SQL Server के लिए एक रीड-ओनली-बाय-डिफ़ॉल्ट मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) सर्वर है, जिसे .NET 8.0 और 10.0 को लक्षित करने वाले .NET NuGet पैकेज (Alyio.McpMssql) के रूप में वितरित किया गया है। इसे AI एजेंटों और डेवलपर्स को न्यूनतम परिचालन ओवरहेड के साथ SQL Server इंस्टेंस के साथ सुरक्षित रूप से इंटरैक्ट करने देने के लिए डिज़ाइन किया गया है। मुख्य क्षमताओं में कैटलॉग मेटाडेटा डिस्कवरी (डेटाबेस, स्कीमा, टेबल, व्यू, स्टोर्ड प्रोसीजर और फंक्शन को सूचीबद्ध करना), कॉन्फ़िगर करने योग्य पंक्ति सीमाओं और टाइमआउट के साथ सुरक्षित पैरामीटराइज़्ड SELECT-ओनली क्वेरी का निष्पादन, और धीमी क्वेरी निदान के लिए निष्पादन योजना विश्लेषण शामिल है। analyze_query टूल निष्पादन योजनाओं का संक्षिप्त JSON सारांश लौटाता है, जिसमें लागत, ऑपरेटर विवरण, कार्डिनैलिटी अनुमान, चेतावनियाँ, इंडेक्स सुझाव और वेट स्टेट्स शामिल हैं। पूर्ण XML योजनाएं एक समर्पित संसाधन URI के माध्यम से उपलब्ध हैं जो 7 दिनों के बाद समाप्त हो जाती हैं। कॉन्फ़िगरेशन MCPMSSQL_ प्रीफ़िक्स्ड एनवायरनमेंट वेरिएबल्स के माध्यम से सिंगल-कनेक्शन सेटअप और उपयोगकर्ता-स्कोप वाली appsettings.json फ़ाइलों के माध्यम से मल्टी-प्रोफ़ाइल सेटअप दोनों का समर्थन करता है। प्रति-प्रोफ़ाइल सेटिंग्स में कनेक्शन स्ट्रिंग, क्वेरी पंक्ति कैप, टाइमआउट मान और वैकल्पिक राइट एक्सेस शामिल हैं। यह Microsoft.Data.SqlClient के माध्यम से Microsoft Entra प्रमाणीकरण के साथ Azure SQL का मूल रूप से समर्थन करता है। सर्वर MCP टूल का एक सेट प्रदान करता है: कॉन्फ़िगर किए गए कनेक्शनों को सूचीबद्ध करने के लिए list_profiles, सर्वर सीमाएं और गुण प्राप्त करने के लिए get_server_properties, मेटाडेटा डिस्कवरी के लिए list_objects और get_object, SELECT-ओनली क्वेरी निष्पादन के लिए run_query (1000 पंक्तियों तक इनलाइन परिणाम या 50000 पंक्तियों तक स्नैपशॉट CSV परिणामों के समर्थन के साथ), निष्पादन योजना विश्लेषण के लिए analyze_query, और DDL/DML राइट ऑपरेशन निष्पादित करने के लिए run_command। run_command टूल डिफ़ॉल्ट रूप से अक्षम है, केवल उन प्रोफ़ाइलों पर सक्षम है जो स्पष्ट रूप से AllowWrite=true सेट करते हैं, और इसे होस्ट-साइड पुष्टिकरण गेटिंग के लिए विनाशकारी के रूप में चिह्नित किया गया है। सुरक्षा डिफ़ॉल्ट रूप से रीड-ओनली है: राइट एक्सेस प्रति प्रोफ़ाइल स्पष्ट रूप से ऑप्ट-इन है, और इंजेक्शन को रोकने के लिए क्वेरी पैरामीटराइज़्ड @paramName बाइंडिंग का उपयोग करती हैं। AllowWrite फ्लैग एक एप्लिकेशन-स्तरीय गार्ड है, न कि डेटाबेस सुरक्षा सीमा; एक कठोर रीड-ओनली गारंटी के लिए, दस्तावेज़ीकरण db_datareader भूमिका तक सीमित लॉगिन का उपयोग करने की सलाह देता है। इसे तीन तरीकों से तैनात किया जा सकता है: सीधे NuGet पैकेज से चलाना, ग्लोबल .NET टूल के रूप में इंस्टॉल करना, या सोर्स से चलाना। Cursor, Gemini, Codex, Open Code, Claude Code और GitHub Copilot सहित सामान्य MCP होस्ट के लिए कॉन्फ़िगरेशन स्निपेट प्रदान किए गए हैं। इंटीग्रेशन टेस्ट के लिए McpMssqlTest डेटाबेस के साथ एक वास्तविक SQL Server इंस्टेंस की आवश्यकता होती है, जिसमें क्रॉस-प्रोसेस डेटाबेस रेस स्थितियों से बचने के लिए टेस्ट फ्रेमवर्क को क्रमिक रूप से चलाने का मार्गदर्शन दिया गया है। प्रोजेक्ट रोडमैप में ब्लॉकिंग के बजाय टिकाऊ टास्क हैंडल के माध्यम से लंबी चलने वाली क्वेरी को संभालने के लिए MCP टास्क एक्सटेंशन (SEP-2663) के लिए समर्थन की योजना है। यह प्रोजेक्ट MIT लाइसेंस के तहत है।