Skip to content

Conversation

@findleyr
Copy link
Contributor

In practice, the streamable client transport was having trouble connecting to various backends, because they are nonconformant in various ways.

While it would be nice if all servers conformed to the spec, in practice there are certain spec violations that are recoverable, and we can and should recover them. Specifically:

Additionally, fix a bug that we weren't parsing Content-Type correctly.

Fixes #521

In practice, the streamable client transport was having trouble
connecting to various backends, because they are nonconformant in
various ways.

While it would be nice if all servers conformed to the spec, in practice
there are certain spec violations that are recoverable, and we can and
should recover them. Specifically:

- tolerate 404 instead of 405 for the hanging GET (modelcontextprotocol#393)
- tolerate (=ignore) spurious response body for notifications and
  responses, since we know none are expected

Additionally:
- fix a bug that we weren't parsing Content-Type correctly.
- update examples/client/listfeatures to accept a streamable endpoint

Fixes modelcontextprotocol#521
@findleyr findleyr merged commit 07f6c49 into modelcontextprotocol:main Sep 24, 2025
5 checks passed
@findleyr findleyr modified the milestone: v0.7.0 Sep 24, 2025
@findleyr findleyr deleted the streamableclient branch September 25, 2025 17:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make StreamableClientTransport less strict by default

3 participants