मुख्य सामग्री पर जाएं
MCPClient किसी भी MCP सर्वर के साथ इंटरैक्ट करने के लिए एक async Python Client है। यह MCP हैंडशेक (initialize), ट्रांसपोर्ट सेटअप और सेशन प्रबंधन संभालता है—ताकि आप जिन ऑपरेशनों को चलाना चाहते हैं, उन पर फोकस कर सकें। MCPClient का उपयोग तब करें जब आप स्पष्ट, पूर्वानुमानित नियंत्रण चाहते हैं, जैसे:
  • डेवलपमेंट के दौरान MCP सर्वर का परीक्षण करना
  • ऐसी एप्लिकेशन बनाना जिन्हें विश्वसनीय MCP इंटरैक्शन चाहिए
  • टाइप्ड प्रोटोकॉल लेयर के ऊपर हायर-लेवल Clients (जिनमें एजेंट‑आधारित फ्लो शामिल हैं) बनाना

त्वरित प्रारंभ

कनेक्ट करें → काम करें → कनेक्शन बंद करें।
import asyncio
from dedalus_mcp.client import MCPClient

async def main():
    # `await server.serve()` चलाने पर लोकल डेव डिफ़ॉल्ट
    client = await MCPClient.connect("http://127.0.0.1:8000/mcp")
    try:
        tools = await client.list_tools()
        result = await client.call_tool("add", {"a": 5, "b": 3})
        print(result)
    finally:
        await client.close()

asyncio.run(main())
यदि आप गारंटीकृत cleanup चाहते हैं, तो async with को प्राथमिकता दें:
from dedalus_mcp.client import MCPClient

async with await MCPClient.connect("http://127.0.0.1:8000/mcp") as client:
    tools = await client.list_tools()

Connection

कनेक्ट करें

from dedalus_mcp.client import MCPClient

client = await MCPClient.connect("http://127.0.0.1:8000/mcp")

प्रोटोकॉल जानकारी

कनेक्ट होने के बाद, initialize_result भर दिया जाता है:
print(f"Server: {client.initialize_result.serverInfo.name}")
print(f"Protocol: {client.initialize_result.protocolVersion}")
print(f"Session: {client.session_id}")

कनेक्शन बंद करना

await client.close()

वैकल्पिक तरीका: open_connection(...)

open_connection(...) एक सुविधाजनक रैपर है जो एक कनेक्टेड MCPClient उपलब्ध कराता है और अपने‑आप क्लीन‑अप कर देता है:
from dedalus_mcp.client import open_connection

async with open_connection("http://127.0.0.1:8000/mcp") as client:
    tools = await client.list_tools()

पिंग

await client.ping()

ऑपरेशंस

अधिकांश Client कोड निम्न में से किसी एक श्रेणी में आता है:

Client क्षमताएँ (server → client)

कुछ मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) सुविधाएँ सर्वर द्वारा आरंभ की जाती हैं। यदि आप इन्हें सपोर्ट करना चाहते हैं, तो कनेक्ट करते समय इनके लिए हैंडलर कॉन्फ़िगर करते हैं।

प्रमाणीकरण

सुरक्षित MCP सर्वरों के लिए:

DPoP प्रमाणीकरण

DPoP (RFC 9449) प्रेषक-सीमित (sender-constrained) टोकन का उपयोग करने वाले सर्वरों के लिए:
from dedalus_mcp.auth.dpop import generate_dpop_keypair
from dedalus_mcp.client import DPoPAuth, MCPClient

dpop_key, _ = generate_dpop_keypair()
auth = DPoPAuth(access_token="eyJ...", dpop_key=dpop_key)

# लोकल डेव:
client = await MCPClient.connect("http://127.0.0.1:8000/mcp", auth=auth)

# प्रोडक्शन:
# client = await MCPClient.connect("<your MCP endpoint URL>", auth=auth)