
This fix is part of MCP troubleshooting, within The MCP Guide. Still stuck? Request a free MCP readiness review.
The "SSE transport is deprecated" message means a client or SDK is using the old HTTP+SSE transport from the 2024-11-05 MCP spec. It still works in most clients, but it is scheduled for removal. The fastest fix on the client side is to change the server entry from sse to http and point it at the server's Streamable HTTP endpoint (often /mcp instead of /sse). If you own the server, serve Streamable HTTP and keep the SSE endpoints only for clients that cannot upgrade yet.
Checked against: the 2026-07-28 deprecated features registry, Claude Code's MCP docs, VS Code's MCP configuration reference and the TypeScript SDK troubleshooting guide on 2 November 2026 (TypeScript @modelcontextprotocol/server 2.4.0). eSEOspace did not run these steps.
Key Takeaways
- HTTP+SSE has been deprecated since protocol version 2025-03-26 and is formally "Deprecated" in the 2026-07-28 registry.
- Its earliest removal is "three months after SEP-2596 reaches Final," and no features have been removed yet.
- Claude Code says the SSE transport is deprecated, and from v2.1.265 an
httpentry falls back to SSE automatically. - VS Code tries Streamable HTTP first and falls back to SSE.
- The TypeScript SDK v2 moved
SSEServerTransportto the frozen@modelcontextprotocol/server-legacypackage.
What this error means
The first remote MCP transport, defined in the 2024-11-05 spec, used two endpoints: an SSE stream for server messages and a separate POST endpoint for client messages. Streamable HTTP replaced it in 2025-03-26 with a single endpoint. The deprecated features registry lists HTTP+SSE with Streamable HTTP as the migration path. New implementations "SHOULD NOT adopt" a deprecated feature and existing ones "SHOULD migrate." Our SSE vs Streamable HTTP comparison covers the history.
You may meet the deprecation in three forms:
- A warning or doc note in your client when you add a server with
--transport sseor"type": "sse". - A build error such as
Module '"@modelcontextprotocol/server"' has no exported member 'SSEServerTransport'after upgrading the TypeScript SDK. - A vendor email saying its
/sseURL will stop working.
"SSE" in Streamable HTTP is different. A Streamable HTTP server can still reply to a single request with Content-Type: text/event-stream. That is not deprecated.
Quick fix
- Find the server's Streamable HTTP URL in the vendor's docs. It usually ends in
/mcp. - Change your client entry from
ssetohttpand use that URL. - Restart or reconnect the server in your client.
- Confirm the tools load.
- If the vendor only offers SSE, keep the SSE entry for now and ask the vendor for a date.
Fix by client / OS
Claude Code
Claude Code's docs state: "The SSE (Server-Sent Events) transport is deprecated. Use HTTP servers instead, where available." On v2.1.265 or later, add every remote server the same way, and Claude Code switches to SSE only if HTTP is refused:
claude mcp remove <name>
claude mcp add --transport http <name> https://example.com/mcp
On older versions, --transport sse is still the way to reach an SSE-only server. In JSON config, an entry with a url must also have "type": "http" (or "sse" / "ws"), or Claude Code treats it as stdio and skips it.
VS Code
The configuration reference says type can be "http" or "sse", and "VS Code first tries the HTTP Stream transport and falls back to SSE if HTTP is not supported." Set "type": "http" in mcp.json. Note that the workspace-root .mcp.json format supports only stdio and HTTP.
Cursor
Cursor's MCP docs still list SSE as one of three transports alongside stdio and Streamable HTTP. Use the HTTP URL in mcp.json where the vendor offers one.
Gemini CLI
In Gemini CLI's MCP server docs, url is the SSE endpoint and httpUrl is the HTTP streaming endpoint. Move the address from url to httpUrl to use Streamable HTTP. See Gemini CLI MCP errors.
Your TypeScript server
The troubleshooting guide says v2 "no longer ships the server-side SSE transport." If you must keep it, change the import:
import { SSEServerTransport } from '@modelcontextprotocol/server-legacy/sse';
The guide calls that package "frozen" and says to serve new code over Streamable HTTP, which still reaches 2025-era clients.
Your Python server
The Python SDK README says it speaks "every standard transport: stdio, Streamable HTTP, and SSE." Serve streamable_http_app() as your main endpoint.
Where to find the logs
- Claude Code:
/mcpshows status per server;claude --debug-file /tmp/claude-debug.logrecords connection detail. - VS Code: MCP: List Servers > select server > Show Output, per the manage and troubleshoot page.
- Server side: check which path clients hit. Traffic still arriving at
/ssetells you who has not migrated.
If it still fails
- HTTP URL returns 404 or 405. The server may only host SSE. The spec says clients can POST first, then try a GET for an
endpointevent. Keepsseuntil the vendor adds HTTP. - Stream drops with
SSE stream disconnected: TypeError: terminated. The TypeScript guide says SSE responses send a keepalive comment every 15 seconds by default; checkkeepAliveMsand any proxy idle timeout. - After switching, you get version errors. Moving to Streamable HTTP can also move you to the 2026-07-28 revision. See protocol version mismatch.
- Need the legacy flow in detail. Read our legacy HTTP+SSE reference and the MCP error code lookup.
Next step
If you still run an SSE server, list the clients that use it and set a removal date. eSEOspace's MCP readiness audit checks transport, auth and spec version for existing servers.
More in the MCP Guide
Free tools: MCP Error Code Lookup · MCP Config Generator
Latest research: State of MCP: October 2026
Frequently asked questions
Will SSE MCP servers stop working?
Not yet. As of November 2026 the registry shows HTTP+SSE as Deprecated, not Removed, with earliest removal three months after SEP-2596 reaches Final. Actual removal is a Core Maintainer decision.
Is Streamable HTTP the same as SSE?
No. Streamable HTTP uses one endpoint and a POST per message. It may answer a single request with an SSE stream, but that stream belongs to one request, not a shared connection.
Can my server support both?
Yes. The spec suggests hosting the old SSE and POST endpoints alongside the new MCP endpoint while clients migrate.
Does this affect local stdio servers?
No. The deprecation registry lists only the HTTP+SSE transport. The stdio transport, which clients use to launch local servers as processes, is a separate transport and is not on the deprecated list.











