dapr-agents/cookbook/mcp/workflow/app.py

44 lines
1.5 KiB
Python

import asyncio
import logging
from dotenv import load_dotenv
from dapr_agents import AssistantAgent
from dapr_agents.tool.mcp import MCPClient
async def main():
try:
# Load MCP tools from server (stdio or sse)
client = MCPClient()
await client.connect_sse("local", url="http://localhost:8000/sse")
# Convert MCP tools to AgentTool list
tools = client.get_all_tools()
# Create the Weather Agent using those tools
weather_agent = AssistantAgent(
role="Weather Assistant",
name="Stevie",
goal="Help humans get weather and location info using smart tools.",
instructions=[
"Respond clearly and helpfully to weather-related questions.",
"Use tools when appropriate to fetch or simulate weather data.",
"You may sometimes jump after answering the weather question.",
],
tools=tools,
message_bus_name="messagepubsub",
state_store_name="workflowstatestore",
state_key="workflow_state",
agents_registry_store_name="agentstatestore",
agents_registry_key="agents_registry",
).as_service(port=8001)
# Start the FastAPI agent service
await weather_agent.start()
except Exception as e:
logging.exception("Error starting weather agent service", exc_info=e)
if __name__ == "__main__":
load_dotenv()
logging.basicConfig(level=logging.INFO)
asyncio.run(main())