Spaces:
Sleeping
Sleeping
Update server.py
Browse files
server.py
CHANGED
@@ -51,15 +51,15 @@ async def handle_sse(request: Request):
|
|
51 |
await sse_stream_writer.send({"event": "ping", "data": "keep-alive"})
|
52 |
await asyncio.sleep(15) # Send keep-alive every 15 seconds
|
53 |
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
logger.info("Starting MCP server with streams")
|
60 |
-
await server.run(
|
61 |
logger.info("MCP server running")
|
62 |
-
return EventSourceResponse(
|
63 |
except Exception as e:
|
64 |
logger.error(f"Error in handle_sse: {str(e)}")
|
65 |
raise
|
|
|
51 |
await sse_stream_writer.send({"event": "ping", "data": "keep-alive"})
|
52 |
await asyncio.sleep(15) # Send keep-alive every 15 seconds
|
53 |
|
54 |
+
# Create separate send and receive streams for reading and writing
|
55 |
+
read_stream_writer, read_stream_reader = anyio.create_memory_object_stream(0)
|
56 |
+
write_stream_writer, write_stream_reader = anyio.create_memory_object_stream(0)
|
57 |
+
placeholder_id = f"placeholder_{id(write_stream_writer)}"
|
58 |
+
write_streams[placeholder_id] = write_stream_writer
|
59 |
logger.info("Starting MCP server with streams")
|
60 |
+
await server.run(read_stream_reader, write_stream_writer, server.create_initialization_options())
|
61 |
logger.info("MCP server running")
|
62 |
+
return EventSourceResponse(read_stream_writer, data_sender_callable=sse_writer)
|
63 |
except Exception as e:
|
64 |
logger.error(f"Error in handle_sse: {str(e)}")
|
65 |
raise
|