What happened?
The official ADK Python reference playbooks and guides skills/google-agents-cli-adk-code/references/adk-python.md incorrectly advise developers to use SseConnectionParams for all remote/production MCP servers. Following this documentation to connect to Google-managed remote MCP endpoints—specifically the official Google Cloud Storage
MCP Server (https://storage.googleapis.com/storage/mcp)—triggers a silent connection failure.
Because SseConnectionParams initiates connections using a standard Server-Sent Events (SSE) GET handshake, the Google-managed global server endpoint rejects the request with an HTTP 405 Method Not Allowed (since Google's remote managed endpoints utilize a Streamable HTTP POST
JSON-RPC transport). This prevents tool loading, leaving the agent unable to execute GCS functions.
The codebase natively implements a StreamableHTTPConnectionParams class in google.adk.tools.mcp_tool.mcp_session_manager specifically designed for these POST-based endpoints, but it is completely undocumented across all skills and developer playbooks.
Steps to Reproduce
- Configure an ADK agent with a remote McpToolset pointing to the official GCS MCP server URL using SseConnectionParams:
from google.adk.tools import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import SseConnectionParams
mcp_toolset = McpToolset(
connection_params=SseConnectionParams(
url="https://storage.googleapis.com/storage/mcp"
)
)
- Deploy the agent onto Vertex AI Agent Runtime.
- Establish an interactive session and prompt the agent to perform any GCS tool action (e.g., "what storage buckets do I have access to?").
- Inspect the resulting execution traces in the Vertex AI Reasoning Engine logs.
What did you expect to happen?
- The agent should establish a successful connection, fetch the GCS tool schema, and present the tools to the LLM.
- The ADK Python API guides and developer skills should clearly document StreamableHTTPConnectionParams as the required class for Google-managed remote endpoints (GCS, BigQuery, Pub/Sub, etc.), contrasting it from third-party SSE-based connection classes.
Client information
CLI version: 1.1.0
Command Output / Logs
WARNING:google_adk.google.adk.agents.llm_agent:Failed to get tools from toolset McpToolset: Failed to create MCP session: Failed to create MCP session: Client error '405 Method Not Allowed' for url 'https://storage.googleapis.com/storage/mcp'
WARNING:google_adk.google.adk.tools.mcp_tool.session_context:Error on session runner task: unhandled errors in a TaskGroup (1 sub-exception)
WARNING:google_adk.google.adk.tools.mcp_tool.session_context:Error on session runner task: unhandled errors in a TaskGroup (1 sub-exception)
INFO: 169.254.169.126:40408 - "POST /run_sse HTTP/1.1" 200 OK
Anything else we need to know?
No response
What happened?
The official ADK Python reference playbooks and guides skills/google-agents-cli-adk-code/references/adk-python.md incorrectly advise developers to use SseConnectionParams for all remote/production MCP servers. Following this documentation to connect to Google-managed remote MCP endpoints—specifically the official Google Cloud Storage
MCP Server (https://storage.googleapis.com/storage/mcp)—triggers a silent connection failure.
Because SseConnectionParams initiates connections using a standard Server-Sent Events (SSE) GET handshake, the Google-managed global server endpoint rejects the request with an HTTP 405 Method Not Allowed (since Google's remote managed endpoints utilize a Streamable HTTP POST
JSON-RPC transport). This prevents tool loading, leaving the agent unable to execute GCS functions.
The codebase natively implements a StreamableHTTPConnectionParams class in google.adk.tools.mcp_tool.mcp_session_manager specifically designed for these POST-based endpoints, but it is completely undocumented across all skills and developer playbooks.
Steps to Reproduce
from google.adk.tools import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import SseConnectionParams
What did you expect to happen?
Client information
CLI version: 1.1.0
Command Output / Logs
Anything else we need to know?
No response