Skip to main content
Guide2 min read

Google ADK MCP servers: MCPToolset setup (2026)

Google's Agent Development Kit connects to MCP servers through MCPToolset — one class that discovers a server's tools and adapts them into native ADK tools. Setup, transports, and how it survives Cloud Run restarts.

Google's Agent Development Kit (ADK) is the modular framework for building agents with native Gemini and Vertex AI integration, and the way you give those agents real tools is Model Context Protocol. The whole integration lives in one class — McpToolset — which discovers a server's tools and adapts them so an LlmAgent treats them as its own. Here's how it works and the deployment detail most guides skip.

How MCPToolset works

McpToolset is ADK's primary mechanism for pulling in tools from an MCP server. Add an instance to your agent's tools list and it does four things automatically: on initialization it establishes and manages the connection to the server; it queries the server for available tools via the list_tools MCP method; it converts the schema of each discovered tool into an ADK-compatible BaseTool; and when the agent decides to use one, it transparently proxies the call via call_tool, passes the arguments, and returns the server's response. You write none of that — you add the toolset and the tools appear.

from google.adk.agents import LlmAgent
from google.adk.tools.mcp_tool import McpToolset, StdioConnectionParams

agent = LlmAgent(
    model="gemini-2.5-pro",
    name="research_agent",
    tools=[McpToolset(connection_params=StdioConnectionParams(
        command="npx",
        args=["-y", "@modelcontextprotocol/server-filesystem", "/abs/path"],
    ))],
)

Local and remote transports

Recent updates support multiple connection types. A local server runs over stdio as a subprocess, which is the quickest path while you develop. For anything shared, ADK speaks Streamable HTTP — the transport that lets a server run as an independent process handling many client connections over HTTP POST and GET, with optional Server-Sent Events for streaming. Swap StdioConnectionParams for the HTTP variant and point it at a URL; the transports comparison covers when to choose which.

The Cloud Run detail

Here's the part that bites people in production: McpToolset supports object serialization through getstate and setstate, which lets your agent keep its context when deployed to managed environments like Cloud Run or GKE. Without it, an agent that gets rescheduled loses its live toolset connection; with it, the connection state survives the move. If you're targeting serverless or Kubernetes, wire this in from the start rather than discovering it after the first restart drops your tools.

Which servers to start with

Give a research agent Exa or Firecrawl for live grounding; give a data agent BigQuery and Postgres. Because ADK speaks standard MCP, anything in our directory drops in unchanged — curated, categorised and vetted so you're not wiring a random repo into a Vertex AI deployment.

Where to go next

To reach managed Google Cloud resources from the same agent, add the Gemini Enterprise remote MCP server. Compare ADK with other native clients like LangGraph and Pydantic AI, read multi-agent orchestration patterns for the theory, and start from the ML engineer loadout.

Loadout

Build your AI agent loadout

The directory of MCP servers and AI agents that actually work. Pick the right loadout for Slack, Postgres, GitHub, Figma and 20+ integrations — with install commands ready to paste into Claude Desktop, Cursor or your own stack.

© 2026 Loadout. Built on Angular 21 SSR.