यह डायरेक्टरी विभिन्न प्रोग्रामिंग भाषाओं में MCP क्लाइंट के संपूर्ण, कार्यशील उदाहरण प्रदान करती है। प्रत्येक क्लाइंट मुख्य README.md ट्यूटोरियल में वर्णित पूरी कार्यक्षमता को प्रदर्शित करता है।
- ट्रांसपोर्ट: SSE (सर्वर-सेंट इवेंट्स) HTTP के माध्यम से
- टारगेट सर्वर:
http://localhost:8080 - विशेषताएँ:
- कनेक्शन स्थापित करना और पिंग करना
- टूल सूची
- कैलकुलेटर ऑपरेशन्स (जोड़ना, घटाना, गुणा करना, भाग करना, मदद)
- त्रुटि प्रबंधन और परिणाम निकालना
चलाने के लिए:
# Ensure your MCP server is running on localhost:8080
javac client_example_java.java
java client_example_java- ट्रांसपोर्ट: Stdio (स्टैंडर्ड इनपुट/आउटपुट)
- टारगेट सर्वर: लोकल .NET MCP सर्वर
dotnet runके माध्यम से - विशेषताएँ:
- Stdio ट्रांसपोर्ट के माध्यम से स्वचालित सर्वर स्टार्टअप
- टूल और संसाधन सूची
- कैलकुलेटर ऑपरेशन्स
- JSON परिणाम पार्सिंग
- व्यापक त्रुटि प्रबंधन
चलाने के लिए:
dotnet run- ट्रांसपोर्ट: Stdio (स्टैंडर्ड इनपुट/आउटपुट)
- टारगेट सर्वर: लोकल Node.js MCP सर्वर
- विशेषताएँ:
- MCP प्रोटोकॉल का पूरा समर्थन
- टूल, संसाधन, और प्रॉम्प्ट ऑपरेशन्स
- कैलकुलेटर ऑपरेशन्स
- संसाधन पढ़ना और प्रॉम्प्ट निष्पादन
- मजबूत त्रुटि प्रबंधन
चलाने के लिए:
# First compile TypeScript (if needed)
npm run build
# Then run the client
npm run client
# or
node client_example_typescript.js- ट्रांसपोर्ट: Stdio (स्टैंडर्ड इनपुट/आउटपुट)
- टारगेट सर्वर: लोकल Python MCP सर्वर
- विशेषताएँ:
- Async/await पैटर्न का उपयोग
- टूल और संसाधन खोज
- कैलकुलेटर ऑपरेशन्स परीक्षण
- संसाधन सामग्री पढ़ना
- क्लास-आधारित संगठन
चलाने के लिए:
python client_example_python.pyप्रत्येक क्लाइंट कार्यान्वयन निम्नलिखित प्रदर्शित करता है:
-
कनेक्शन प्रबंधन
- MCP सर्वर से कनेक्शन स्थापित करना
- कनेक्शन त्रुटियों को संभालना
- उचित सफाई और संसाधन प्रबंधन
-
सर्वर खोज
- उपलब्ध टूल्स की सूची बनाना
- उपलब्ध संसाधनों की सूची बनाना (जहाँ समर्थित हो)
- उपलब्ध प्रॉम्प्ट्स की सूची बनाना (जहाँ समर्थित हो)
-
टूल इनवोकेशन
- बुनियादी कैलकुलेटर ऑपरेशन्स (जोड़ना, घटाना, गुणा करना, भाग करना)
- सर्वर जानकारी के लिए मदद कमांड
- उचित तर्क पास करना और परिणाम संभालना
-
त्रुटि प्रबंधन
- कनेक्शन त्रुटियाँ
- टूल निष्पादन त्रुटियाँ
- ग्रेसफुल फेल्योर और उपयोगकर्ता प्रतिक्रिया
-
परिणाम प्रसंस्करण
- प्रतिक्रियाओं से टेक्स्ट सामग्री निकालना
- पठनीयता के लिए आउटपुट को फॉर्मेट करना
- विभिन्न प्रतिक्रिया स्वरूपों को संभालना
इन क्लाइंट्स को चलाने से पहले सुनिश्चित करें कि आपके पास:
- संबंधित MCP सर्वर चल रहा हो (
../01-first-server/से) - आपकी चुनी हुई भाषा के लिए आवश्यक डिपेंडेंसीज़ इंस्टॉल हों
- उचित नेटवर्क कनेक्टिविटी (HTTP-आधारित ट्रांसपोर्ट्स के लिए)
| भाषा | ट्रांसपोर्ट | सर्वर स्टार्टअप | Async मॉडल | प्रमुख लाइब्रेरीज़ |
|---|---|---|---|---|
| जावा | SSE/HTTP | बाहरी | सिंक | WebFlux, MCP SDK |
| C# | Stdio | स्वचालित | Async/Await | .NET MCP SDK |
| TypeScript | Stdio | स्वचालित | Async/Await | Node MCP SDK |
| Python | Stdio | स्वचालित | AsyncIO | Python MCP SDK |
| Rust | Stdio | स्वचालित | Async/Await | Rust MCP SDK, Tokio |
इन क्लाइंट उदाहरणों का पता लगाने के बाद:
- क्लाइंट्स को संशोधित करें नई विशेषताएँ या ऑपरेशन्स जोड़ने के लिए
- अपना खुद का सर्वर बनाएं और इसे इन क्लाइंट्स के साथ टेस्ट करें
- विभिन्न ट्रांसपोर्ट्स के साथ प्रयोग करें (SSE बनाम Stdio)
- एक अधिक जटिल एप्लिकेशन बनाएं जो MCP कार्यक्षमता को एकीकृत करता हो
- कनेक्शन रिफ्यूज्ड: सुनिश्चित करें कि MCP सर्वर अपेक्षित पोर्ट/पथ पर चल रहा है
- मॉड्यूल नहीं मिला: अपनी भाषा के लिए आवश्यक MCP SDK इंस्टॉल करें
- अनुमति अस्वीकृत: Stdio ट्रांसपोर्ट के लिए फ़ाइल अनुमतियों की जाँच करें
- टूल नहीं मिला: सुनिश्चित करें कि सर्वर अपेक्षित टूल्स को लागू करता है
- अपने MCP SDK में वर्बोज लॉगिंग सक्षम करें
- सर्वर लॉग्स की जाँच करें त्रुटि संदेशों के लिए
- टूल नाम और सिग्नेचर सत्यापित करें क्लाइंट और सर्वर के बीच
- पहले MCP इंस्पेक्टर के साथ टेस्ट करें सर्वर कार्यक्षमता को मान्य करने के लिए
अस्वीकरण:
यह दस्तावेज़ AI अनुवाद सेवा Co-op Translator का उपयोग करके अनुवादित किया गया है। जबकि हम सटीकता सुनिश्चित करने का प्रयास करते हैं, कृपया ध्यान दें कि स्वचालित अनुवाद में त्रुटियां या अशुद्धियां हो सकती हैं। मूल भाषा में उपलब्ध मूल दस्तावेज़ को आधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सिफारिश की जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं।