Tuesday, April 15, 2025

एक मॉडल संदर्भ प्रोटोकॉल (MCP) सर्वर के निर्माण के लिए कोड कार्यान्वयन और इसे क्लाउड डेस्कटॉप के साथ जोड़ना – Gadgets Solutions

-

इस हैंड्स-ऑन ट्यूटोरियल में, हम एक MCP (मॉडल संदर्भ प्रोटोकॉल) सर्वर का निर्माण करेंगे, जो क्लाउड डेस्कटॉप को स्टॉक न्यूज की भावना और दैनिक शीर्ष लाभकर्ताओं और मूवर्स को अल्फाफैंट एपीआई के माध्यम से लाने की अनुमति देता है। चूंकि अधिकांश LLM सीधे वास्तविक समय के वित्तीय डेटा तक नहीं पहुंच सकते हैं, इसलिए यह समाधान वास्तविक समय की अंतर्दृष्टि प्रदान करने के लिए MCP का उपयोग करता है।

हम अपने सर्वर से दो उपकरणों को उजागर करेंगे:

  • get_news_sentiment
  • get_top_movers

चलो प्रत्येक चरण के माध्यम से चलते हैं।

चरण 1: पर्यावरण स्थापित करना

हम पहले अपना पर्यावरण स्थापित करेंगे और यूवी पैकेज मैनेजर स्थापित करने के साथ शुरू करेंगे। मैक या लिनक्स के लिए:

curl -LsSf https://astral.sh/uv/install.sh | sh  

विंडोज के लिए (PowerShell):

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

हम तब एक नई परियोजना निर्देशिका बनाएंगे और इसे यूवी के साथ आरंभ करेंगे

uv init stockNews
cd stockNews

अब हम एक आभासी वातावरण बना सकते हैं और सक्रिय कर सकते हैं। मैक या लिनक्स के लिए:

uv venv
source .venv/bin/activate

विंडोज के लिए:

uv venv
.venv\Scripts\activate

अब हम आवश्यक निर्भरताएं स्थापित करेंगे

uv add mcp httpx python-dotenv 

चरण 3: पर्यावरण चर स्थापित करना

अब हम एक .ENV फ़ाइल बनाएंगे जिसमें Alphavantage के लिए API कुंजी है। एक मुफ्त एपीआई कुंजी उत्पन्न करने के लिए:

अब, एक .ENV फ़ाइल बनाएं और निम्न पंक्ति जोड़ें:

ALPHA_VANTAGE_API_KEY = your_api_key

चरण 4: MCP सर्वर को लागू करना और अल्फ़ैवमेंट को एकीकृत करना

पहले एक बनाएँ stoctnews.py हमारे द्वारा बनाए गए निर्देशिका में फ़ाइल और निम्न कोड स्निपेट जोड़ें:

पैकेज आयात करना और उदाहरण सेट करना:

हम पहले आवश्यक पैकेज आयात करेंगे और एपीआई का उपयोग करने के लिए उदाहरण स्थापित करेंगे

from typing import Any
import os
import httpx
from mcp.server.fastmcp import FastMCP
from dotenv import load_dotenv


# Load .env variables
load_dotenv()
API_KEY = os.getenv("ALPHA_VANTAGE_API_KEY")

# Initialize FastMCP server
mcp = FastMCP("alpha-finance")

# Constants
BASE_URL = "https://www.alphavantage.co/query"

सहायक कार्य

अगला, आइए अल्फाएफ़ से डेटा को क्वेरी करने के लिए हमारे सहायक कार्यों को जोड़ें।

async def call_alpha_vantage(endpoint: str, params: dict(str, Any)) -> dict(str, Any) | None:
    """Generic async caller to Alpha Vantage."""
    params("apikey") = API_KEY
    params("function") = endpoint
    async with httpx.AsyncClient() as client:
        try:
            response = await client.get(BASE_URL, params=params, timeout=30.0)
            response.raise_for_status()
            return response.json()
        except Exception:
            return None

उपकरण निष्पादन को लागू करना

उपकरण निष्पादन हैंडलर प्रत्येक उपकरण के तर्क को निष्पादित करने के लिए जिम्मेदार है।

@mcp.tool()
async def get_news_sentiment(ticker: str) -> str:
    """Get news sentiment data for a stock ticker.

    Args:
        ticker: Stock ticker symbol (e.g., MSFT, AAPL)
    """
    data = await call_alpha_vantage("NEWS_SENTIMENT", {"tickers": ticker.upper()})
    if not data or "feed" not in data:
        return "Couldn't retrieve news sentiment."

    articles = data("feed")(:3)
    result = ()
    for item in articles:
        result.append(f"""
📰 {item('title')}
Summary: {item('summary')}
Source: {item('source')} | Published: {item('time_published')}
""")
    return "\n---\n".join(result)

@mcp.tool()
async def get_top_movers() -> str:
    """Get top gainers and losers from the stock market.

    No arguments required.
    """
    data = await call_alpha_vantage("TOP_GAINERS_LOSERS", {})
    if not data:
        return "Couldn't retrieve top movers."

    gainers = data.get("top_gainers", ())(:3)
    losers = data.get("top_losers", ())(:3)

    result = "**Top Gainers**\n"
    result += "\n".join((
        f"{g('ticker')} ({g.get('change_percentage', 'N/A')})"
        for g in gainers
    ))

    result += "\n\n**Top Losers**\n"
    result += "\n".join((
        f"{l('ticker')} ({l.get('change_percentage', 'N/A')})"
        for l in losers
    ))

    return result

सर्वर चलाना

अंत में, चलो सर्वर को आरंभ करें और चलाएं:

if __name__ == "__main__":
    mcp.run(transport="stdio")

अब हम डेस्कटॉप के लिए एक मौजूदा MCP होस्ट, क्लाउड से अपने सर्वर का परीक्षण करेंगे।

चरण 5: सर्वर का परीक्षण

सबसे पहले, सुनिश्चित करें कि आपके पास है डेस्कटॉप के लिए क्लाउड स्थापित। यदि नहीं, तो आधिकारिक स्रोत से नवीनतम संस्करण डाउनलोड और इंस्टॉल करें। यदि आपके पास पहले से ही है, तो सुनिश्चित करें कि यह अद्यतित है।

अगला, आपको अपने MCP सर्वर के साथ कनेक्ट करने के लिए क्लाउड को कॉन्फ़िगर करना होगा। ऐसा करने के लिए, किसी भी पाठ संपादक का उपयोग करके क्लाउड निर्देशिका में स्थित claude_desktop_config.json फ़ाइल खोलें। यदि फ़ाइल मौजूद नहीं है, तो आगे बढ़ें और इसे मैन्युअल रूप से बनाएं।

MacOS/Linux के लिए:

{
    "mcpServers": {
        "stockNews": {
            "command": "uv",
            "args": (
                "--directory",
                "/ABSOLUTE/PATH/TO/PARENT/FOLDER/stockNews",
                "run",
                "stockNews.py"
            )
        }
    }
}

विंडोज के लिए:

{
    "mcpServers": {
        "stockNews": {
            "command": "uv",
            "args": (
                "--directory",
                "C:\\ABSOLUTE\\PATH\\TO\\PARENT\\FOLDER\\stockNews",
                "run",
                "stockNews.py"
            )
        }
    }
}

यह कॉन्फ़िगरेशन देता है डेस्कटॉप के लिए क्लाउड जानते है कि:

  • एक MCP सर्वर है जिसे “StockNews” कहा जाता है।
  • इसे निम्न कमांड का उपयोग करके लॉन्च किया जाना चाहिए:
    uv -directory/निरपेक्ष/पथ/to/parent/folder/stocknews stocknews.py चलाते हैं

एक बार जब आप इसे अपनी कॉन्फ़िगर फ़ाइल में जोड़ देते हैं, फ़ाइल को सहेजें और डेस्कटॉप के लिए क्लाउड को पुनरारंभ करें परिवर्तनों को लागू करने के लिए।

कमांड के साथ परीक्षण करें

पुष्टि करने के लिए डेस्कटॉप के लिए क्लाउड अपने स्टॉकन्यूज़ सर्वर से दो टूल को मान्यता दी है, देखें हथौड़ा क्लाउड इंटरफ़ेस में – यह आइकन टूल एक्सेस को इंगित करता है।

एक मॉडल संदर्भ प्रोटोकॉल (MCP) सर्वर के निर्माण के लिए कोड कार्यान्वयन और इसे क्लाउड डेस्कटॉप के साथ जोड़ना
 – Gadgets Solutions

हैमर आइकन पर क्लिक करने के बाद, आपको सूचीबद्ध दो उपकरण देखना चाहिए:

हम निम्नलिखित संकेतों को चलाकर सर्वर का परीक्षण कर सकते हैं:

  • Apple के लिए समाचार भावना क्या है?
  • शेयर बाजार से शीर्ष लाभ और हारे कौन हैं?

जब आप क्लाउड से एक सवाल पूछते हैं:

  1. ग्राहक आपकी क्वेरी क्लाउड को भेजता है।
  2. क्लाउड उपलब्ध उपकरणों की समीक्षा करता है (जैसे get_news_sentiment या get_top_movers) और यह निर्धारित करता है कि आपके प्रश्न के आधार पर कौन से उपयोग करना है।
  3. चयनित उपकरण को MCP सर्वर के माध्यम से निष्पादित किया जाता है आपने पहले कॉन्फ़िगर किया था।
  4. उपकरण परिणाम लौटाता है वापस क्लाउड के लिए।
  5. क्लाउड उन परिणामों का उपयोग एक प्राकृतिक भाषा प्रतिक्रिया को तैयार करने के लिए करता है।
  6. अंतिम प्रतिक्रिया आपको चैट इंटरफ़ेस में दिखाया गया है।

यह सहज प्रवाह है जो क्लाउड को एक संरचित और नियंत्रित तरीके से वास्तविक समय के डेटा के साथ बातचीत करने की अनुमति देता है।

निष्कर्ष:

हमारा MCP- आधारित स्टॉक इनसाइट्स सर्वर वास्तविक समय वित्तीय डेटा पुनर्प्राप्ति को सक्षम करके क्लाउड डेस्कटॉप की क्षमताओं का विस्तार करता है। एक कस्टम MCP सर्वर के साथ अल्फाएफ़्ट एपीआई को एकीकृत करके, उपयोगकर्ता लाइव समाचार भावना ला सकते हैं और सीधे क्लाउड के माध्यम से शीर्ष बाजार मूवर्स को ट्रैक कर सकते हैं। यह सेटअप उपयोगकर्ताओं को समय पर, एक्शनबल स्टॉक इनसाइट्स के साथ सशक्त बनाता है – सभी एक संवादी इंटरफ़ेस के भीतर – वित्तीय विश्लेषण को अधिक कुशल, प्रासंगिक और इंटरैक्टिव बनाते हैं।


मैं जामिया मिलिया इस्लामिया, नई दिल्ली से एक सिविल इंजीनियरिंग स्नातक (2022) हूं, और मुझे डेटा विज्ञान, विशेष रूप से तंत्रिका नेटवर्क और विभिन्न क्षेत्रों में उनके आवेदन में गहरी रुचि है।

LEAVE A REPLY

Please enter your comment!
Please enter your name here

FOLLOW US

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

Related Stories

Translate »