Skip to content

Conversation

@domdomegg
Copy link
Member

SSE transport has been removed from the MCP specification in favor of streamable HTTP. This removes all SSE-specific transport code.

Changes

  • Remove transport-sse-client and transport-sse-server features
  • Remove SseClientTransport and SseServer types
  • Remove SSE-specific examples (counter_sse, counter_sse_directly)
  • Migrate auth examples from SSE to streamable HTTP
  • Update tests to remove SSE transport usage
  • Update documentation

Breaking changes

The following have been removed:

  • transport-sse-client feature
  • transport-sse-client-reqwest feature
  • transport-sse-server feature
  • SseClientTransport type
  • SseServer type
  • sse_client and sse_server modules

Users should migrate to streamable HTTP transport. See StreamableHttpClientTransport and StreamableHttpService for the replacement APIs.

Ref: #561 (comment)

@github-actions github-actions bot added T-documentation Documentation improvements T-dependencies Dependencies related changes T-test Testing related changes T-config Configuration file changes T-core Core library changes T-examples Example code changes T-transport Transport layer changes labels Nov 25, 2025
SSE transport has been removed from the MCP specification in favor of
streamable HTTP. This removes all SSE-specific transport code:

- Remove `transport-sse-client` and `transport-sse-server` features
- Remove `SseClientTransport` and `SseServer` types
- Remove SSE-specific examples (`counter_sse`, `counter_sse_directly`)
- Migrate auth examples from SSE to streamable HTTP
- Update tests to remove SSE transport usage
- Update documentation

BREAKING CHANGE: The following have been removed:
- `transport-sse-client` feature
- `transport-sse-client-reqwest` feature
- `transport-sse-server` feature
- `SseClientTransport` type
- `SseServer` type
- `sse_client` and `sse_server` modules

Users should migrate to streamable HTTP transport which provides
equivalent functionality. See `StreamableHttpClientTransport` and
`StreamableHttpService` for the replacement APIs.

Ref: #561 (comment)
@domdomegg domdomegg force-pushed the adamj/remove-sse-transport branch from dc6cada to ba3d8ef Compare November 25, 2025 20:07
@jokemanfire
Copy link
Collaborator

I think removing SSE now is too early for SDK.

@seuros
Copy link

seuros commented Nov 27, 2025

SSE is super unstable ... There is no reason to promote it .

It not a bug, it just the wrong architecture.

SSE needs sticky sessions and it very hostile load balancers. HTTP streamable is preferred way to connect remotely.

@jokemanfire
Copy link
Collaborator

SSE is super unstable ... There is no reason to promote it .

It not a bug, it just the wrong architecture.

SSE needs sticky sessions and it very hostile load balancers. HTTP streamable is preferred way to connect remotely.

This is not promoting it, but rather it existed in spec 2024-11-05 before, and we cannot start deleting it directly. Marking it as obsolete and deleting it in a later version would be more suitable for code evolution. As an SDK, we are not following the upper application layer, but rather adopting a gradual strategy based on specifications, especially for features that need to be abandoned.

@seuros
Copy link

seuros commented Nov 28, 2025

This is an SDK not a consumer API.

You can drop and refactor as much you need to make the SDK cleaner and more secure. It won't force auto update on people repos.

This is a Rust context, that means if someone upgrade blindly, the compiler will not warn, it will refuse to obey. There is no (I shipped it, production blew because protocol was removed... javascript/ruby/python style)

They have 2 options:

  • Use new spec (will take them 2 minutes)
  • Pin old version of the SDK forever.

Your thinking is not wrong, but this SDK case is an exception. The SSE spec was rushed and was afterthought, it never worked more than few minutes.

The STDIO in 2024 is still used in few abandoned repos, but SSE had no production implementation , zero serious user base.

IDEs implemented remote MCP after HTTP streamable got released, and Claude code and other are supporting spec of June 2025+.

I will stand corrected if you show me 1 single serious app that still depends on 2024 SSE.


The work is already done by @domdomegg. We just have to merge it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

T-config Configuration file changes T-core Core library changes T-dependencies Dependencies related changes T-documentation Documentation improvements T-examples Example code changes T-test Testing related changes T-transport Transport layer changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants