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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions