MCP डेटाबेस इंटीग्रेशन

Model Context Protocol (MCP) परिचय

James Chapman

AI Curriculum Manager, DataCamp

Timezone सर्वर में डेटाबेस क्यों जोड़ें?

 

  • क्वेरी पावर: पूरे डेटासेट को लोड किए बिना फ़िल्टर, खोज, और सॉर्ट करें
  • स्केल: डेटाबेस इंडेक्स से तेज़ लुकअप्स

डेटाबेस कनेक्शन

Model Context Protocol (MCP) परिचय

Timezone सर्वर में डेटाबेस क्यों जोड़ें?

 

  • क्वेरी पावर: पूरे डेटासेट को लोड किए बिना फ़िल्टर, खोज, सॉर्ट
  • स्केल: डेटाबेस इंडेक्स से तेज़ लुकअप्स
  • कन्करंसी: कई टूल कॉल या क्लाइंट्स DB को सुरक्षित रूप से हिट करें
  • प्रोडक्शन-रेडी: बैकअप, रेप्लिकेशन, और एकल सोर्स ऑफ़ ट्रुथ

डेटाबेस लाभ

Model Context Protocol (MCP) परिचय

डेटा एक्सेस: टूल्स बनाम रिसोर्सेज

टूल्स आइकन

  • डायनामिक, भारी यूज़र-इनपुट आधारित, राइट ऑपरेशंस
  • उदाहरण: डेटा एनालिटिक्स और ऑपरेशंस

रिसोर्स आइकन

  • रीड-ओनली, स्थिर डेटा, संदर्भ जानकारी
  • उदाहरण: दिशानिर्देश, डॉक्यूमेंटेशन, नीतियाँ
Model Context Protocol (MCP) परिचय

कनेक्शन लाइफ़साइकल

डेटाबेस कनेक्शन

Model Context Protocol (MCP) परिचय

डेटाबेस रिसोर्स: timezone_server.py

from mcp.server.fastmcp import FastMCP
import sqlite3

mcp = FastMCP("Timezone Converter")

# Create connection at startup; reuse in handlers
conn = sqlite3.connect("timezones.db")
conn.row_factory = sqlite3.Row

@mcp.resource("db://timezones") def get_locations() -> str: try: cursor = conn.execute("SELECT timezone FROM locations") rows = cursor.fetchall() return "\n".join(r["timezone"] for r in rows) except sqlite3.Error as e: return f"Error: {e}"
Model Context Protocol (MCP) परिचय

डेटाबेस लुकअप टूल: timezone_server.py

@mcp.tool()
def lookup_locations(prefix: str) -> str:
    """Find timezones that contain the given prefix."""
    try:
        cursor = conn.execute(
            "SELECT timezone FROM locations WHERE timezone LIKE ? LIMIT 50", (f"%{prefix}%",))
        rows = cursor.fetchall()
        return "\n".join(r["timezone"] for r in rows)
    except sqlite3.Error as e: return f"Error: {e}"

if __name__ == "__main__": try: mcp.run(transport="stdio") finally: conn.close()
Model Context Protocol (MCP) परिचय

सुरक्षा और प्रोडक्शन आदतें

 

  • पैरामीटराइज़्ड (?) क्वेरी: यूज़र या LLM इनपुट को कभी भी स्ट्रिंग-फॉर्मैट कर SQL में न डालें
    • प्रॉम्प्ट इंजेक्शन → प्रॉम्प्ट्स के ज़रिए दुर्भावनापूर्ण कोड इंजेक्शन
SELECT timezone FROM locations WHERE timezone LIKE ? LIMIT 50
  • MCP सर्वर के लिए रीड-ओनली और संकीर्ण-स्कोप DB एक्सेस चुनें
  • लिमिट लगाएँ: अधिकतम पंक्तियाँ और टाइमआउट्स
Model Context Protocol (MCP) परिचय

Ayo berlatih!

Model Context Protocol (MCP) परिचय

Preparing Video For Download...