Laravel ॲपमध्ये MCP Server समाविष्ट करणे
AI एजंट्सना केवळ स्क्रॅप केलेल्या UI पेक्षा अधिक गोष्टींची गरज असते. त्यांना योग्य परवानग्यांसह विशिष्ट टूल्स कॉल करण्याचा मार्ग हवा असतो. Model Context Protocol (MCP) हेच काम करते.
मी अलीकडेच एका Laravel ॲप्लिकेशनमध्ये थेट MCP सर्व्हर इंटिग्रेट केला आहे. हे सुरक्षितपणे तयार करण्यासाठी मी घेतलेले आर्किटेक्चरल निर्णय मला शेअर करायचे आहेत.
The Receptionist Metaphor
तुमच्या ॲपला एका ऑफिस बिल्डिंगप्रमाणे समजा.
- वेब UI हे मानवांसाठीचे लॉबी आहे.
- REST API हे सिस्टम्ससाठीचे स्टाफ एन्ट्रान्स आहे.
- MCP सर्व्हर हे AI एजंट्ससाठीचे रिसेप्शन डेस्क आहे.
एजंट आपली ओळख (ID) दाखवतो आणि विशिष्ट कामाची विनंती करतो. रिसेप्शनिस्ट त्यांना बिल्डिंगच्या चाव्या देत नाही. ते परवानग्या तपासतात, एक काम पूर्ण करतात आणि एक स्ट्रक्चर्ड उत्तर परत करतात.
Key Design Decisions
एकच एंडपॉइंट वापरा वेगवेगळ्या टूल्ससाठी अनेक रूट्स तयार करू नका. एक
/mcpएंडपॉइंट वापरा. प्रोटोकॉल आपोआप टूल डिस्कव्हरी हाताळतो. एकच सरफेस सुरक्षित करणे आणि डॉक्युमेंट करणे सोपे असते.ड्युअल ऑथेंटिकेशनला सपोर्ट द्या वेगवेगळ्या कॉलर्सना वेगवेगळ्या सुरक्षा पद्धतींची गरज असते:
- फर्स्ट-पार्टी कॉलर्स (जसे की CLI टूल्स) Sanctum पर्सनल ॲक्सेस टोकन्स वापरतात.
- थर्ड-पार्टी एजंट्स (वापरकर्त्यांसाठी काम करणारे) OAuth 2.1 वापरतात.
दोन्ही हाताळण्यासाठी ड्रायव्हर-स्टाईल रिझॉल्व्हर वापरा. टूल कोडला फक्त ऑथेंटिकेटेड युजरशी देणेघेणे असावे, त्यांनी लॉग इन कसे केले याशी नाही.
विद्यमान RBAC लागू करा ऑथेंटिकेशन फक्त कॉलर कोण आहे हे सिद्ध करते. ते काय करू शकतात हे तुम्हाला अजूनही तपासावे लागेल. प्रत्येक टूल एका विद्यमान 'अॅबिलिटी'शी (ability) मॅप केले पाहिजे. जर एखादा युजर वेब UI मध्ये पार्टिसिपंट्स पाहू शकत नसेल, तर तो MCP द्वारे देखील ते करू शकणार नाही.
डेटा आउटपुट मर्यादित करा कधीही पूर्ण डेटाबेस मॉडेल परत करू नका. MCP आउटपुटला पब्लिक API प्रमाणे हाताळा. एजंटला आवश्यक असलेले फक्त विशिष्ट फील्ड्सच परत करा. यामुळे डेटा लीक होण्याचा धोका टाळता येतो.
Testing for Security
तुमचे टेस्ट्स हे सिद्ध केले पाहिजेत की सिस्टम योग्यरित्या फेल होते. हे तपासा की:
- अनधिकृत युजरला 403 Forbidden एरर मिळतो.
- अधिकृत युजरला फक्त परवानगी असलेले फील्ड्स मिळतात.
स्वायत्त (autonomous) एजंट्स वापरताना डेटा लीकपासून वाचण्यासाठी एक चांगला टेस्ट सूट हा तुमचा सर्वोत्तम बचाव आहे.
Summary
एक जबाबदार MCP सर्व्हर तयार करण्यासाठी, या तीन नियमांचे पालन करा:
- योग्य स्कीम वापरून प्रत्येक कॉलरला ऑथेंटिकेट करा.
- तुमच्या विद्यमान परमिशन मॉडेलचा वापर करून प्रत्येक टूलला ऑथोराईज करा.
- प्रत्येक टूल आउटपुटला मर्यादित सार्वजनिक संसाधन (public resource) म्हणून treat करा.
