Spaces:
Sleeping
Sleeping
Update server.py
Browse files
server.py
CHANGED
@@ -61,7 +61,7 @@ async def handle_sse(request: Request):
|
|
61 |
write_stream_reader = write_stream
|
62 |
placeholder_id = f"placeholder_{id(write_stream)}"
|
63 |
write_streams[placeholder_id] = write_stream
|
64 |
-
sse_writers[placeholder_id] = sse_stream_writer
|
65 |
logger.info("Starting MCP server with streams")
|
66 |
await server.run(read_stream, write_stream, server.create_initialization_options())
|
67 |
logger.info("MCP server running")
|
@@ -78,7 +78,7 @@ async def handle_post(request: Request):
|
|
78 |
session_id = request.query_params.get("session_id")
|
79 |
logger.info(f"Received POST with session_id: {session_id}, message: {message}")
|
80 |
|
81 |
-
# Try to find the write_stream and SSE writer
|
82 |
write_stream = write_streams.get(session_id)
|
83 |
sse_writer = sse_writers.get(session_id)
|
84 |
if not write_stream or not sse_writer:
|
@@ -105,8 +105,12 @@ async def handle_post(request: Request):
|
|
105 |
}
|
106 |
}
|
107 |
response_data = json.dumps(response)
|
108 |
-
|
109 |
-
|
|
|
|
|
|
|
|
|
110 |
return Response(status_code=202)
|
111 |
|
112 |
if not write_stream or not sse_writer:
|
|
|
61 |
write_stream_reader = write_stream
|
62 |
placeholder_id = f"placeholder_{id(write_stream)}"
|
63 |
write_streams[placeholder_id] = write_stream
|
64 |
+
sse_writers[placeholder_id] = sse_stream_writer
|
65 |
logger.info("Starting MCP server with streams")
|
66 |
await server.run(read_stream, write_stream, server.create_initialization_options())
|
67 |
logger.info("MCP server running")
|
|
|
78 |
session_id = request.query_params.get("session_id")
|
79 |
logger.info(f"Received POST with session_id: {session_id}, message: {message}")
|
80 |
|
81 |
+
# Try to find the write_stream and SSE writer
|
82 |
write_stream = write_streams.get(session_id)
|
83 |
sse_writer = sse_writers.get(session_id)
|
84 |
if not write_stream or not sse_writer:
|
|
|
105 |
}
|
106 |
}
|
107 |
response_data = json.dumps(response)
|
108 |
+
try:
|
109 |
+
await sse_writer.send({"event": "message", "data": response_data})
|
110 |
+
logger.info(f"Sent tools/list response for session {session_id} via SSE")
|
111 |
+
except Exception as e:
|
112 |
+
logger.error(f"Failed to send SSE response for session {session_id}: {str(e)}")
|
113 |
+
return Response(status_code=202)
|
114 |
return Response(status_code=202)
|
115 |
|
116 |
if not write_stream or not sse_writer:
|