MCPTools within AgentOS

Give the Agents, Teams, and Workflows in your AgentOS access to external MCP servers with MCPTools.

The Model Context Protocol (MCP) enables Agents to interact with external systems through a standardized interface.

You can give your Agents access to MCP tools using the MCPTools class. Read more about using MCP tools here.

Your MCPTools work normally within AgentOS. AgentOS connects and disconnects them automatically.

If you are using MCPTools within AgentOS, you should not use reload=True when serving your AgentOS. This can break the MCP connection during the FastAPI lifecycle.

Example

Create and activate a Python environment, then install the runtime and client dependencies:

uv pip install -U "agno[os,mcp,openai]"
export OPENAI_API_KEY="your_openai_api_key"
mcp_tools_example.py
from agno.agent import Agent
from agno.os import AgentOS
from agno.tools.mcp import MCPTools

# Create MCPTools instance
mcp_tools = MCPTools(
    transport="streamable-http",
    url="https://docs.agno.com/mcp"
)

# Create MCP-enabled agent
agent = Agent(
    id="agno-agent",
    name="Agno Agent",
    tools=[mcp_tools],
)

# AgentOS manages MCP lifespan
agent_os = AgentOS(
    description="AgentOS with MCP Tools",
    agents=[agent],
)

app = agent_os.get_app()

if __name__ == "__main__":
    # Don't use reload=True with MCP tools to avoid lifespan issues
    agent_os.serve(app="mcp_tools_example:app")

Refreshing the connection to MCP servers is not automatically handled. Set refresh_connection=True to check the connection on each run, reconnect an unhealthy session, and refresh the available tools. Healthy sessions retain their connection.

See here for a full example.

Save the code as mcp_tools_example.py and run python mcp_tools_example.py.