Add SSE transport support
Context
WaveXisMCP currently supports two transports:
stdio (default) — for local MCP clients like Claude Desktop, Cursor
http — for CI/CD, shared instances, Docker
The MCP spec also defines SSE (Server-Sent Events) as a transport. Some MCP clients (notably older versions of some tools) prefer SSE over HTTP streaming. Adding SSE support would improve compatibility with a wider range of MCP clients.
What needs to happen
In wavexis-mcp
- Add
sse as a valid --transport option in wavexis_mcp/server.py
- Implement SSE transport using the
mcp library's SSE server (if available) or a custom implementation:
GET /sse — opens SSE stream, sends MCP messages as events
POST /messages — receives client messages
- Add
--sse-port flag (default: same as --port)
- Update CLI help text
- Update docs (
docs/http-transport.md or new docs/sse-transport.md)
Implementation notes
- Check if the
mcp Python SDK already provides an SSE transport (it may — check mcp.server.sse)
- If yes, just wire it up as a third transport option
- If no, implement using
aiohttp or starlette SSE response
- SSE should work with the same
--allow-remote and --port flags as HTTP
- Rate limiting should apply to SSE connections too
Getting started
- Read
wavexis_mcp/server.py to see how stdio and http transports are wired
- Check the
mcp package for SSE support: python -c "from mcp.server import sse; print(dir(sse))"
- If SSE is available in the SDK, follow the same pattern as the HTTP transport
- If not, implement a minimal SSE endpoint
- Add tests
- Update docs
References
Add SSE transport support
Context
WaveXisMCP currently supports two transports:
stdio(default) — for local MCP clients like Claude Desktop, Cursorhttp— for CI/CD, shared instances, DockerThe MCP spec also defines SSE (Server-Sent Events) as a transport. Some MCP clients (notably older versions of some tools) prefer SSE over HTTP streaming. Adding SSE support would improve compatibility with a wider range of MCP clients.
What needs to happen
In
wavexis-mcpsseas a valid--transportoption inwavexis_mcp/server.pymcplibrary's SSE server (if available) or a custom implementation:GET /sse— opens SSE stream, sends MCP messages as eventsPOST /messages— receives client messages--sse-portflag (default: same as--port)docs/http-transport.mdor newdocs/sse-transport.md)Implementation notes
mcpPython SDK already provides an SSE transport (it may — checkmcp.server.sse)aiohttporstarletteSSE response--allow-remoteand--portflags as HTTPGetting started
wavexis_mcp/server.pyto see howstdioandhttptransports are wiredmcppackage for SSE support:python -c "from mcp.server import sse; print(dir(sse))"References