Skip to content

Commit 531c1fe

Browse files
authored
Merge pull request #1761 from sleeper/fix_local_time
fix: resolve ZoneInfo error by using IANA-compliant local timezone
2 parents 1252f48 + cd88954 commit 531c1fe

File tree

3 files changed

+195
-177
lines changed

3 files changed

+195
-177
lines changed

src/time/pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ dependencies = [
2020
"mcp>=1.0.0",
2121
"pydantic>=2.0.0",
2222
"tzdata>=2024.2",
23+
"tzlocal>=5.3.1"
2324
]
2425

2526
[project.scripts]

src/time/src/mcp_server_time/server.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
from typing import Sequence
55

66
from zoneinfo import ZoneInfo
7+
from tzlocal import get_localzone_name # ← returns "Europe/Paris", etc.
8+
79
from mcp.server import Server
810
from mcp.server.stdio import stdio_server
911
from mcp.types import Tool, TextContent, ImageContent, EmbeddedResource
@@ -40,9 +42,9 @@ def get_local_tz(local_tz_override: str | None = None) -> ZoneInfo:
4042
return ZoneInfo(local_tz_override)
4143

4244
# Get local timezone from datetime.now()
43-
tzinfo = datetime.now().astimezone(tz=None).tzinfo
44-
if tzinfo is not None:
45-
return ZoneInfo(str(tzinfo))
45+
local_tzname = get_localzone_name()
46+
if local_tzname is not None:
47+
return ZoneInfo(local_tzname)
4648
raise McpError("Could not determine local timezone - tzinfo is None")
4749

4850

0 commit comments

Comments
 (0)