### Initial Checks - [x] I confirm that I'm using the latest version of MCP Python SDK - [x] I confirm that I searched for my issue in https://github.com/modelcontextprotocol/python-sdk/issues before opening this issue ### Description ### Description When using the `python-sdk` with transport set to `streamable-http`, the connection to a remote MCP server deployed on **Google Cloud Run** does not establish. The API stays in a **pending** state, and no updates are received. However, the same MCP server works fine under the following conditions: * When accessed via **Google Cloud Proxy** * When transport is changed to **SSE** * When using the **JS SDK**, streamable-http transport works without issues This suggests a compatibility or configuration issue specifically between `python-sdk`'s streamable-http transport and direct access to Cloud Run URLs. --- ### Reproduction Steps 1. Deploy an MCP server to Cloud Run using this official guide: [https://cloud.google.com/blog/topics/developers-practitioners/build-and-deploy-a-remote-mcp-server-to-google-cloud-run-in-under-10-minutes](https://cloud.google.com/blog/topics/developers-practitioners/build-and-deploy-a-remote-mcp-server-to-google-cloud-run-in-under-10-minutes) 2. Use: * Transport: `streamable-http` * Endpoint: Public URL of Cloud Run MCP server 3. Attempt to connect using <cloud_run_url>/mcp 4. Observe: API status remains in `pending` and no data is received --- ### Observations * Switching transport to **SSE** resolves the issue. * Using a **Cloud Proxy** to access the MCP server also works with streamable-http. * **JS SDK** does not face this issue under the same deployment conditions. * The Cloud Run URL is publicly accessible and works with other tools. --- ### Environment * SDK: `python-sdk` (v1.9.4) * MCP Server: Deployed on Cloud Run * Python version: \[3.12.11] * OS - Docker image: \[linux/amd64] --- ### Expected Behavior The SDK should establish a connection to the Cloud Run-hosted MCP server and transition the API status from pending to active. --- ### Additional Notes This might point to either: * SDK's HTTP streaming implementation not being fully compatible with Cloud Run’s networking behavior * Some internal headers or keep-alive expectations that differ between SSE and streamable-http Any guidance, workaround, or fix would be appreciated. ### Example Code ```Python from mcp.server.fastmcp import FastMCP # Create server mcp = FastMCP("Echo Server") @mcp.tool() def echo(text: str) -> str: """Echo the input text""" return text def main(): mcp.run(transport="streamable-http", host="0.0.0.0", port=8080) if __name__ == "__main__": main() ``` ### Python & MCP Python SDK ```Text SDK Version: 1.9.4 Python Version: 3.12.11 ```