Skip to content

[Bug/Docs][Skills] SseConnectionParams triggers 405 Method Not Allowed on Google-Managed MCP endpoints (e.g. GCS Remote MCP); StreamableHTTPConnectionParams is completely undocumented #56

Description

@carlosmscabral

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

  1. 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"
    )
)
  1. Deploy the agent onto Vertex AI Agent Runtime.
  2. Establish an interactive session and prompt the agent to perform any GCS tool action (e.g., "what storage buckets do I have access to?").
  3. Inspect the resulting execution traces in the Vertex AI Reasoning Engine logs.

What did you expect to happen?

  1. The agent should establish a successful connection, fetch the GCS tool schema, and present the tools to the LLM.
  2. 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

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions