मॉडेल कॉन्टेक्स्ट प्रोटोकॉल (Model Context Protocol) स्पष्टीकरण
जर तुम्ही LLM ला डेटाबेस किंवा API शी जोडले, तर तुम्हाला 'glue code' लिहावा लागतो. तुम्ही तो एका मॉडेलसाठी लिहिता. मग पुढच्या मॉडेलसाठी तो पुन्हा लिहावा लागतो. यामुळे इंटिग्रेशन्सचा (integrations) गोंधळ निर्माण होतो.
Model Context Protocol (MCP) हे याचे निराकरण करते. हे AI साठी USB-C पोर्टसारखे काम करते. प्रत्येक उपकरणासाठी वेगळे कस्टम केबल्स वापरण्याऐवजी, प्रत्येकजण एकच स्टँडर्ड कनेक्टर वापरतो.
MCP मुळे इंटिग्रेशन्सचे गणित M x N वरून M + N असे बदलते.
- टूल डेव्हलपर्स (Tool authors) एक MCP सर्व्हर लिहितात.
- ॲप्लिकेशन डेव्हलपर्स एक MCP क्लायंट जोडतात.
- MCP समजणारा कोणताही होस्ट कोणत्याही सर्व्हरचा वापर करू शकतो.
आर्किटेक्चरमध्ये तीन भूमिका आहेत:
• Host: तुम्ही वापरत असलेले AI ॲप, जसे की Claude Code किंवा IDE. कोणता सर्व्हर कनेक्ट करायचा याचा निर्णय हा घेतो. • Client: होस्टमधील कनेक्टर. हा सर्व्हरशी कनेक्शन कायम राखतो. • Server: तुम्ही तयार केलेला प्रोग्राम. तो टूल्स, डेटा किंवा प्रॉम्प्ट्स उपलब्ध करून देतो.
तुम्ही तीन मुख्य प्रिमिटिव्हज (primitives) वापरता:
- Tools: मॉडेलने कृती करण्यासाठी कॉल केलेली फंक्शन्स, जसे की ईमेल पाठवणे किंवा डेटाबेस क्वेरी करणे.
- Resources: ॲप कॉन्टेक्स्टमध्ये घेणारा 'read-only' डेटा, जसे की फाईल किंवा लॉग.
- Prompts: वापरकर्त्यांना विशिष्ट कार्ये करण्यासाठी मदत करणारे पुन्हा वापरण्यायोग्य टेम्पलेट्स.
तुम्ही FastMCP SDK वापरून Python मध्ये सर्व्हर तयार करू शकता. येथे एक साधे उदाहरण दिले आहे:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-tools")
@mcp.tool()
def word_count(text: str) -> int:
"""Count the words in a text."""
return len(text.split())
@mcp.resource("notes://team")
def team_notes() -> str:
"""Expose team notes."""
return "Release freeze starts Friday."
@mcp.prompt()
def code_review(language: str, code: str) -> str:
"""Template for reviewing code."""
return f"Review this {language} code: {code}"
if __name__ == "__main__":
mcp.run()
जेव्हा तुम्ही सर्व्हर तयार करता, तेव्हा या नियमांचे पालन करा:
- Security: विनाशकारी (destructive) टूल्ससाठी वापरकर्त्याची परवानगी घ्या. सर्व आर्ग्युमेंट्स (arguments) व्हॅलिडेट करा.
- Context: टूल्सचे वर्णन संक्षिप्त ठेवा. लांब वर्णनांमुळे तुमचा टोकन बजेट (token budget) खर्च होतो.
- Errors: स्पष्ट संदेश पाठवा जेणेकरून मॉडेल स्वतःच्या चुका सुधारू शकेल.
MCP टूल्सना एक पुन्हा वापरण्यायोग्य मालमत्ता (reusable asset) बनवते. ते एकदाच लिहा आणि प्रत्येक मॉडेलला ते वापरू द्या.
Source: https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian
Optional learning community: https://t.me/GyaanSetuAi