Windsurf で、Time MCP Server

·

Windsurf CascadeからTime MCP Server を呼び出してみました。

VS CodeでGitHub Copilot, Cline でやったので今度はWindsurfで

Time MCP Server – ゆるめも
https://blog.shinshu.app/archives/1013

servers/src/time/README.md at main · modelcontextprotocol/servers https://github.com/modelcontextprotocol/servers/blob/main/src/time/README.md

今回も
Using uv (recommended) で同様に動作しました。
Dev Container (Ubuntu環境)であればVS Code GitHub Copilotと異なりローカルではなくてコンテナ側で動いていました。

ローカル環境(Windows)でDev Containerを使っていないと、例のエラーでtime MCPサーバーはエラーになるので、Dev Containerを使うとClineと同じくコンテナ側でMCPサーバーは動作させている。という感じですかね。

1 つの利用可能な MCP サーバー

サーバーの初期化に失敗しました: – run return self._loop.run_until_complete(task)

ファイル "C:\Users\MKuri\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\asyncio\base_events.py" の 719 行目: run_until_complete で future.result() を返す

^^
ファイル “C:\Users\MKuri\AppData\Local\uv\cache\archive-v051af42yEnZ-owW9iemoc1\Lib\site-packages\mcp_server_time\server.py” の 119 行目: serve で local_tz = str(get_local_tz(local_timezone))
~~~~^^
ファイル “C:\Users\MKuri\AppData\Local\uv\cache\archive-v051af42yEnZ-owW9iemoc1\Lib\site-packages\mcp_server_time\server.py” の 45 行目: get_local_tz で return ZoneInfo(str(tzinfo))
ファイル “C:\Users\MKuri\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\zoneinfo_common.py” の 24 行目: load_tzdata で ZoneInfoNotFoundError(f’No time zone found with key {key}’) を発生
zoneinfo._common.ZoneInfoNotFoundError: 指定されたキー(�(�W�)に対応するタイムゾーンが見つかりません: サーバーが終了しました

1 available MCP server
failed to initialize server: – run return self._loop.run_until_complete(task)

File "C:\Users\MKuri\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\asyncio\base_events.py", line 719, in run_until_complete return future.result()

^^
File “C:\Users\MKuri\AppData\Local\uv\cache\archive-v051af42yEnZ-owW9iemoc1\Lib\site-packages\mcp_server_time\server.py”, line 119, in serve local_tz = str(get_local_tz(local_timezone))
~~~~^^
File “C:\Users\MKuri\AppData\Local\uv\cache\archive-v051af42yEnZ-owW9iemoc1\Lib\site-packages\mcp_server_time\server.py”, line 45, in get_local_tz return ZoneInfo(str(tzinfo))
File “C:\Users\MKuri\AppData\Roaming\uv\python\cpython-3.13.3-windows-x86_64-none\Lib\zoneinfo_common.py”, line 24, in load_tzdata raise ZoneInfoNotFoundError(f’No time zone found with key {key}’)
zoneinfo._common.ZoneInfoNotFoundError: No time zone found with key (�(�W�): server terminated

以下の様に2行追加でOKです。

なぜ
pip install tzdata
ではないのか?
Windowsのローカル環境にPythonを入れてないから…
ストアからもポチッと入りますが…


pipはPython環境が前提なので、どうしても「Python本体+pip」の組み合わせになります。

  • uvのみ単独で導入 → これは特殊なパッケージ管理用途で、pipとは別枠です。
  • Dev Container内にPython環境 → 開発用途にはベストプラクティスです。
  • VS CodeのGitHub Copilot MCPサーバーがローカル(Windows)必須 → このケースだけWindows上でのPython環境&pipが必要になる、という流れですね。

このように用途や場所ごとに必要なPython/pip環境が分かれるのが最近の開発環境の特徴です。


画像に表示されているエラー内容について、日本語で詳しく解説します。


画像のエラーメッセージ概要

MCP server (time) の初期化失敗エラー

  • failed to initialize server: <truncated 1726 bytes> ...
  • エラー内容の一部(Pythonのスタックトレース)が表示されています。

主なポイント

  1. local_tz = str(get_local_tz(local_timezone))
    • この箇所でエラーが発生。
  2. zoneinfo._common.ZoneInfoNotFoundError: No time zone found with key {key}
    • ZoneInfoNotFoundError というエラーが発生しており、指定されたキー(タイムゾーン名)が見つからなかったという内容です。
    • {key}の部分には本来タイムゾーン名が入りますが、表示上 (�(�W�) という文字化け(もしくは不正な値)が見えます。

詳細な解説・原因

  • zoneinfo はPython 3.9以降標準搭載されているタイムゾーン管理のモジュールで、
    タイムゾーン名(例:Asia/Tokyoなど)から該当するタイムゾーン情報を取得します。
  • ZoneInfoNotFoundError は、指定したタイムゾーン名がシステム上で見つからなかった場合に発生します。

エラー発生箇所

  • get_local_tz(local_timezone) でローカルタイムゾーンを取得しようとした際、
    何らかの理由で正しいタイムゾーン名が取得できず、不正な値(文字化け、空文字、Noneなど)が渡されたと推察されます。
  • その結果、zoneinfoが該当するタイムゾーン情報を見つけられずにエラーとなっています。

主な対処法

  1. Pythonのタイムゾーンデータの確認
    • Windows環境で zoneinfo がうまく動作しない場合があります(特にデフォルト環境だとタイムゾーンデータが不足していることがある)。
    • tzdataパッケージをインストールしてみてください。 pip install tzdata
    • インストール後、再度MCPサーバーを起動してみてください。
  2. ローカルタイムゾーンの取得方法を見直す
    • get_local_tz で取得される値が正しいタイムゾーン名(例:Asia/Tokyo)になっているか確認。
    • 必要であれば、os.environ["TZ"] などで明示的に環境変数を設定する方法もあります。
  3. Windows特有の問題の場合
    • Windowsでzoneinfoを利用する場合、tzdataのインストールがほぼ必須です。
    • また、Pythonのバージョンアップや仮想環境を作り直すことで解決することもあります。

まとめ(要約)

  • 発生原因:タイムゾーン名の取得失敗、またはタイムゾーンデータの不足。
  • 対策tzdataパッケージのインストールと、タイムゾーン名取得方法の見直し。

もし、追加でスタックトレース全体やエラー発生時の具体的な状況、利用しているMCPサーバーやuv/uvxコマンドの設定内容などがあれば、さらに深掘りしてご案内できますので、ぜひ教えてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です