import asyncio
from dedalus_labs import AsyncDedalus, DedalusRunner
from dotenv import load_dotenv
load_dotenv()
def as_bullets(items: list[str]) -> str:
"""Format items as a bulleted list."""
return "\n".join(f"• {item}" for item in items)
async def main():
client = AsyncDedalus()
runner = DedalusRunner(client)
result = await runner.run(
input=(
"Get the 7-day weather forecast for San Francisco "
"and format the daily conditions as bullets using as_bullets."
),
model="anthropic/claude-opus-4-5",
mcp_servers=["windsornguyen/open-meteo-mcp"],
tools=[as_bullets],
)
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())