ஒரு Laravel பயன்பாட்டிற்குள் ஓர் MCP Server-ஐ இணைத்தல்
AI முகவர்களுக்கு (AI agents) வெறும் ஸ்கிராப் செய்யப்பட்ட (scraped) UI மட்டும் போதாது. முறையான அனுமதிகளுடன் குறிப்பிட்ட கருவிகளை (tools) அழைப்பதற்கான வழிமுறை அவர்களுக்குத் தேவை. Model Context Protocol (MCP) இதைத்தான் செய்கிறது.
நான் சமீபத்தில் ஒரு MCP server-ஐ நேரடியாக ஒரு Laravel பயன்பாட்டிற்குள் ஒருங்கிணைத்தேன். இதை பாதுகாப்பாக உருவாக்குவதற்கான கட்டடக்கலை முடிவுகளை (architectural decisions) நான் பகிர விரும்புகிறேன்.
வரவேற்பாளர் உருவகம் (The Receptionist Metaphor)
உங்கள் பயன்பாட்டை ஒரு அலுவலகக் கட்டடமாக நினைத்துக் கொள்ளுங்கள்.
- Web UI என்பது மனிதர்களுக்கான வரவேற்பறை (lobby).
- REST API என்பது அமைப்புகளுக்கான (systems) ஊழியர் நுழைவாயில்.
- MCP server என்பது AI முகவர்களுக்கான வரவேற்பு மேசை.
முகவர் ஒரு அடையாள அட்டையைக் காட்டி ஒரு குறிப்பிட்ட பணியைக் கேட்கிறார். வரவேற்பாளர் அவர்களுக்குக் கட்டடத்தின் சாவிகளைக் கொடுத்துவிட மாட்டார். அவர்கள் அனுமதிகளைச் சரிபார்த்து, ஒரு பணியைச் செய்துவிட்டு, ஒரு கட்டமைக்கப்பட்ட பதிலை (structured answer) வழங்குவார்கள்.
முக்கிய வடிவமைப்பு முடிவுகள்
1. ஒரு ஒற்றை endpoint-ஐப் பயன்படுத்துங்கள்
வெவ்வேறு கருவிகளுக்காகப் பல வழிகளை (routes) உருவாக்க வேண்டாம். ஒரே /mcp endpoint-ஐப் பயன்படுத்துங்கள். இந்தத் தரநிலை (protocol) கருவிகளைக் கண்டறிதலைத் தானாகவே கையாளும். ஒரே ஒரு நுழைவாயில் இருப்பது பாதுகாப்பதற்கும் ஆவணப்படுத்துவதற்கும் எளிதானது.
2. இரட்டை அங்கீகாரத்தை (dual authentication) ஆதரிக்கவும்
வெவ்வேறு அழைப்பாளர்கள் வெவ்வேறு பாதுகாப்பு முறைகளைத் தேவையாகக் கொண்டிருக்கலாம்:
- முதல் தரப்பு அழைப்பாளர்கள் (CLI கருவிகள் போன்றவை) Sanctum personal access tokens-ஐப் பயன்படுத்துகின்றனர்.
- மூன்றாம் தரப்பு முகவர்கள் (பயனர்களுக்காகச் செயல்படுபவை) OAuth 2.1-ஐப் பயன்படுத்துகின்றன.
இரண்டையும் கையாள ஒரு driver-style resolver-ஐப் பயன்படுத்தவும். கருவியின் குறியீடு (tool code) அங்கீகரிக்கப்பட்ட பயனரைப் பற்றி மட்டுமே கவலைப்பட வேண்டும், அவர்கள் எவ்வாறு உள்நுழைந்தார்கள் என்பதைப் பற்றி அல்ல.
3. ஏற்கனவே உள்ள RBAC-ஐ நடைமுறைப்படுத்துங்கள்
அங்கீகாரம் (Authentication) என்பது அழைப்பாளர் யார் என்பதை மட்டுமே நிரூபிக்கிறது. அவர்கள் என்ன செய்ய முடியும் என்பதை நீங்கள் இன்னும் சரிபார்க்க வேண்டும். ஒவ்வொரு கருவியும் ஏற்கனவே உள்ள ஒரு திறனுடன் (ability) இணைக்கப்பட்டிருக்க வேண்டும். ஒரு பயனர் Web UI-இல் பங்கேற்பாளர்களைப் பார்க்க முடியாவிட்டால், அவர் MCP மூலமாகவும் அதைச் செய்ய முடியாது.
4. தரவு வெளியீட்டைக் கட்டுப்படுத்துங்கள்
ஒரு முழுமையான database model-ஐ ஒருபோதும் திருப்பி அனுப்ப வேண்டாம். MCP வெளியீட்டை ஒரு பொது API போலக் கருதுங்கள். முகவருக்குத் தேவையான குறிப்பிட்ட புலங்களை (fields) மட்டும் திருப்பி அனுப்பவும். இது தற்செயலான தரவு கசிவைத் (data leaks) தடுக்கிறது.
பாதுகாப்பிற்கான சோதனை (Testing for Security)
உங்கள் சோதனைகள் அமைப்பு சரியாகத் தோல்வியடைவதை நிரூபிக்க வேண்டும். இவற்றைச் சோதிக்கவும்:
- அங்கீகாரம் இல்லாத பயனர் 403 Forbidden பிழையைப் பெறுகிறார்.
- அங்கீகாரம் பெற்ற பயனர் அனுமதிக்கப்பட்ட புலங்களை மட்டுமே பெறுகிறார்.
தன்னாட்சி முகவர்களைப் (autonomous agents) பயன்படுத்தும்போது, தரவு கசிவுக்கு எதிரான சிறந்தத் தற்காப்பு உங்கள் சிறந்த சோதனைத் தொகுப்பு (test suite) ஆகும்.
சுருக்கம்
ஒரு பொறுப்பான MCP server-ஐ உருவாக்க, இந்த மூன்று விதிகளைப் பின்பற்றுங்கள்:
- சரியான முறையைப் பயன்படுத்தி ஒவ்வொரு அழைப்பாளர்களையும் அங்கீகரிக்கவும் (Authenticate).
- உங்கள் ஏற்கனவே உள்ள அனுமதி மாதிரியைப் (permission model) பயன்படுத்தி ஒவ்வொரு கருவியையும் அங்கீகரிக்கவும் (Authorize).
- ஒவ்வொரு கருவியின் வெளியீட்டையும் ஒரு வரையறுக்கப்பட்ட பொது வளமாகக் கருதவும்.
