Bonus · Live data over MCP
Everything so far runs on a snapshot. The bonus swaps the data source: the same scout from step 1, with a live football server instead of local JSON.
live_football = McpToolset(
connection_params=SseConnectionParams(url="https://livescoremcp.com/sse", timeout=15),
# The server has 16 tools; expose only the ones a scout needs, to keep the prompt small.
tool_filter=["search", "get_team", "get_player", "get_match", "get_standings", "get_head_to_head"],
)
root_agent = build_scout(name="live_scout", tools=[live_football])MCP (Model Context Protocol) is a standard way for a server to offer tools to any agent. ADK fetches the server's tool list and hands the tools to the model like Python functions; tool_filter keeps six of the sixteen. MCP support is the optional google-adk[mcp] extra, already in this repo's dependencies.
I asked: "What were Trabzonspor's last three results, and who scored?"
The scout made four calls to the live server (get_team, then get_match three times) and answered in 18 seconds:
- 26/10/2026 · Süper Lig: Rizespor 3 - 4 Trabzonspor · Our scorers: Melih Kabasakal (49'), Aral Şimşir (51'), Franculino (57', 83')
- 22/10/2026 · UEFA Europa Conference League: Trabzonspor 2 - 0 Heart of Midlothian · Our scorers: Mohamed Salah (32' pen.), Franculino (58')
- 19/10/2026 · Süper Lig: Trabzonspor 2 - 0 Beşiktaş J.K. · Our scorers: Ozan Tufan (21'), Mohamed Salah (71')
Same results as the snapshot, from a different source, with no change to the agent. The server is free but allows 30 requests per minute per IP, and a room on one Wi-Fi shares that limit, so at the workshop only I ran it.