Model Context Protocol परिचय

Model Context Protocol (MCP) की गहरी समझ

प्रोटोकॉल विनिर्देश40 मिनट पढ़ना

प्रोटोकॉल अवलोकन

Model Context Protocol (MCP) एक खुला मानक है जो मानकीकृत करता है कि एप्लिकेशन बड़े भाषा मॉडल (LLM) को संदर्भ कैसे प्रदान करते हैं। MCP को AI एप्लिकेशन के लिए USB-C पोर्ट की तरह समझें—AI मॉडल को विभिन्न डेटा स्रोतों और टूल्स से जोड़ने का मानकीकृत तरीका प्रदान करता है।

मुख्य लाभ

  • मानकीकृत संचार इंटरफ़ेस
  • सुरक्षित डेटा ट्रांसमिशन
  • विस्तार योग्य आर्किटेक्चर डिज़ाइन
  • क्रॉस-प्लेटफ़ॉर्म संगतता
  • रियल-टाइम संदर्भ सिंक्रोनाइज़ेशन
  • प्लगइन-आधारित एक्सटेंशन समर्थन

उपयोग के मामले

  • कोड विश्लेषण और समझ
  • दस्तावेज़ीकरण निर्माण और रखरखाव
  • प्रोजेक्ट प्रबंधन एकीकरण
  • डेटाबेस क्वेरी और संचालन
  • API सेवा एकीकरण
  • वर्कफ़्लो स्वचालन

आर्किटेक्चर डिज़ाइन

MCP प्रोटोकॉल स्तरित आर्किटेक्चर और घटक अवलोकन

MCP होस्ट

AI एप्लिकेशन

AI एप्लिकेशन जो एक या कई MCP क्लाइंट्स का समन्वय और प्रबंधन करता है

मुख्य जिम्मेदारियां:

  • कई MCP क्लाइंट्स का समन्वय करना
  • AI मॉडल इंटरैक्शन प्रबंधित करना
  • सर्वर प्रतिक्रियाओं को प्रोसेस करना
  • सेशन स्थिति को संभालना

MCP क्लाइंट

कनेक्शन प्रबंधक

एक घटक जो MCP सर्वर से कनेक्शन बनाए रखता है और MCP होस्ट के उपयोग के लिए MCP सर्वर से संदर्भ प्राप्त करता है

मुख्य जिम्मेदारियां:

  • एक-से-एक सर्वर कनेक्शन बनाए रखना
  • संदर्भ क्वेरी भेजना
  • सर्वर प्रतिक्रियाओं को संभालना
  • कनेक्शन जीवनचक्र प्रबंधित करना

MCP सर्वर

संदर्भ प्रदाता

एक प्रोग्राम जो टूल्स, संसाधनों और प्रॉम्प्ट्स के माध्यम से MCP क्लाइंट्स को संदर्भ प्रदान करता है

मुख्य जिम्मेदारियां:

  • क्लाइंट कनेक्शन स्वीकार करना
  • संदर्भ अनुरोधों को प्रोसेस करना
  • संरचित डेटा वापस करना
  • संसाधन स्थिति बनाए रखना

ट्रांसपोर्ट लेयर

संचार चैनल

क्लाइंट्स और सर्वर के बीच संचार चैनल और प्रमाणीकरण का प्रबंधन करता है

मुख्य जिम्मेदारियां:

  • स्थानीय प्रक्रियाओं के लिए STDIO ट्रांसपोर्ट
  • रिमोट सर्वर के लिए HTTP ट्रांसपोर्ट
  • मैसेज फ्रेमिंग और सीरियलाइज़ेशन
  • प्रमाणीकरण और सुरक्षा

डेटा लेयर

प्रोटोकॉल परिभाषा

क्लाइंट-सर्वर संचार के लिए JSON-RPC आधारित प्रोटोकॉल को परिभाषित करता है

मुख्य जिम्मेदारियां:

  • JSON-RPC 2.0 संदेश प्रारूप
  • जीवनचक्र प्रबंधन
  • प्रिमिटिव परिभाषाएं (टूल्स, संसाधन, प्रॉम्प्ट्स)
  • अधिसूचना प्रणाली

MCP प्रिमिटिव्स

मुख्य प्रिमिटिव्स जो परिभाषित करते हैं कि क्लाइंट और सर्वर एक दूसरे को क्या प्रदान कर सकते हैं

टूल्स

निष्पादन योग्य फ़ंक्शन जिन्हें AI एप्लिकेशन क्रियाएं करने के लिए आह्वान कर सकते हैं

उदाहरण:

  • फ़ाइल ऑपरेशन (पढ़ना, लिखना, बनाना)
  • बाहरी सेवाओं के लिए API कॉल
  • डेटाबेस क्वेरी और ऑपरेशन
  • कोड विश्लेषण और संकलन
  • सिस्टम कमांड निष्पादन

उपलब्ध विधियां:

tools/listtools/call

संसाधन

डेटा स्रोत जो AI एप्लिकेशन को संदर्भ जानकारी प्रदान करते हैं

उदाहरण:

  • फ़ाइल सामग्री और मेटाडेटा
  • डेटाबेस रिकॉर्ड और स्कीमा
  • API प्रतिक्रियाएं और दस्तावेज़ीकरण
  • Git रिपॉजिटरी जानकारी
  • कॉन्फ़िगरेशन फ़ाइलें

उपलब्ध विधियां:

resources/listresources/read

प्रॉम्प्ट्स

पुन: उपयोग योग्य टेम्प्लेट जो भाषा मॉडल के साथ इंटरैक्शन को संरचित करने में मदद करते हैं

उदाहरण:

  • विशिष्ट कार्यों के लिए सिस्टम प्रॉम्प्ट्स
  • सीखने के लिए कुछ-शॉट उदाहरण
  • कोड समीक्षा टेम्प्लेट
  • दस्तावेज़ीकरण जेनरेशन प्रॉम्प्ट्स
  • विश्लेषण और सारांश टेम्प्लेट

उपलब्ध विधियां:

prompts/listprompts/get

ट्रांसपोर्ट लेयर

संचार तंत्र जो क्लाइंट और सर्वर के बीच डेटा एक्सचेंज को सक्षम बनाते हैं

STDIO ट्रांसपोर्ट

प्रत्यक्ष प्रक्रिया संचार के लिए मानक इनपुट/आउटपुट स्ट्रीम का उपयोग करता है

उपयोग के मामले:

  • समान मशीन पर स्थानीय MCP सर्वर
  • प्रत्यक्ष प्रक्रिया संचार
  • बिना नेटवर्क ओवरहेड के इष्टतम प्रदर्शन
  • सरल सेटअप और कॉन्फ़िगरेशन

उदाहरण:

npx @modelcontextprotocol/server-filesystem /path/to/files

STDIO के माध्यम से फाइलसिस्टम सर्वर लॉन्च करें

HTTP ट्रांसपोर्ट

वैकल्पिक सर्वर-सेंट इवेंट्स के साथ क्लाइंट-टू-सर्वर संदेशों के लिए HTTP POST का उपयोग करता है

उपयोग के मामले:

  • रिमोट MCP सर्वर
  • क्लाउड-आधारित सेवाएं
  • Bearer टोकन के साथ प्रमाणीकरण
  • स्केलेबल सर्वर परिनियोजन

उदाहरण:

https://api.example.com/mcp

HTTP के माध्यम से रिमोट MCP सर्वर से कनेक्ट करें

संदेश प्रकार

MCP प्रोटोकॉल द्वारा समर्थित JSON-RPC 2.0 आधारित संदेश प्रकार

initialize

कनेक्शन प्रारंभ करें और प्रोटोकॉल संस्करण और क्षमताओं पर बातचीत करें

क्लाइंट → सर्वर

संदेश उदाहरण:

{
  "method": "initialize",
  "params": {
    "protocolVersion": "2025-06-18",
    "capabilities": {
      "tools": {},
      "resources": {}
    },
    "clientInfo": {
      "name": "gemini-cli",
      "version": "1.0.0"
    }
  }
}

tools/list

सर्वर पर उपलब्ध टूल्स खोजें

क्लाइंट → सर्वर

संदेश उदाहरण:

{
  "method": "tools/list",
  "params": {}
}

tools/call

प्रदान किए गए तर्कों के साथ एक विशिष्ट टूल निष्पादित करें

क्लाइंट → सर्वर

संदेश उदाहरण:

{
  "method": "tools/call",
  "params": {
    "name": "com.example.weather/current",
    "arguments": {
      "location": "San Francisco",
      "units": "imperial"
    }
  }
}

resources/list

उपलब्ध संसाधनों की सूची प्राप्त करें

क्लाइंट → सर्वर

संदेश उदाहरण:

{
  "method": "resources/list",
  "params": {}
}

resources/read

विशिष्ट संसाधन सामग्री पढ़ें

क्लाइंट → सर्वर

संदेश उदाहरण:

{
  "method": "resources/read",
  "params": {
    "uri": "file:///path/to/file.ts"
  }
}

prompts/list

उपलब्ध प्रॉम्प्ट टेम्प्लेट प्राप्त करें

क्लाइंट → सर्वर

संदेश उदाहरण:

{
  "method": "prompts/list",
  "params": {}
}

notifications/tools/list_changed

जब उपलब्ध टूल्स बदलते हैं तो क्लाइंट को सूचित करें

सर्वर → क्लाइंट

संदेश उदाहरण:

{
  "method": "notifications/tools/list_changed"
}

टूल परिभाषा उदाहरण

MCP प्रोटोकॉल में टूल्स को कैसे परिभाषित किया जाता है का उदाहरण

मौसम टूल परिभाषा

यह उदाहरण दिखाता है कि उचित इनपुट स्कीमा सत्यापन और दस्तावेज़ीकरण के साथ मौसम टूल कैसे परिभाषित किया जाता है।

// MCP 工具定义示例
{
  "name": "com.example.weather/current",
  "title": "Get Current Weather",
  "description": "Get current weather information for a specified location",
  "inputSchema": {
    "type": "object",
    "properties": {
      "location": {
        "type": "string",
        "description": "The location to get weather for"
      },
      "units": {
        "type": "string",
        "enum": ["metric", "imperial"],
        "description": "Temperature units",
        "default": "metric"
      },
      "include_forecast": {
        "type": "boolean",
        "description": "Whether to include forecast data",
        "default": false
      }
    },
    "required": ["location"]
  }
}

मुख्य घटक:

  • name: टूल के लिए अद्वितीय पहचानकर्ता
  • title: मानव-पठनीय प्रदर्शन नाम
  • description: कार्यक्षमता की विस्तृत व्याख्या
  • inputSchema: इनपुट सत्यापन के लिए JSON Schema

सर्वोत्तम प्रथाएं:

  • नेमस्पेस्ड टूल नाम का उपयोग करें (जैसे, com.example.weather/current)
  • स्पष्ट, वर्णनात्मक दस्तावेज़ीकरण प्रदान करें
  • व्यापक इनपुट स्कीमा परिभाषित करें
  • उपयुक्त स्थानों पर डिफ़ॉल्ट मान शामिल करें

संचार प्रवाह

MCP क्लाइंट और सर्वर के बीच पूर्ण संचार प्रवाह

1

कनेक्शन प्रारंभ करें

क्लाइंट कनेक्शन स्थापित करता है और सर्वर के साथ क्षमताओं पर बातचीत करता है

विस्तृत चरण:

  • क्लाइंट प्रोटोकॉल संस्करण के साथ प्रारंभिक अनुरोध भेजता है
  • सर्वर समर्थित क्षमताओं के साथ प्रतिक्रिया देता है
  • दोनों पक्ष संचार पैरामीटर पर बातचीत करते हैं
  • सहमत प्रोटोकॉल संस्करण के साथ कनेक्शन स्थापित
2

क्षमता खोज

क्लाइंट उपलब्ध टूल्स, संसाधन और प्रॉम्प्ट्स खोजता है

विस्तृत चरण:

  • उपलब्ध टूल्स सूची का अनुरोध करें (tools/list)
  • उपलब्ध संसाधनों का अनुरोध करें (resources/list)
  • उपलब्ध प्रॉम्प्ट्स का अनुरोध करें (prompts/list)
  • कुशल पहुंच के लिए क्षमता जानकारी कैश करें
3

संदर्भ आदान-प्रदान

क्लाइंट संसाधनों से संदर्भ डेटा का अनुरोध करता है और प्राप्त करता है

विस्तृत चरण:

  • संसाधन पढ़ने के अनुरोध भेजें (resources/read)
  • विभिन्न प्रारूपों में संरचित डेटा प्राप्त करें
  • आवश्यकतानुसार डेटा प्रारूप रूपांतरण प्रक्रिया करें
  • प्राप्त जानकारी के साथ स्थानीय संदर्भ अपडेट करें
4

टूल निष्पादन

क्लाइंट क्रियाएं करने के लिए सर्वर टूल्स का आह्वान करता है

विस्तृत चरण:

  • टूल कॉल अनुरोध बनाएं (tools/call)
  • उचित सत्यापन के साथ आवश्यक पैरामीटर पास करें
  • सर्वर से निष्पादन परिणामों की प्रतीक्षा करें
  • वापस किए गए डेटा को प्रोसेस करें और त्रुटियों को संभालें
5

रियल-टाइम अपडेट

अधिसूचनाओं के माध्यम से सिंक्रोनाइज़ेशन बनाए रखें

विस्तृत चरण:

  • संसाधन परिवर्तन अधिसूचनाओं को सुनें
  • टूल सूची अपडेट को गतिशील रूप से संभालें
  • कनेक्शन बाधाओं को सुंदर तरीके से प्रोसेस करें
  • आवश्यकता पड़ने पर कनेक्शन पुनः स्थापित करें

सुरक्षा सुविधाएं

MCP प्रोटोकॉल में सुरक्षा तंत्र और सुरक्षा उपाय

प्रमाणीकरण

कई प्रमाणीकरण तंत्र समर्थित

समर्थित विधियां:

  • API कुंजी प्रमाणीकरण
  • OAuth 2.0 फ्लो
  • Bearer टोकन
  • कस्टम प्रमाणीकरण हेडर

प्राधिकरण

बारीक अनुमति प्रबंधन

समर्थित विधियां:

  • संसाधन-स्तरीय अनुमतियां
  • ऑपरेशन प्रकार प्रतिबंध
  • समय-आधारित पहुंच नियंत्रण
  • दर सीमा और कोटा

डेटा सुरक्षा

एंड-टू-एंड डेटा सुरक्षा

समर्थित विधियां:

  • TLS/SSL ट्रांसपोर्ट एन्क्रिप्शन
  • संदेश सामग्री एन्क्रिप्शन
  • संवेदनशील डेटा मास्किंग
  • सुरक्षित कुंजी प्रबंधन

ऑडिट और निगरानी

व्यापक ऑपरेशन ट्रैकिंग

समर्थित विधियां:

  • अनुरोध/प्रतिक्रिया लॉगिंग
  • अनुमति जांच रिकॉर्ड
  • त्रुटि और अपवाद ट्रैकिंग
  • प्रदर्शन मेट्रिक्स संग्रह

शुरुआत करना

Gemini CLI के साथ MCP का उपयोग शुरू करने के लिए तैयार हैं? इन संसाधनों का अन्वेषण करें