Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Redis

5 मिनट में अपना मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) बनाएं – चरण-दर-चरण गाइड

मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) को सरल भाषा में समझें

मॉडल कॉन्टेक्स्ट प्रोटोकॉल (संक्षेप में MCP) एक मानकीकृत प्रोटोकॉल है जो AI को बाहरी APIs, लाइव डेटा और अन्य सेवाओं से जोड़ता है। इसे एंथ्रोपिक (Anthropic) ने 2024 के अंत में पेश किया था।

MCP सर्वर को एक टूल के रूप में समझें (जैसे मौसम डेटा प्राप्त करना, टेक्स्ट ट्रांसलेट करना, APIs के साथ इंटरैक्ट करना) जिसे AI एजेंट अपने वर्तमान कार्य के लिए उपयोगी पाने पर स्वायत्त रूप से कॉल कर सकता है।

उदाहरण के लिए, हमारा अपस्टैश (Upstash) MCP कर्सर (Cursor) को आपके डेटाबेस के साथ इंटरैक्ट करने की अनुमति देता है - ऐसा कुछ जो रेगुलर क्लॉड (Claude) अपने आप कभी नहीं कर पाएगा। "मेरे रेडिस डेटाबेस में XYZ डालो" जैसे सरल नेचुरल लैंग्वेज कमांड संभव हो जाते हैं क्योंकि MCP इन अनुरोधों को वास्तविक डेटाबेस ऑपरेशन में बदल देता है।

मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) का उदाहरण

MCP के रिलीज़ के बाद से, लोग रचनात्मक उपयोग के मामले लेकर आ रहे हैं। ये केवल कर्सर और कोडिंग तक सीमित नहीं हैं: ब्लेंडर (Blender) में जटिल एनिमेशन दृश्य जिन्हें स्वयं बनाने में घंटों लगेंगे? बस क्लॉड को MCP के माध्यम से ब्लेंडर तक पहुंच दें:

5 मिनट में अपना मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) बनाएं – चरण-दर-चरण गाइड

मेरे लिए, मॉडल कॉन्टेक्स्ट प्रोटोकॉल AI को इंटरनेट एक्सेस देने के बाद अगला कदम लगता है। रूपक के तौर पर, यदि इंटरनेट एक्सेस AI को हाथ-पैर देने जैसा है (ताकि वह वास्तव में काम कर सके), तो MCP उसे चलने के लिए पैर देने जैसा है।

वैसे, MCP सर्वर बनाना चुनिंदा कंपनियों या लोगों तक सीमित नहीं है। कोई भी अपना MCP बना सकता है, होस्ट कर सकता है या उसके आसपास SaaS बना सकता है - आइए देखें कैसे।

बेसिक MCP सर्वर कैसे बनाएं

आइए एक बहुत ही सरल MCP उदाहरण देखते हैं। मान लीजिए आप एक ट्रांसलेशन MCP बनाना चाहते हैं जो कर्सर को हमारे टूल से टेक्स्ट ट्रांसलेट करने दे। आपको बस एक सर्वर चाहिए जो इस MCP को सर्व करे और एक टूल जो आपका मनचाहा काम करे:

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; 
import { z } from "zod"; 
const server = new McpServer({ 
  name: "Translation Service", 
  version: "1.0.0", 
}); 
server.tool( 
  "translate", 
  { 
    text: z.string(), 
    targetLanguage: z.enum(["spanish", "french", "german"]), 
  }, 
  async ({ text, targetLanguage }) => { 
    // 👉 यहां, आप किसी ट्रांसलेशन सर्विस को API कॉल करेंगे 
    const translatedText = `[Translated: "${text}" to ${targetLanguage}]`; 
    return { 
      content: [{ type: "text", text: translatedText }], 
    }; 
  }, 
);

ऊपर दिया कोड मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) के बुनियादी सिद्धांतों को दर्शाता है। हम एक ट्रांसलेशन सर्विस बना रहे हैं जिससे क्लॉड प्रोग्रामेटिक रूप से इंटरैक्ट कर सकता है।

हम translate नामक एक टूल को Zod स्कीमा के साथ परिभाषित करते हैं जो बताता है कि यह किन पैरामीटर्स को स्वीकार करता है:

  • text एक स्ट्रिंग के रूप में
  • targetLanguage एक स्ट्रिंग के रूप में (स्पैनिश, फ्रेंच, या जर्मन तक सीमित)।

जब कोई AI असिस्टेंट इस टूल को कॉल करता है, तो यह Zod द्वारा लागू आवश्यक पैरामीटर्स पास करता है (Zod एक ओपन-सोर्स स्कीमा वैलिडेशन लाइब्रेरी है), और हमारा फंक्शन उन्हें प्रोसेस करता है। प्रोडक्शन एनवायरनमेंट में, आप प्लेसहोल्डर ट्रांसलेशन को डीपएल (DeepL) या गूगल ट्रांसलेट जैसी सर्विस के वास्तविक API कॉल से बदल देंगे।

content: [{ type: "text", text: translatedText }], का रिस्पॉन्स फॉर्मेट MCP टूल स्पेसिफिकेशन का पालन करता है और एक ऐसी संरचना लौटाता है जिसका उपयोग क्लॉड अपने रिस्पॉन्स के लिए कर सकता है। यह मानकीकृत दृष्टिकोण किसी भी MCP-अनुरूप AI को बिना किसी कस्टम इंटीग्रेशन कार्य के आपके टूल का उपयोग करने देता है।

यही पैटर्न किसी भी प्रकार के टूल के लिए काम करता है - ट्रांसलेशन से लेकर डेटा एनालिसिस, इमेज जेनरेशन, या यहां तक कि स्मार्ट होम डिवाइसेज को कंट्रोल करने तक।

अपना MCP सर्वर चलाएं और कर्सर के साथ टेस्ट करें

अब, अपना MCP सर्वर शुरू करने के लिए हम एक transport का उपयोग करेंगे:

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; 
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; 
import { z } from "zod"; 
const server = new McpServer({ 
  name: "Translation Service", 
  version: "1.0.0", 
}); 
server.tool(/* ... */); 
const transport = new StdioServerTransport(); 
server.connect(transport);

बस! हमने अपना MCP सर्वर बना लिया! 🎉

हम अपने नए MCP को स्थानीय रूप से index.ts फ़ाइल का पथ कॉपी करके और कर्सर से जोड़कर टेस्ट कर सकते हैं। कर्सर आपको इसके 'एजेंट' मोड को बेहतर बनाने के लिए MCP सर्वर जोड़ने की अनुमति देता है।

  1. कर्सर में, index.ts > Copy Path पर राइट-क्लिक करें। हमें बाद में इसकी आवश्यकता होगी।
  2. कर्सर में MCP सर्वर जोड़ने के लिए, Cursor Settings > Features > MCP पर जाएं और + Add New MCP Server पर क्लिक करें।

    5 मिनट में अपना मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) बनाएं – चरण-दर-चरण गाइड

  3. type को command ही रहने दें।
  4. सर्वर को एक नाम दें, जैसे Translation।
  5. अपने ट्रांसलेशन टूल को चलाने का कमांड दर्ज करें: npx tsx <path-to-file>।

    5 मिनट में अपना मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) बनाएं – चरण-दर-चरण गाइड

कर्सर अब हमारे MCP सर्वर और सभी उपलब्ध टूल्स को पहचानता है। हमारे लिए, यह वही translate टूल है जिसे हमने बनाया था।

5 मिनट में अपना मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) बनाएं – चरण-दर-चरण गाइड

इसे आजमाने के लिए, एजेंटिक चैट खोलें। कर्सर अब हमारे टूल के बारे में जानता है और ट्रांसलेशन कार्यों के लिए स्वचालित रूप से इसका उपयोग करेगा।

नोट: इस उदाहरण में, हमारा टूल वास्तव में ट्रांसलेट नहीं कर रहा है, बल्कि ट्रांसलेशन का मॉक कर रहा है। क्लॉड वास्तविक ट्रांसलेशन के साथ प्रतिक्रिया देता है।

5 मिनट में अपना मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) बनाएं – चरण-दर-चरण गाइड

MCP के अन्य उपयोग मामले

यह लेख लिखते समय, मुझे MCP सर्वर बनाने के कुछ विचार आए। इनमें से कुछ को स्टैंडअलोन सर्विस के रूप में मोनेटाइज़ करना भी समझदारी हो सकती है:

  • MCP कोड स्क्रीनशॉट टूल
  • बेस्ट प्रैक्टिसेज, कमजोरियों और बग्स के लिए जेनरेशन चेक करने वाला MCP टूल
  • MCP टेस्ट जेनरेटर

आप शायद अपने खुद के विचार भी ला सकते हैं। आखिरकार, MCP LLMs के लिए APIs बनाने जैसा लगता है।

अपस्टैश (Upstash) MCP

हम अपना ओपन-सोर्स अपस्टैश MCP प्रदान करते हैं जिसका उपयोग नेचुरल लैंग्वेज में अपने अपस्टैश अकाउंट के साथ इंटरैक्ट करने के लिए किया जा सकता है, जैसे:

  • "us-east-1 में एक नया रेडिस डेटाबेस बनाओ"
  • "मेरे डेटाबेस सूचीबद्ध करो"
  • "मेरे users-db में 'user:' से शुरू होने वाली सभी कीज़ दिखाओ"
  • "एक बैकअप बनाओ"
  • "पिछले 7 दिनों के थ्रूपुट स्पाइक्स दिखाओ"

बस निम्न कमांड को कर्सर के Add MCP Server में पेस्ट करें:

npx -y @upstash/mcp-server run <UPSTASH_EMAIL> <UPSTASH_API_KEY>

सेटअप में 60 सेकंड या उससे कम समय लगता है, अधिक जानकारी यहां पढ़ें: https://github.com/upstash/mcp-server

पढ़ने के लिए धन्यवाद! यदि आपके पास कोई फीडबैक है या आप अपस्टैश पर गेस्ट ऑथर बनना चाहते हैं, तो मुझे josh@upstash.com पर लिखें 🙌

  1. क्या जावास्क्रिप्ट ब्लॉक स्कोप सपोर्ट करता है? क्या जावास्क्रिप्ट ब्लॉक स्कोप सपोर्ट करता है?

    जावास्क्रिप्ट केवल उन वेरिएबल्स के लिए ब्लॉक स्कोप सपोर्ट करता है जिन्हें let या const कीवर्ड का उपयोग करके घोषित किया गया था। var का उपयोग करके घोषित वेरिएबल्स फ़ंक्शन स्कोप सपोर्ट करते हैं लेकिन ब्लॉक स्कोप नहीं। जावास्क्रिप्ट में ब्लॉक स्कोप प्रदर्शित करने का कोड निम्नलिखित है - उदाहरण <!DO

  1. पायथन में बाइनरी ट्री के हीप होने की जांच पायथन में बाइनरी ट्री के हीप होने की जांच

    समस्या विवरण एक बाइनरी ट्री दिया गया है, जांचें कि क्या यह हीप है। हीप की शर्तें: कंप्लीट बाइनरी ट्री (अंतिम लेवल को छोड़कर सभी भरे हों) मैक्स-हीप प्रॉपर्टी: प्रत्येक नोड का मान अपने बच्चों से ≥ हो उदाहरण ट्री (रूट=99, बच्चे 46,39, आदि) — आउटपुट: True एल्गोरिदम number_of_nodes(root): कुल नोड्स

  1. Android में ConcurrentLinkedQueue में peek() का उपयोग कैसे करें? Android में ConcurrentLinkedQueue में peek() का उपयोग कैसे करें?

    ConcurrentLinkedQueue क्या है? ConcurrentLinkedQueue एक अनबाउंडेड थ्रेड-सेफ कतार है जो लिंक्ड नोड्स पर आधारित है। यह FIFO क्रम का पालन करती है और नल मानों की अनुमति नहीं देती। उदाहरण: peek() मेथड का उपयोग यह उदाहरण दर्शाता है कि Android में ConcurrentLinkedQueue के peek() मेथड का उपयोग कैसे करें।