8 पॉइंट द्वारा GN⁺ 2025-03-27 | 4 टिप्पणियां | WhatsApp पर शेयर करें
  • MCP(Model Context Protocol) LLM को tools और context देने का एक standardized तरीका है
  • USB-C port की तरह, यह अलग-अलग data sources या tools को AI models से जोड़ने के लिए एक standard interface की भूमिका निभाता है
  • OpenAI Agents SDK अब MCP को support करता है, इसलिए इसे विभिन्न MCP servers के साथ integrate किया जा सकता है

MCP सर्वर

  • मौजूदा MCP specification, इस्तेमाल किए जाने वाले transport mechanism के आधार पर, दो तरह के servers को define करती है:
    1. stdio server application के subprocess के रूप में चलता है, और इसे "local" में चलने वाला माना जा सकता है.
    2. HTTP over SSE server remote पर चलता है और URL के जरिए connect होता है.
  • MCPServerStdio और MCPServerSse classes का उपयोग करके इन servers से connect किया जा सकता है.
  • उदाहरण के लिए, official MCP filesystem server का उपयोग इस तरह किया जा सकता है:
    async with MCPServerStdio(  
        params={  
            "command": "npx",  
            "args": ["-y", "@modelcontextprotocol/server-filesystem", samples_dir],  
        }  
    ) as server:  
        tools = await server.list_tools()  
    

कैशिंग

  • हर बार agent के चलने पर MCP server का list_tools() call करना latency बढ़ा सकता है, खासकर जब server remote हो.
  • tools list को अपने-आप cache करने के लिए MCPServerStdio और MCPServerSse में cache_tools_list=True पास किया जा सकता है. यह तभी करना चाहिए जब आपको भरोसा हो कि tools list बदलेगी नहीं.
  • cache को invalidate करने के लिए server पर invalidate_tools_cache() call किया जा सकता है.

4 टिप्पणियां

 
GN⁺ 2025-03-27
Hacker News राय
  • आज MCP ने Streamable HTTP जोड़ा है। यह एक बड़ा कदम है क्योंकि अब remote HTTP server से हमेशा जुड़े रहने की ज़रूरत नहीं है

    • लेकिन spec को देखें तो remote HTTP server में LSP-style paradigm लाने से काफ़ी complexity जुड़ रही है
    • पारंपरिक रूप से तरीका यह था कि /get_weather पर { "location": "New York" } को HTTP POST के रूप में भेजा जाए
    • complexity कम करने और पारंपरिक HTTP server पर लौटने का प्रस्ताव दिया गया था। session को Authorization header से negotiate किया जाता है और पारंपरिक endpoint इस्तेमाल होते हैं
    • server बनाना काफ़ी आसान हो जाएगा और web framework को spec के अनुसार update करने की ज़रूरत नहीं पड़ेगी
  • MCP को AI application के USB-C port की तरह सोचने वाली एक उपमा है

    • एक software engineer के तौर पर वह उपमा मददगार नहीं लगती
  • मैं सोच रहा था कि क्या OpenAI इसे आधिकारिक रूप से support करेगा, लेकिन अब जवाब मिल गया है

    • MCP, LLM को external tools से जोड़ने का industry standard बन गया है
  • उम्मीद थी कि OpenAPI को support किया जाएगा। मैंने कुछ MCP server बनाए हैं, लेकिन यह कम flexible और कम documented API जैसा लगता है

    • MCP, OpenAPI से बेहतर कहाँ है यह देखना मुश्किल है। code थोड़ा कम होता है, लेकिन विकल्प बहुत कम हो जाते हैं
    • समय के साथ Swagger built-in हो जाएगा
  • MCP की value क्या है, यह समझना मुश्किल है। modern AI tech की अफरातफरी में यह एक और distraction जैसा लगता है

    • MCP एक open protocol है जो standardize करता है कि application, LLM को context कैसे देती है
    • सवाल यह है कि standardize क्या किया जा रहा है। हम tokenized string पर काम करने वाले text-to-text transformer का उपयोग कर रहे हैं
    • tool/function calling जैसी चीज़ें भी साधारण text के ऊपर बनी चतुर heuristics ही हैं
  • मैंने एक architecture बनाया है जिसमें AI agent local में "tools" का उपयोग कर सकते हैं। यह हर तरह के LLM और LLM server के साथ काम करता है

    • यह middleware की तरह काम करता है और LLM server व chat client के बीच stream के रूप में चलता है
    • यह एक open source project है, लेकिन code में रुचि दिखाने वाला कोई नहीं है इसलिए repo update नहीं हो रहा
  • MCP को वास्तव में कैसे उपयोग किया जाता है, इस पर वीडियो की कमी है। programmer के लिए practical use case कम हैं

  • MCP को AI application के USB-C port की तरह सोचने वाली एक उपमा है

    • USB implementation में बहुत दर्द होता है, ऐसी कई बातें सुनी हैं, इसलिए कोई दूसरी उपमा ढूँढना बेहतर होगा
  • लगता है कि यह MCP के पुराने version HTTP+SSE को target कर रहा है, नया Streaming HTTP version नहीं

    • OAuth 2.1 support, JSON-RPC batching जैसी चीज़ें भी हैं
  • अगर आप MCP को जल्दी से आज़माना चाहते हैं, तो मैंने <a href="https://skeet.build/mcp" rel="nofollow">skeet.build/mcp</a> बनाया है

    • इसे complex MCP setup, support की कमी, और खुद build करने की कठिनाई के कारण बनाया गया
    • मुख्य रूप से इसे नीचे दिए गए workflow के लिए इस्तेमाल किया जाता है
      • PR शुरू होने पर summary लिखना
      • Linear/Jira में summary Slack या comment करना
      • Sentry से issue लाकर fix करना
      • bug मिलने पर Linear issue बनाना
      • Linear issue लाकर पहला pass करना
      • Notion document और PRD लाकर codebase के आधार पर API reference बनाना
      • तेज़ model development के लिए Postgres या MySQL schema
    • फोकस ease of use, practical developer workflow, और high-quality MCP server पर है
 
samchon 2025-03-27

मुझे भी लगता है कि OpenAPI function calling बेहतर नहीं है क्या। इसे MCP protocol के साथ फिर से बनाना भी अपने आप में एक काम है।

 
mangoblue 2025-03-28

क्या यह push और poll के बीच का फर्क नहीं है? हर मॉडल और सेवा के लिए अलग-अलग function calling करने की बजाय, मुझे लगता है कि 3rd party के लिए MCP spec को host करना और agent का उसे poll करके ले जाना ज़्यादा सुविधाजनक है।