@@ -172,28 +172,43 @@ async def run_sse(self, host: str = "localhost", port: int = 8000):
172172 sse = SseServerTransport ("/messages/" )
173173
174174 async def handle_sse (request ):
175- async with sse .connect_sse (
176- request .scope , request .receive , request ._send
177- ) as streams :
178- await self .server .run (
179- streams [0 ], streams [1 ],
180- InitializationOptions (
181- server_name = "temporal-awareness-mcp" ,
182- server_version = "0.1.0" ,
183- capabilities = ServerCapabilities (
184- tools = ToolsCapability ()
175+ try :
176+ async with sse .connect_sse (
177+ request .scope , request .receive , request ._send
178+ ) as streams :
179+ await self .server .run (
180+ streams [0 ], streams [1 ],
181+ InitializationOptions (
182+ server_name = "temporal-awareness-mcp" ,
183+ server_version = "0.1.0" ,
184+ capabilities = ServerCapabilities (
185+ tools = ToolsCapability ()
186+ ),
185187 ),
186- ),
187- )
188+ )
189+ except Exception as e :
190+ import sys
191+ print (f"Error in handle_sse: { e } " , file = sys .stderr )
192+ raise
188193 return Response ()
189194
195+ from starlette .middleware .cors import CORSMiddleware
196+
190197 app = Starlette (
191198 routes = [
192199 Route ("/sse" , endpoint = handle_sse , methods = ["GET" ]),
193200 Mount ("/messages/" , app = sse .handle_post_message ),
194201 ],
195202 )
196203
204+ app .add_middleware (
205+ CORSMiddleware ,
206+ allow_origins = ["*" ],
207+ allow_credentials = True ,
208+ allow_methods = ["*" ],
209+ allow_headers = ["*" ],
210+ )
211+
197212 config = uvicorn .Config (app , host = host , port = port )
198213 server = uvicorn .Server (config )
199214 await server .serve ()
0 commit comments