Documentation Index
Fetch the complete documentation index at: https://docs.agno.com/llms.txt
Use this file to discover all available pages before exploring further.
The Model Context Protocol (MCP) is an open standard for connecting AI agents to external tools and data sources. Agno provides first-class MCP support.
import asyncio
from agno.agent import Agent
from agno.tools.mcp import MCPTools
async def main():
async with MCPTools("npx -y @modelcontextprotocol/server-filesystem .") as mcp:
agent = Agent(tools=[mcp])
await agent.aprint_response("List all Python files")
asyncio.run(main())
Capabilities
Filesystem Server
Access local files and directories through MCP.
cookbook/91_models/mcp/filesystem.py
import asyncio
from pathlib import Path
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.mcp import MCPTools
async def run_agent(message: str):
async with MCPTools(
f"npx -y @modelcontextprotocol/server-filesystem {Path.cwd()}"
) as mcp_tools:
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
tools=[mcp_tools],
instructions="You are a filesystem assistant.",
markdown=True,
)
await agent.aprint_response(message, stream=True)
asyncio.run(run_agent("What is the license for this project?"))
Brave Search Server
Web search through the Brave Search MCP server.
cookbook/91_models/mcp/brave.py
import asyncio
from agno.agent import Agent
from agno.tools.mcp import MCPTools
async def main():
async with MCPTools(
"npx -y @anthropic-ai/mcp-server-brave-search",
env={"BRAVE_API_KEY": "your-key"},
) as mcp:
agent = Agent(tools=[mcp])
await agent.aprint_response("Search for recent AI news")
asyncio.run(main())
Supabase Server
Database operations through Supabase MCP.
cookbook/91_models/mcp/supabase.py
import asyncio
from agno.agent import Agent
from agno.tools.mcp import MCPTools
async def main():
async with MCPTools(
"npx -y @supabase/mcp-server",
env={
"SUPABASE_URL": "https://your-project.supabase.co",
"SUPABASE_KEY": "your-key",
},
) as mcp:
agent = Agent(tools=[mcp])
await agent.aprint_response("List all tables in the database")
asyncio.run(main())
Qdrant Vector Database
Vector search through Qdrant MCP.
cookbook/91_models/mcp/qdrant.py
import asyncio
from agno.agent import Agent
from agno.tools.mcp import MCPTools
async def main():
async with MCPTools(
"npx -y @qdrant/mcp-server",
env={"QDRANT_URL": "http://localhost:6333"},
) as mcp:
agent = Agent(tools=[mcp])
await agent.aprint_response("Search for documents about machine learning")
asyncio.run(main())
Multiple MCP Servers
Combine multiple MCP servers in one agent.
cookbook/91_models/mcp/multiple_servers.py
import asyncio
from agno.agent import Agent
from agno.tools.mcp import MCPTools
async def main():
async with MCPTools("npx -y @modelcontextprotocol/server-filesystem .") as fs_mcp:
async with MCPTools("npx -y @anthropic-ai/mcp-server-brave-search") as search_mcp:
agent = Agent(tools=[fs_mcp, search_mcp])
await agent.aprint_response(
"Find Python files in this directory and search for their documentation online"
)
asyncio.run(main())
Include or exclude specific tools from an MCP server.
cookbook/91_models/mcp/include_tools.py
import asyncio
from agno.agent import Agent
from agno.tools.mcp import MCPTools
async def main():
async with MCPTools(
"npx -y @modelcontextprotocol/server-filesystem .",
include_tools=["read_file", "list_directory"],
) as mcp:
agent = Agent(tools=[mcp])
await agent.aprint_response("What files are here?")
asyncio.run(main())
Local MCP Server
Build and run your own MCP server.
cookbook/91_models/mcp/local_server/server.py
from mcp.server import Server
from mcp.types import Tool, TextContent
server = Server("my-server")
@server.tool()
async def hello(name: str) -> list[TextContent]:
"""Say hello to someone."""
return [TextContent(type="text", text=f"Hello, {name}!")]
if __name__ == "__main__":
import asyncio
asyncio.run(server.run())
cookbook/91_models/mcp/local_server/client.py
import asyncio
from agno.agent import Agent
from agno.tools.mcp import MCPTools
async def main():
async with MCPTools("python server.py") as mcp:
agent = Agent(tools=[mcp])
await agent.aprint_response("Say hello to the world")
asyncio.run(main())
SSE Transport
Use Server-Sent Events transport for MCP.
cookbook/91_models/mcp/sse_transport/client.py
import asyncio
from agno.agent import Agent
from agno.tools.mcp import MCPTools
async def main():
async with MCPTools(
transport="sse",
url="http://localhost:8000/mcp",
) as mcp:
agent = Agent(tools=[mcp])
await agent.aprint_response("Use the remote tools")
asyncio.run(main())
Pipedream Integrations
Connect to 1000+ APIs through Pipedream MCP servers.
cookbook/91_models/mcp/pipedream_slack.py
import asyncio
from agno.agent import Agent
from agno.tools.mcp import MCPTools
async def main():
async with MCPTools(
"npx -y @anthropic-ai/mcp-server-pipedream",
env={"PIPEDREAM_API_KEY": "your-key"},
) as mcp:
agent = Agent(tools=[mcp])
await agent.aprint_response("Send a message to #general on Slack")
asyncio.run(main())
Run Examples
git clone https://github.com/agno-agi/agno.git
cd agno/cookbook/91_models/mcp
# Filesystem
python filesystem.py
# Multiple servers
python multiple_servers.py
# Custom server
cd local_server && python client.py