मुख्य सामग्री पर जाएं
from dedalus_mcp import MCPServer, tool

@tool(description="दो संख्याएँ जोड़ें")
def add(a: int, b: int) -> int:
    return a + b

server = MCPServer("calculator")
server.collect(add)

if __name__ == "__main__":
    import asyncio
    asyncio.run(server.serve())
टाइप हिंट अपने‑आप JSON Schema में बदल जाते हैं। collect() के साथ टूल्स को रजिस्टर करें। यही पैटर्न resources और prompts के लिए भी काम करता है।
सर्वर का नाम आपके slug से मेल खाना चाहिए। MCPServer("my-server") में दिया गया name आपके deployment slug और ctx.dispatch() कॉल्स से मेल खाना चाहिए। इससे OAuth callbacks और request routing के सही तरीके से काम करने की गारंटी मिलती है।

Dedalus SDK के साथ

मॉडल कॉन्टेक्स्ट प्रोटोकॉल (MCP) इंटीग्रेशन बहुत आसान है। सर्वरों को सीधे mcp_servers को पास करें:
from dedalus_labs import AsyncDedalus, DedalusRunner

client = AsyncDedalus()
runner = DedalusRunner(client)

# होस्ट किया गया MCP सर्वर (मार्केटप्लेस स्लग)
response = await runner.run(
    input="Search for authentication docs",
    model="anthropic/claude-sonnet-4-20250514",
    mcp_servers=["your-org/your-server"],
)

# Local MCP server URL
response = await runner.run(
    input="Search for authentication docs",
    model="anthropic/claude-sonnet-4-20250514",
    mcp_servers=["http://localhost:8000/mcp"],
)
बस इतना ही। SDK (सॉफ्टवेयर डेवलपमेंट किट) कनेक्शन, tool खोज और निष्पादन अपने‑आप संभालता है।

सर्वर प्रिमिटिव्स

MCP सर्वर तीन प्रकार की क्षमताएँ एक्सपोज़ करते हैं:
प्रिमिटिवनियंत्रणविवरण
टूल्समॉडलवे फ़ंक्शन जिन्हें LLM तर्क‑प्रक्रिया के दौरान कॉल करता है।
Resourcesमॉडल/उपयोगकर्ताडेटा जिसे LLM संदर्भ के लिए पढ़ सकता है।
Promptsउपयोगकर्तासंदेश टेम्पलेट जिन्हें उपयोगकर्ता चुनते और रेंडर करते हैं।
टूल्स मॉडल‑नियंत्रित होते हैं: LLM तय करता है कि इन्हें कब कॉल करना है। Prompts उपयोगकर्ता‑नियंत्रित होते हैं: उपयोगकर्ता चुनते हैं कि कौन‑सा prompt चलाना है। Resources दोनों में से किसी के भी नियंत्रण में हो सकते हैं।

अतिरिक्त क्षमताएँ

क्षमताकैसे
Progressलंबे समय तक चलने वाले कार्यों के लिए ctx.progress() का उपयोग
Loggingctx.info(), ctx.debug(), आदि
Cancellationctx.cancelled फ़्लैग