From 7b3794911efa8355c7ca1c74412f65c3b3a35a1b Mon Sep 17 00:00:00 2001 From: Adam Jones Date: Fri, 19 Sep 2025 13:11:05 +0100 Subject: [PATCH 1/2] Fix time server to default to UTC when tzinfo is unavailable When get_localzone_name() returns None, the server now defaults to UTC instead of raising an error. This makes the server more robust in environments where the local timezone cannot be determined. --- src/time/src/mcp_server_time/server.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/time/src/mcp_server_time/server.py b/src/time/src/mcp_server_time/server.py index b8ca4e2ffb..746d78df44 100644 --- a/src/time/src/mcp_server_time/server.py +++ b/src/time/src/mcp_server_time/server.py @@ -46,7 +46,8 @@ def get_local_tz(local_tz_override: str | None = None) -> ZoneInfo: local_tzname = get_localzone_name() if local_tzname is not None: return ZoneInfo(local_tzname) - raise McpError("Could not determine local timezone - tzinfo is None") + # Default to UTC if local timezone cannot be determined + return ZoneInfo("UTC") def get_zoneinfo(timezone_name: str) -> ZoneInfo: From 60552b9495962ee0226b84103edb8c4928d94124 Mon Sep 17 00:00:00 2001 From: Adam Jones Date: Fri, 19 Sep 2025 13:13:31 +0100 Subject: [PATCH 2/2] Update test to expect UTC default instead of error --- src/time/test/time_server_test.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/time/test/time_server_test.py b/src/time/test/time_server_test.py index 97a6ea1f09..8d963508d7 100644 --- a/src/time/test/time_server_test.py +++ b/src/time/test/time_server_test.py @@ -486,10 +486,10 @@ def test_get_local_tz_with_valid_iana_name(mock_get_localzone): @patch('mcp_server_time.server.get_localzone_name') def test_get_local_tz_when_none_returned(mock_get_localzone): - """Test error when tzlocal returns None.""" + """Test default to UTC when tzlocal returns None.""" mock_get_localzone.return_value = None - with pytest.raises(McpError, match="Could not determine local timezone"): - get_local_tz() + result = get_local_tz() + assert str(result) == "UTC" @patch('mcp_server_time.server.get_localzone_name')