- Using multiple
MCPTools
instances - Using a single
MultiMCPTools
instance
Using multiple MCPTools
instances
multiple_mcp_servers.py
Copy
Ask AI
import asyncio
import os
from agno.agent import Agent
from agno.tools.mcp import MCPTools
async def run_agent(message: str) -> None:
"""Run the Airbnb and Google Maps agent with the given message."""
env = {
**os.environ,
"GOOGLE_MAPS_API_KEY": os.getenv("GOOGLE_MAPS_API_KEY"),
}
# Initialize and connect to multiple MCP servers
airbnb_tools = MCPTools(command="npx -y @openbnb/mcp-server-airbnb --ignore-robots-txt")
google_maps_tools = MCPTools(command="npx -y @modelcontextprotocol/server-google-maps", env=env)
await airbnb_tools.connect()
await google_maps_tools.connect()
try:
agent = Agent(
tools=[airbnb_tools, google_maps_tools],
markdown=True,
)
await agent.aprint_response(message, stream=True)
finally:
await airbnb_tools.close()
await google_maps_tools.close()
# Example usage
if __name__ == "__main__":
# Pull request example
asyncio.run(
run_agent(
"What listings are available in Cape Town for 2 people for 3 nights from 1 to 4 August 2025?"
)
)
Using a single MultiMCPTools
instance
multiple_mcp_servers.py
Copy
Ask AI
import asyncio
import os
from agno.agent import Agent
from agno.tools.mcp import MultiMCPTools
async def run_agent(message: str) -> None:
"""Run the Airbnb and Google Maps agent with the given message."""
env = {
**os.environ,
"GOOGLE_MAPS_API_KEY": os.getenv("GOOGLE_MAPS_API_KEY"),
}
# Initialize and connect to multiple MCP servers
mcp_tools = MultiMCPTools(
commands=[
"npx -y @openbnb/mcp-server-airbnb --ignore-robots-txt",
"npx -y @modelcontextprotocol/server-google-maps",
],
env=env,
)
await mcp_tools.connect()
try:
agent = Agent(
tools=[mcp_tools],
markdown=True,
)
await agent.aprint_response(message, stream=True)
finally:
# Always close the connection when done
await mcp_tools.close()
# Example usage
if __name__ == "__main__":
# Pull request example
asyncio.run(
run_agent(
"What listings are available in Cape Town for 2 people for 3 nights from 1 to 4 August 2025?"
)
)