@@ -20,11 +20,13 @@ def __init__(
20
20
event_store : EventStore | None = None ,
21
21
json_response : bool = True , # Default to JSON for HTTP transport
22
22
security_settings : TransportSecuritySettings | None = None ,
23
+ stateless : bool = False ,
23
24
):
24
25
self .mcp_server = mcp_server
25
26
self .event_store = event_store
26
27
self .json_response = json_response
27
28
self .security_settings = security_settings
29
+ self .stateless = stateless
28
30
self ._session_manager : StreamableHTTPSessionManager | None = None
29
31
self ._manager_task : asyncio .Task | None = None
30
32
self ._manager_started = False
@@ -47,13 +49,12 @@ async def _ensure_session_manager_started(self) -> None:
47
49
logger .debug ("Starting StreamableHTTP session manager" )
48
50
49
51
# Create the session manager
50
- # Note: We don't use stateless=True because we want to support sessions
51
- # but sessions are optional as per the MCP spec
52
+ # Use stateless flag to determine whether to support sessions
52
53
self ._session_manager = StreamableHTTPSessionManager (
53
54
app = self .mcp_server ,
54
55
event_store = self .event_store ,
55
56
json_response = self .json_response ,
56
- stateless = False , # Always support sessions, but they're optional
57
+ stateless = self . stateless , # Use the stateless flag
57
58
security_settings = self .security_settings ,
58
59
)
59
60
0 commit comments