- 
                Notifications
    You must be signed in to change notification settings 
- Fork 2.7k
Description
Initial Checks
- I confirm that I'm using the latest version of MCP Python SDK
- I confirm that I searched for my issue in https://github.com/modelcontextprotocol/python-sdk/issues before opening this issue
Description
In the MCP specification, the transport name is defined as “Streamable HTTP”.
In the Python SDK server code (e.g., fastmcp/server.py), the string identifier is streamable-http (with a hyphen), which matches many clients.
However, in the simple-auth-client example, the identifier is written as streamable_http (with an underscore). This discrepancy can confuse developers, and some clients (e.g., Continue) only accept the hyphenated form (streamable-http).
Problem
Following the example as-is leads developers to use streamable_http, which does not work with some clients.
Expected behavior
Please align SDK/examples with one clear approach and document it explicitly:
- Option A (accept both): Allow both streamable-httpandstreamable_httpas input (lenient parsing), but documentstreamable-httpas the canonical form.
- Option B (unify on one): Standardize on streamable-httpas the only valid transport string in examples/docs, and raise an error/warning ifstreamable_httpis used.
This would reduce developer confusion and ensure consistency with the spec and major client expectations.
Example Code
Python & MCP Python SDK
**Environment**  
- Python: 3.13 (project requires Python >= 3.13)  
- MCP Python SDK:  
  - fastmcp 2.10.1  
  - mcp 1.10.1