-
Notifications
You must be signed in to change notification settings - Fork 2.6k
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-http
andstreamable_http
as input (lenient parsing), but documentstreamable-http
as the canonical form. - Option B (unify on one): Standardize on
streamable-http
as the only valid transport string in examples/docs, and raise an error/warning ifstreamable_http
is 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