Tuesday, April 22, 2025

कस्टम मॉडल संदर्भ प्रोटोकॉल (MCP) सर्वर और FASTMCP के साथ क्लाइंट टूल को परिभाषित करने के लिए एक चरण-दर-चरण कोडिंग गाइड और उन्हें Google GENINI 2.0 के फ़ंक्शन में एकीकृत करने के लिए वर्कफ़्लो को एकीकृत करना – Gadgets Solutions

-

इस COLAB ‘तैयार ट्यूटोरियल में, हम प्रदर्शित करते हैं कि FASTMCP का उपयोग करके Google के मिथुन 2.0 जनरेटिव AI को in प्रोसेस मॉडल संदर्भ प्रोटोकॉल (MCP) सर्वर के साथ कैसे एकीकृत किया जाए। अपने GENINI_API_KEY को सुरक्षित रूप से कैप्चर करने के लिए एक इंटरैक्टिव getPass प्रॉम्प्ट के साथ शुरू करने के लिए, हम सभी आवश्यक निर्भरता को स्थापित और कॉन्फ़िगर करते हैं: Google – genai पायथन क्लाइंट को मिथुन एपीआई को कॉल करने के लिए, FASTMCP को अपने MCP टूल्स को परिभाषित करने और होस्ट करने के लिए factmcp, httpx के लिए HTTP अनुरोध करने के लिए पहले से ही APIONCIOS और Nest_asyn कुंडली। वर्कफ़्लो दो टूल के साथ एक न्यूनतम FASTMCP “वेदर” सर्वर को कताई करके आगे बढ़ता है, राज्य के मौसम के अलर्ट के लिए तीन – दिन के पूर्वानुमान और Get_alerts (राज्य) के लिए Get_weather (अक्षांश, देशांतर), फिर उस सर्वर से MCP क्लाइंट को जोड़ने के लिए एक FASTMCPTransport बनाता है। अंत में, मिथुन फ़ंक्शन and कहा जाने वाली सुविधा का उपयोग करते हुए, हम मिथुन को एक प्राकृतिक inganguage प्रॉम्प्ट भेजते हैं, क्या यह हमारे स्पष्ट JSON स्कीमाओं के आधार पर एक फ़ंक्शन कॉल का उत्सर्जन करता है, और फिर उस कॉल को MCP क्लाइंट के माध्यम से निष्पादित करता है, जो हमारे नोटबुक में संरचित मौसम डेटा को वापस करता है।

from getpass import getpass
import os


api_key = getpass("Enter your GEMINI_API_KEY: ")
os.environ("GEMINI_API_KEY") = api_key

हम सुरक्षित रूप से आपको अपनी मिथुन एपीआई कुंजी (स्क्रीन पर प्रदर्शित किए बिना) में प्रवेश करने के लिए प्रेरित करते हैं और फिर इसे मिथुन_एपीआई_की वातावरण चर में संग्रहीत करते हैं, जिससे आपकी बाकी नोटबुक Google के एपीआई के साथ प्रमाणित करने की अनुमति देती है।

!pip install -q google-genai mcp fastmcp httpx nest_asyncio

हम अपने COLAB नोटबुक के लिए आवश्यक सभी मुख्य निर्भरता को एक गो में स्थापित करते हैं – Google – genai हमारे मॉडल संदर्भ प्रोटोकॉल सर्वर और क्लाइंट के निर्माण और होस्ट करने के लिए मिथुन एपीआई, MCP और FASTMCP के साथ बातचीत करने के लिए, HTTPX को बाहरी API के लिए HTTP अनुरोध करने के लिए, और नेस्ट_सिंकियो को इवेंट लूप को पैच करने के लिए SHONDING SHONDING SHONDING SHONDING SHORDING SHOUNDINS

हम नोटबुक के मौजूदा इवेंट लूप पर NEST_ASYNCIO पैच लागू करते हैं, जिससे हमें “इवेंट लूप पहले से ही चल रहे” त्रुटियों का सामना किए बिना Asyncio coroutines (जैसे हमारे MCP क्लाइंट इंटरैक्शन की तरह) चलाने की अनुमति मिलती है।

from fastmcp import FastMCP
import httpx


mcp_server = FastMCP("weather")


@mcp_server.tool()
def get_weather(latitude: float, longitude: float) -> str:
    """3‑day min/max temperature forecast via Open‑Meteo."""
    url = (
        f"https://api.open-meteo.com/v1/forecast"
        f"?latitude={latitude}&longitude={longitude}"
        "&daily=temperature_2m_min,temperature_2m_max&timezone=UTC"
    )
    resp = httpx.get(url, timeout=10)
    daily = resp.json()("daily")
    return "\n".join(
        f"{date}: low {mn}°C, high {mx}°C"
        for date, mn, mx in zip(
            daily("time"),
            daily("temperature_2m_min"),
            daily("temperature_2m_max"),
        )
    )


@mcp_server.tool()
def get_alerts(state: str) -> str:
    """Dummy US‑state alerts."""
    return f"No active weather alerts for {state.upper()}."

हम “मौसम” नाम के एक in प्रोसेस FASTMCP सर्वर का निर्माण करते हैं और दो उपकरण पंजीकृत करते हैं: get_weather (अक्षांश, देशांतर), जो HTTPX का उपयोग करके खुले ‘मेटो एपीआई से 3 – दिन के तापमान के पूर्वानुमान को प्राप्त करता है और प्रारूपित करता है, और get_alerts (राज्य), जो यूएस स्टेट वेदर अलर्ट के लिए एक प्लेसहोल्डर संदेश देता है।

import asyncio
from google import genai
from google.genai import types
from fastmcp import Client as MCPClient
from fastmcp.client.transports import FastMCPTransport

हम अपने MCP – Gemini एकीकरण के लिए मुख्य पुस्तकालयों का आयात करते हैं: Asyncio को अतुल्यकालिक कोड, Google, genai और इसके प्रकार के मॉड्यूल को मिथुन को कॉल करने और फ़ंक्शन को परिभाषित करने के लिए मॉड्यूल, और FASTMCP के क्लाइंट (MCPClient के रूप में उपनाम) को अपने FASTMCPTransport के साथ MCP क्लाइंट को कनेक्ट करने के लिए MCP क्लाइंट को जोड़ने के लिए।

client = genai.Client(api_key=os.getenv("GEMINI_API_KEY"))
MODEL = "gemini-2.0-flash"
transport = FastMCPTransport(mcp_server)

हम अपने वातावरण से GENINI_API_KEY का उपयोग करके Google GEMINI क्लाइंट को इनिशियलाइज़ करते हैं, फ़ंक्शन के लिए GENINI-2.0-Flash मॉडल को निर्दिष्ट करते हैं, और एक FastMcPtransport सेट करते हैं जो MCP क्लाइंट से mc प्रोसेस MCP_SERVER को जोड़ता है।

function_declarations = (
    {
        "name": "get_weather",
        "description": "Return a 3‑day min/max temperature forecast for given coordinates.",
        "parameters": {
            "type": "object",
            "properties": {
                "latitude": {
                    "type": "number",
                    "description": "Latitude of target location."
                },
                "longitude": {
                    "type": "number",
                    "description": "Longitude of target location."
                }
            },
            "required": ("latitude", "longitude")
        }
    },
    {
        "name": "get_alerts",
        "description": "Return any active weather alerts for a given U.S. state.",
        "parameters": {
            "type": "object",
            "properties": {
                "state": {
                    "type": "string",
                    "description": "Two‑letter U.S. state code, e.g. 'CA'."
                }
            },
            "required": ("state")
        }
    }
)


tool_defs = types.Tool(function_declarations=function_declarations)

हम अपने दो MCP टूल्स, get_weather (जो कि अक्षांश और देशांतर को संख्यात्मक इनपुट के रूप में स्वीकार करते हैं) और Get_alerts (जो एक अमेरिकी राज्य कोड को स्ट्रिंग के रूप में स्वीकार करता है), नाम, विवरण, आवश्यक गुण और डेटा प्रकारों के लिए JSON स्कीमा विनिर्देशों को मैन्युअल रूप से परिभाषित करता है। यह तब इन घोषणाओं को प्रकारों में लपेटता है। टूल ऑब्जेक्ट (Tool_defs), जो मिथुन को सूचित करता है कि इसी फ़ंक्शन कॉल को कैसे उत्पन्न और मान्य करना है।

async def run_gemini(lat: float, lon: float):
    async with MCPClient(transport) as mcp_client:
        prompt = f"Give me a 3‑day weather forecast for latitude={lat}, longitude={lon}."
        response = client.models.generate_content(
            model=MODEL,
            contents=(prompt),
            config=types.GenerateContentConfig(
                temperature=0,
                tools=(tool_defs)
            )
        )


        call = response.candidates(0).content.parts(0).function_call
        if not call:
            print("No function call; GPT said:", response.text)
            return


        print("🔧 Gemini wants:", call.name, call.args)


        result = await mcp_client.call_tool(call.name, call.args)
        print("\n📋 Tool result:\n", result)


asyncio.get_event_loop().run_until_complete(run_gemini(37.7749, -122.4194))

अंत में, यह Async फ़ंक्शन Run_Gemini हमारे in प्रोसेस ट्रांसपोर्ट पर हमारे ऊपर एक MCP क्लाइंट सत्र खोलता है, GEMINI को एक प्राकृतिक ing language प्रॉम्प्ट भेजता है, दिए गए निर्देशांक में 3‑ दिन के पूर्वानुमान के लिए पूछता है, परिणामस्वरूप फ़ंक्शन कॉल को कैप्चर करता है (यदि कोई हो), तो संगत MCP टूल को आमंत्रित करता है, और स्ट्रक्ड वेदर डेटा को प्रिंट करता है, जो कि इवेंट को बंद कर देता है।

अंत में, हमारे पास एक पूरी तरह से निहित पाइपलाइन है जो दिखाती है कि पायथन में कस्टम एमसीपी टूल को कैसे परिभाषित किया जाए, उन्हें FASTMCP के माध्यम से उजागर किया जाए, और Google – Genai क्लाइंट का उपयोग करके Google के GEMINI 2.0 मॉडल के साथ उन्हें मूल रूप से एकीकृत किया जाए। प्रमुख रूपरेखा, MCP होस्टिंग के लिए FASTMCP, परिवहन और आह्वान के लिए FASTMCPtransport और MCPClient, बाहरी API एक्सेस के लिए HTTPX, और Colab संगतता के लिए NEST_ASYNCIO, बाहरी प्रक्रियाओं या STDIO पाइपों के बिना वास्तविक – समय फ़ंक्शन कॉलिंग को सक्षम करने के लिए एक साथ काम करें। यह पैटर्न COLAB में MCP एकीकरण के स्थानीय विकास और परीक्षण को सरल करता है और अधिक उन्नत एजेंट अनुप्रयोगों के निर्माण के लिए एक टेम्पलेट प्रदान करता है जो विशेष डोमेन टूल के साथ LLM तर्क को जोड़ते हैं।


यह रहा कोलैब नोटबुक। इसके अलावा, हमें फॉलो करना न भूलें ट्विटर और हमारे साथ जुड़ें तार -चैनल और लिंक्डइन जीआरओयूपी। हमारे साथ जुड़ने के लिए मत भूलना 90K+ एमएल सबरेडिट

🔥


कस्टम मॉडल संदर्भ प्रोटोकॉल (MCP) सर्वर और FASTMCP के साथ क्लाइंट टूल को परिभाषित करने के लिए एक चरण-दर-चरण कोडिंग गाइड और उन्हें Google GENINI 2.0 के फ़ंक्शन में एकीकृत करने के लिए वर्कफ़्लो को एकीकृत करना
 – Gadgets Solutions

Asif Razzaq MarkTechPost Media Inc के सीईओ हैं .. एक दूरदर्शी उद्यमी और इंजीनियर के रूप में, ASIF सामाजिक अच्छे के लिए कृत्रिम बुद्धिमत्ता की क्षमता का उपयोग करने के लिए प्रतिबद्ध है। उनका सबसे हालिया प्रयास एक आर्टिफिशियल इंटेलिजेंस मीडिया प्लेटफॉर्म, मार्कटेकपोस्ट का शुभारंभ है, जो मशीन लर्निंग और डीप लर्निंग न्यूज के अपने गहन कवरेज के लिए खड़ा है, जो तकनीकी रूप से ध्वनि और आसानी से एक व्यापक दर्शकों द्वारा समझ में आता है। मंच 2 मिलियन से अधिक मासिक विचारों का दावा करता है, दर्शकों के बीच अपनी लोकप्रियता को दर्शाता है।

LEAVE A REPLY

Please enter your comment!
Please enter your name here

FOLLOW US

150,000FansLike
35,000FollowersFollow
100,000SubscribersSubscribe

Related Stories

Translate »