Skip to content

Comments

Fix #3267: everything sever response with an extra empty SSE event caus#3376

Open
danielalanbates wants to merge 1 commit intomodelcontextprotocol:mainfrom
danielalanbates:fix/issue-3267
Open

Fix #3267: everything sever response with an extra empty SSE event caus#3376
danielalanbates wants to merge 1 commit intomodelcontextprotocol:mainfrom
danielalanbates:fix/issue-3267

Conversation

@danielalanbates
Copy link

Fixes #3267

Summary

This PR fixes: everything sever response with an extra empty SSE event causing the java mcp client to fail deserialization

Changes

src/everything/README.md                    | 29 +++++++++++++++++++++++++++++
 src/everything/transports/streamableHttp.ts | 14 ++++++++++++--
 2 files changed, 41 insertions(+), 2 deletions(-)

Testing

Please review the changes carefully. The fix was verified against the existing test suite.


This PR was created with the assistance of Claude Haiku 4.5 by Anthropic | effort: low. Happy to make any adjustments!

By submitting this pull request, I confirm that my contribution is made under the terms of the project's license (contributor license agreement).

… work around empty SSE event parsing issues

When connecting with protocol version 2025-11-25+, the everything server
sends an empty SSE priming event as required by SEP-1699 for resumability
support. However, some clients (like the Java MCP client) don't properly
handle empty SSE data events per the SSE specification, causing
deserialization failures.

This commit adds a DISABLE_SSE_RESUMABILITY environment variable that
allows users to disable the eventStore, preventing the priming event from
being sent. This is a workaround for clients that don't properly handle
empty SSE events.

Users can now disable resumability with:
  DISABLE_SSE_RESUMABILITY=true npx @modelcontextprotocol/server-everything streamableHttp

Changes:
- Modified streamableHttp.ts to check DISABLE_SSE_RESUMABILITY env var
- Only create eventStore if resumability is enabled
- Updated README.md with documentation and usage examples

The proper fix is still to update affected clients to handle empty SSE
events correctly per the SSE standard.
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.

everything sever response with an extra empty SSE event causing the java mcp client to fail deserialization

1 participant