tl  tr
  Home | Tutorials | Articles | Videos | Products | Tools | Search
Interviews | Open Source | Tag Cloud | Follow Us | Bookmark | Contact   
 Agentic AI > MCP Protocol > ADK Agent with Multiple MCP Servers

ADK Agent with Multiple MCP Servers

Author: Venkata Sudhakar

Real business workflows span multiple systems - an agent might need to query a database, read a file, and send a notification all in one task. Rather than building one monolithic MCP server, the better pattern is to run specialised MCP servers for each domain and connect a single ADK agent to all of them. The agent sees a unified flat list of tools and calls whichever tool is appropriate, regardless of which server provides it.

MCPToolset.from_server() returns a list of tools per server. You combine tools from multiple servers by simply concatenating the lists and passing them all to the agent. Each server has its own exit stack that must be cleaned up separately. In production, this pattern lets different teams own their MCP servers independently while sharing them with a common agent layer.

The below example shows a ShopMax India agent connected to both an inventory MCP server and a notification MCP server, completing a full reorder workflow in one session.


Create a second MCP server for notifications,


Now connect the ADK agent to both servers simultaneously,


It gives the following output,

[NOTIFICATION] REORDER ALERT: 50 units of laptop ordered from ShopMax-Wholesale
[NOTIFICATION] REORDER ALERT: 50 units of tv ordered from ShopMax-Wholesale
[MANAGER ALERT] Reorder complete: laptop restocked to 53, tv restocked to 50.

Daily reorder check complete. 2 items were below threshold:
- Laptop (was 3 units) - reorder of 50 placed, now 53 in stock
- TV (was 0 units) - reorder of 50 placed, now 50 in stock
Manager notified.

Each MCP server has its own independent exit stack - always close them separately in the cleanup phase. This pattern scales well: add a third MCP server for payment processing or logistics tracking without changing the agent instruction or the other servers. Version each MCP server independently so the inventory team can deploy new tools without coordinating with the notification team. Use environment variables to pass server URLs and credentials to each server subprocess rather than hardcoding them.


 
  


  
bl  br