-
Notifications
You must be signed in to change notification settings - Fork 31
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
MCP spec revision 2025-11-25 replaced the HTTP+SSE transport with Streamable HTTP. Our server currently supports stdio and sse transports — sse is now legacy (spec 2024-11-05).
Spec Reference
- Streamable HTTP transport spec
- Changelog — SSE replaced by Streamable HTTP since 2025-03-26
Current State
File: src/aws_mcp_server/__main__.py (lines 37-49)
File: src/aws_mcp_server/config.py (line 22)
# config.py
TRANSPORT = os.environ.get("AWS_MCP_TRANSPORT", "stdio")
# __main__.py
if TRANSPORT not in ("stdio", "sse"):
logger.error(f"Invalid transport protocol: {TRANSPORT}. Must be 'stdio' or 'sse'")
sys.exit(1)
# ...
mcp.run(transport=TRANSPORT)Required Changes
- Add
streamable-httpas a valid transport — update validation in__main__.pyto accept"stdio","sse", and"streamable-http" - Make
streamable-httpthe recommended HTTP transport — update README/docs to recommendstreamable-httpoversse - Deprecate
ssetransport — add deprecation warning whensseis selected, suggest migration tostreamable-http - Update
config.py— addstreamable-httpto the docstring forAWS_MCP_TRANSPORT - Verify FastMCP support —
fastmcp>=2.13.0should supportstreamable-httpnatively viamcp.run(transport="streamable-http"). Confirm and bump minimum version if needed.
Streamable HTTP Key Requirements (from spec)
- Server provides a single HTTP endpoint supporting POST and GET
- POST for client→server JSON-RPC messages
- GET for server→client SSE stream (optional, for notifications)
- Must validate
Originheader (return 403 for invalid) - Bind to
127.0.0.1locally (already handled for SSE viais_docker_environment()) - Session management via
Mcp-Session-Idheader
Migration Notes
The sse transport should remain functional for backward compatibility but emit a deprecation warning. Example:
if TRANSPORT == "sse":
logger.warning(
"SSE transport is deprecated per MCP spec 2025-11-25. "
"Use 'streamable-http' instead. Set AWS_MCP_TRANSPORT=streamable-http"
)Testing
- Verify
streamable-httptransport starts correctly - Verify SSE still works with deprecation warning
- Test Docker environment binding (
0.0.0.0vs127.0.0.1) - Integration test with MCP client (e.g., Claude Desktop)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request