Agno talks to Agent Update over MCP. The server is https://api.tryagentupdate.com/v1/mcp, the transport is Streamable HTTP, and the credential is one header.
Setup
# pip install 'agno[mcp]'
import os
from agno.tools.mcp import MCPTools, StreamableHTTPClientParams
server_params = StreamableHTTPClientParams(
url="https://api.tryagentupdate.com/v1/mcp",
headers={"Authorization": f"Bearer {os.environ['AGENT_UPDATE_TOKEN']}"},
)
mcp_tools = MCPTools(transport="streamable-http", server_params=server_params)
await mcp_tools.connect()Before you file a bug
MCPTools.__init__ has no headers parameter at all, so the headers ride on server_params. transport="streamable-http" is required whenever you pass server_params without a url: the transport auto-select is gated on url is not None, so otherwise self.transport stays None, the connect logic falls through to the stdio branch, and it breaks. The two timeout fields on StreamableHTTPClientParams are timedelta objects, not floats. AutoGen's identically named fields are floats, so do not copy values between the two frameworks. For a rotating token, use header_provider= instead of a fixed headers dict.
Check it worked
Ask the agent to text you. A 401 means the token is wrong, or the word Bearer is in there twice. No tool at all means the transport string is wrong. Both are covered in troubleshooting.
Next
The five tools and their arguments are on the MCP page. The same tools over plain HTTP are on the REST page. Every other tool is on the docs index.