diff --git a/src/mcp/server/mcpserver/utilities/func_metadata.py b/src/mcp/server/mcpserver/utilities/func_metadata.py index 96d25ec5ab..f8dcd70412 100644 --- a/src/mcp/server/mcpserver/utilities/func_metadata.py +++ b/src/mcp/server/mcpserver/utilities/func_metadata.py @@ -500,7 +500,7 @@ def _create_output_model(original_annotation: Any, type_expr: Any, func_name: st wrap_output = True # Handle GenericAlias types (list[str], dict[str, int], Union[str, int], etc.) - elif isinstance(type_expr, GenericAlias): + elif get_origin(type_expr) is not None: origin = get_origin(type_expr) if origin is dict: diff --git a/src/mcp/server/sse.py b/src/mcp/server/sse.py index d71ef25004..ca65e93254 100644 --- a/src/mcp/server/sse.py +++ b/src/mcp/server/sse.py @@ -15,6 +15,8 @@ # Define handler functions async def handle_sse(request): + if scope["method"] == "HEAD": + return Response(media_type="text/event-stream", headers={"Cache-Control": "no-store"}) async with sse.connect_sse( request.scope, request.receive, request._send ) as streams: