import pytest
from dedalus_mcp import MCPServer, tool
from dedalus_mcp.client import MCPClient
@tool(description="Add")
def add(a: int, b: int) -> int:
return a + b
@pytest.fixture
async def server():
server = MCPServer("test")
server.collect(add)
# Start server in background
task = asyncio.create_task(server.serve())
await asyncio.sleep(0.1) # Let it start
yield server
task.cancel()
@pytest.fixture
async def client(server):
client = await MCPClient.connect("http://127.0.0.1:8000/mcp")
yield client
await client.close()
async def test_call_tool(client):
result = await client.call_tool("add", {"a": 2, "b": 3})
assert result.content[0].text == "5"