Skip to main content
Shows that get_tools() composes cleanly across providers: no name collisions, each source stays in its own namespace. Also shows the lifecycle story: only the web provider needs asetup/aclose (its MCP session), and the caller brackets just that one.
multi_provider.py

Run the Example

1

Set up your virtual environment

2

Install dependencies

3

Export your API keys

4

Run the example

Clone Agno and run the example from the repository root:
Full source: cookbook/12_context/08_multi_provider.py