From 859244648dbdd4dce4eb5869e46a14bd4ba7354e Mon Sep 17 00:00:00 2001 From: Sean Doherty Date: Sat, 16 May 2026 15:59:58 -0500 Subject: [PATCH 1/2] docs(time): fix response examples --- src/time/README.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/time/README.md b/src/time/README.md index 93d6fcab89..cb95268609 100644 --- a/src/time/README.md +++ b/src/time/README.md @@ -212,6 +212,7 @@ Response: { "timezone": "Europe/Warsaw", "datetime": "2024-01-01T13:00:00+01:00", + "day_of_week": "Monday", "is_dst": false } ``` @@ -232,15 +233,17 @@ Response: { "source": { "timezone": "America/New_York", - "datetime": "2024-01-01T12:30:00-05:00", + "datetime": "2024-01-01T16:30:00-05:00", + "day_of_week": "Monday", "is_dst": false }, "target": { "timezone": "Asia/Tokyo", - "datetime": "2024-01-01T12:30:00+09:00", + "datetime": "2024-01-02T06:30:00+09:00", + "day_of_week": "Tuesday", "is_dst": false }, - "time_difference": "+13.0h", + "time_difference": "+14.0h" } ``` From bbbb3462b6b37385ea817e320eb75a166b2f9e46 Mon Sep 17 00:00:00 2001 From: Sean Doherty Date: Sat, 16 May 2026 16:03:19 -0500 Subject: [PATCH 2/2] test(time): verify README response examples --- src/time/test/time_server_test.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/time/test/time_server_test.py b/src/time/test/time_server_test.py index 8d963508d7..cc731deb03 100644 --- a/src/time/test/time_server_test.py +++ b/src/time/test/time_server_test.py @@ -1,4 +1,7 @@ +import json +from pathlib import Path + from freezegun import freeze_time from mcp.shared.exceptions import McpError import pytest @@ -8,6 +11,33 @@ from mcp_server_time.server import TimeServer, get_local_tz +def readme_response_blocks(): + readme = Path(__file__).parents[1] / "README.md" + blocks = [] + for chunk in readme.read_text(encoding="utf-8").split("Response:\n```json\n")[1:]: + raw_json, _, _ = chunk.partition("\n```") + blocks.append(json.loads(raw_json)) + return blocks + + +def test_readme_response_examples_match_server_output(): + time_server = TimeServer() + + with freeze_time("2024-01-01 12:00:00+00:00"): + current_time = time_server.get_current_time("Europe/Warsaw").model_dump() + + with freeze_time("2024-01-01 12:00:00+00:00"): + converted_time = time_server.convert_time( + "America/New_York", + "16:30", + "Asia/Tokyo", + ).model_dump() + + readme_blocks = readme_response_blocks() + assert current_time in readme_blocks + assert converted_time in readme_blocks + + @pytest.mark.parametrize( "test_time,timezone,expected", [