Open-Meteo Weather について
Open-Meteo Weatherは、地名から天気データを取得したいクライアント向けの軽量なPython製MCPサーバーです。無料のOpen-Meteo APIを使い、APIキーなしで現在の天気と時間別予報を提供します。
主な機能
- 01地名による現在の天気の取得
- 021~48時間の時間別予報
- 03現地時刻での予報表示
- 04APIキー不要
- 05標準ライブラリのみのPythonサーバー
活用シーン
- 01都市の現在の天気の確認
- 02今後数時間の降水確率の確認
- 03旅行計画向けの予報取得
MCP 対応
このMCPサーバーはstdio上でJSON-RPC 2.0を使用し、MCPクライアントに`get_weather`と`get_hourly_forecast`ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| location | string | はい | 場所の名前。例:'Seattle'、'Paris, France'。 |
詳細
weather-mcp
単一ファイルで動作する、最小構成のModel Context Protocolサーバーです。stdio経由でJSON-RPC 2.0を使用し、無料のOpen-Meteo APIを利用する2つのツール、get_weatherとget_hourly_forecastを提供します。
サードパーティのランタイム依存関係はありません。標準ライブラリのみを使用します。Python 3.8以降が必要です。
クイックスタート:Claude Code
1. ターミナルを準備する
各指示はどこに貼り付ければよいですか?
使用する場所は2か所です。
- 通常のターミナルタブは、セットアップコマンドの実行に使います。Macではターミナルアプリを開き、Command + Tを押して新しいタブを開きます。コマンドを1つ貼り付けてから、Returnを押します。
- Claude Codeの会話では、「東京の天気は?」などの質問をします。
すでにClaudeと会話している場合は、セットアップコマンド用に新しいターミナルタブを開きます。Claudeとの会話は元のタブに残し、後で戻れるようにしてください。
macOS/Linuxではターミナルを、WindowsではPowerShellを開きます。このガイドのコマンドブロックは、そこに貼り付けてください。天気に関する質問や、/loginや/mcpなど/で始まるコマンドは、Claude Codeの会話内で入力します。
ターミナルですでにClaude Codeを開いている場合は、セットアップ用に新しいターミナルタブを使ってください。
- 公式セットアップガイドに従ってClaude Codeをインストールします。ターミナルで
claude --versionを実行し、利用可能であることを確認します。次にclaudeを実行してサインインの指示に従います。必要に応じて、Claude Code内で/loginと入力してください。次の手順のために、別のターミナルタブを開いたままにします。 - お使いのOSに対応するインストール手順に従ってuvをインストールします。uvは
uvxを提供し、天気パッケージをダウンロードして実行します。インストール後にターミナルを開き直し、uvx --versionを実行します。どちらかのバージョン確認で「command not found」と表示された場合は、続行する前にインストールを完了してください。
パッケージのダウンロードと天気情報の取得には、インターネット接続が必要です。 天気APIキーは不要です。
2. 天気サーバーを追加する
ターミナルで次を実行します。
claude mcp add --scope user weather -- uvx myai-weather-mcp==0.1.2
weatherはClaude Codeに表示される名前です。myai-weather-mcpは、そこで実行される公開済みパッケージです。ユーザースコープに設定すると、すべてのClaude Codeプロジェクトで利用できます。リポジトリのクローンや、別途パッケージをインストールする必要はありません。他のセットアップ方法については、Claude Code MCPリファレンスを参照してください。
==0.1.2の固定指定は、このガイドで使用するリリースを選択するためのもので、後のリリースによってセットアップが予期せず変更されるのを防ぎます。意図的な指定です。アップグレードする場合は、バージョンの更新を参照してください。
すでにweatherが存在する場合は、claude mcp get weatherで確認してください。すでに上記のコマンドを使用している場合は、次の手順に進みます。古いユーザースコープの設定を置き換えるには、バージョンの更新の置き換え手順に従ってください。
3. 接続を確認して天気を尋ねる
ターミナルで次を実行します。
claude mcp get weather
Connectedと表示されることを確認します。別のステータスが表示された場合、またはサーバーが見つからない場合は、以下の接続のトラブルシューティングを参照してください。
claudeを実行して新しいClaude Codeセッションを開始するか、既存のセッション内で/mcpと入力し、weatherを再接続します。Claude Codeの会話プロンプトに、次のいずれかを貼り付けます。
- 「weatherツールを使って、東京の現在の天気を教えてください。」
- 「1時間ごとの予報ツールを使って、東京の今後6時間の予報を表示してください。」
現在の気象状況、°F単位の気温、mph単位の風速、および現地時刻と降水確率を含む6行の予報が表示されます。値は天気に応じて変わります。
バージョンの更新
リリースノートを確認し、
公開済みのバージョンを選択します。ユーザースコープの登録を置き換えるには、まず
claude mcp get weatherを確認し、残しておきたいカスタム設定を保存します。次に、
以下のコマンドを実行します。追加コマンドの0.1.2は、選択したバージョンに置き換えてください。
claude mcp remove --scope user weather
claude mcp add --scope user weather -- uvx myai-weather-mcp==0.1.2
claude mcp get weather
登録を削除すると、クライアント設定は削除されますが、リポジトリやソースファイルは削除されません。既存の登録が ローカルスコープまたはプロジェクトスコープにある場合は、変更する前にその設定を確認してください。同じ名前のエントリがあると、 ユーザースコープのエントリより優先される場合があります。
置き換えた後、/mcpから再接続するか、新しいClaude Codeセッションを開始してください。
Claude Desktopの場合は、設定のargsにあるバージョンを変更して再起動してください。
uvのキャッシュを更新しても、保存済みのバージョン指定は変わりません。すでに公開されているバージョンが見つからない場合は、選択したバージョンを指定して以下を実行します。
uvx --refresh myai-weather-mcp==0.1.2
エラーが表示されず、ターミナルが空白のままの場合、サーバーはクライアントからの接続を待機しています。 Control+Cを押してから、クライアントを再接続してください。ツールの実行やバージョンの選択について詳しくは、uvのツールガイドをご覧ください。
接続のトラブルシューティング
- **
weatherという名前のサーバーがない:**手順2の追加コマンドを実行して、もう一度確認してください。 - 接続に失敗した場合、または接続されていない状態が表示される場合:
claude mcp get weatherに表示されるコマンドと 引数を確認してください。ターミナルでuvx myai-weather-mcp==0.1.2を直接試し、エラーがあれば内容を確認します。 エラーなく起動して待機状態になった場合は、Control+Cを押してから/mcpで再接続してください。正常に起動すればパッケージが起動できることを確認できます。ネットワークも確認するには、天気を尋ねてください。 - **
uvxが見つからない:**uvをインストールし、ターミナルを開き直してください。ターミナルでは見つかるのにクライアントでは見つからない場合は、command -v uvx(macOS/Linux)またはwhere.exe uvx(Windows PowerShell)でフルパスを確認してください。登録または設定では、uvxの代わりにそのパスを使用し、スペースを含むパスは引用符で囲んでください。 - **パッケージのダウンロードに失敗する:**インターネット接続と、パッケージ名およびバージョンが正確かを確認してください。選択したリリースが存在するのにuvが見つけられない場合は、上記のキャッシュ更新コマンドを使用してください。
UnknownIssuerの場合は、以下の 証明書エラーの手順をご覧ください。 - **接続されているのにツールが見つからない:**新しいClaude Codeセッションを開始するか、
/mcpを使用してweatherが有効になっているか確認し、再接続してください。 - **サーバーを直接起動した後、ターミナルが空白のままになる:**MCPクライアントからの接続を待機しています。これは正常です。Control+Cを押してから、上記のクライアント設定を使用してください。
- Claude Codeに「Not logged in」と表示される:
claudeを開いて、/loginを実行してください。 - **接続されているのに天気のリクエストが失敗する:**返されたエラーとインターネット接続を確認してください。天気を取得するには、サーバーがOpen-Meteoに接続できる必要があります。
- **場所が見つからない:**よく知られた都市名を試してください。不明な場所を指定した場合は、天気予報ではなく、内容がわかるエラーが返されるはずです。
PyPI の証明書エラー(UnknownIssuer)
uvx が pypi.org から取得する際に、ターミナルに invalid peer certificate: UnknownIssuer と表示される場合、パッケージランチャーが HTTPS 接続を検証できていません。このエラーは気象サーバーの起動前に発生し、初期化中にクライアントで Connection closed と表示されることがあります。ほかの接続エラーは、原因が異なる場合があります。
オペレーティングシステムがすでに信頼している証明書を使ってみてください。
uvx --system-certs myai-weather-mcp==0.1.2
これは、証明書がシステムの信頼ストアにある管理ネットワークで役立つ場合があります。証明書の検証は有効なままです。サーバーがエラーなく起動して待機状態になったら、Control+C を押してください。Claude Code で同じオプションを使うには、登録の置き換え手順に従い、次の追加コマンドを使ってください。
claude mcp add --scope user weather -- uvx --system-certs myai-weather-mcp==0.1.2
Claude Desktop の uvx 設定では、args を ["--system-certs", "myai-weather-mcp==0.1.2"] に変更してください。クライアントを再接続または再起動してから、天気を尋ねて接続全体を確認します。このガイドに記載された固定バージョンと異なる場合は、選択したパッケージバージョンを使ってください。
uvx がこのフラグを認識しない場合は、インストール方法に従って uv を更新してください。証明書の検証に引き続き失敗する場合は、ネットワーク管理者に相談し、uv の証明書に関するドキュメントを確認してください。検証は有効なままにしてください。エラーを回避するために --allow-insecure-host を使わないでください。現在の設定で問題なく動作している場合は、設定を変更する必要はありません。
テストにご協力ください
上記の 2 つの質問と、ZzzxqqNowhere のような実在しない場所を試してください。分かりにくい点があれば、オペレーティングシステム、クライアント、パッケージバージョン、手順、エラーメッセージを記載してイシューを作成してください。共有する前に、パスワード、認証コード、その他の個人情報を削除してください。
ツール
| ツール | 引数 | 戻り値 |
|---|---|---|
get_weather | location(文字列、必須)— "Seattle" や "Paris, France" のような地名 | 現在の気象状況、気温(°F)、風速(mph)をテキストブロックで返します。不明な地名の場合は、isError: true を含む結果が返されます。 |
get_hourly_forecast | location(文字列、必須);hours(整数、省略可、1~48、デフォルト 12) | 1 時間ごとの気温(°F)、降水確率、気象状況を、1 時間につき 1 行で返します。タイムスタンプはその場所の現地時間です。範囲外の hours は範囲内に調整されます。 |
使い方
以下の応答は説明用の例であり、現在の天気を示すものではありません。
サーバーをクライアントに接続したら、自然言語で尋ねるだけです。モデルがツールを選択し、引数を設定します。
あなた: 今、Seattle の天気はどうですか?
Claude: (
location: "Seattle"を指定してget_weatherを呼び出します) アメリカ合衆国 Seattle の現在の天気:曇り、54.2 °F、風速 1.1 mph。
あなた: 今後 6 時間、Tokyo では雨が降りますか?
Claude: (
location: "Tokyo"とhours: 6を指定してget_hourly_forecastを呼び出します) はい。毎時間小雨が降り、降水確率は 76 % から 89 % に上昇します。
クライアントなしで試す
uv がインストールされている場合は、このブロック全体を bash または zsh を使う macOS/Linux のターミナルに貼り付けてください。必要に応じて固定バージョンのパッケージをダウンロードし、どのフォルダーからでも実行できます。リポジトリのクローンや、別途パッケージをインストールする必要はありません。このシェルの例は PowerShell の構文ではありません。
サーバーに JSON-RPC のやり取りを直接送信します。
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","clientInfo":{"name":"cli"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"get_weather","arguments":{"location":"Seattle"}}}' \
'{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_hourly_forecast","arguments":{"location":"Tokyo","hours":6}}}' \
| uvx myai-weather-mcp==0.1.2
tools/call の応答は次のようになります。
{"jsonrpc": "2.0", "id": 2, "result": {"content": [{"type": "text",
"text": "Current weather in Seattle, United States:\n Conditions: overcast\n Temperature: 54.2°F\n Wind: 1.1 mph"}]}}
Hourly forecast for Tokyo, Japan (next 6 hours):
2026-09-04 18:00 73.0°F precip 76% dense drizzle
2026-09-04 19:00 72.5°F precip 76% dense drizzle
2026-09-04 20:00 72.2°F precip 78% dense drizzle
2026-09-04 21:00 71.8°F precip 80% slight rain
2026-09-04 22:00 71.7°F precip 84% dense drizzle
2026-09-04 23:00 71.3°F precip 89% moderate drizzle
不明な地名の場合は、"isError": true を含む通常の結果が返されます。
{"jsonrpc": "2.0", "id": 4, "result": {"content": [{"type": "text",
"text": "Could not find any location named 'Zzzxqq'."}], "isError": true}}
インストール
クイックスタートでは、すでに公開済みパッケージを uvx 経由で実行しています。以下の方法は代替手段です。すべてを完了する必要はありません。
このガイドでは、パッケージ名と起動コマンドとして myai-weather-mcp を使用します。
openmeteo-mcp は、同じサーバー向けの旧式の互換エイリアスです。
公開済みリリースを uv で実行する(推奨):
uvx myai-weather-mcp==0.1.2
pipx で永続的なコマンドをインストールする:
pipx install myai-weather-mcp==0.1.2
myai-weather-mcp
または、Python 仮想環境を有効にした状態で python3 -m pip install myai-weather-mcp==0.1.2 を実行してインストールします。
GitHub からソースを uv で実行する:
uvx --from git+https://github.com/myAI-2025/weather-mcp myai-weather-mcp
リポジトリのデフォルトブランチを使用します。このブランチは公開済みリリースと異なる場合があります。
ローカルクローンを実行する(Git と Python 3.8 以降が必要):
git clone https://github.com/myAI-2025/weather-mcp
python3 weather-mcp/weather_mcp/server.py
2 つ目のコマンドは、git clone を実行したフォルダーから実行するか、スクリプトのフルパスを使用してください。Windows で Python の起動コマンドが python3 ではなく python の場合は、Python ランチャーを使用してください。
いずれの方法でもサーバーが起動し、MCP の入力を待ちます。ターミナルに何も表示されないのは正常です。クライアントを設定する前に Control+C を押して停止してください。
クライアントを設定する
Claude Code
推奨される uvx の設定には、クイックスタートを使用してください。すでにそこで weather を登録している場合、再登録は不要です。
代わりに永続的な pipx インストールを選択した場合は、次のように設定します。
claude mcp add --scope user weather -- myai-weather-mcp
ローカルクローンの場合は、以下のパスの例をスクリプトの実際のフルパスに置き換えてください。
claude mcp add --scope user weather -- python3 /path/to/weather-mcp/weather_mcp/server.py
既存の登録を置き換える場合は、まず内容を確認し、バージョンの更新の手順に従ってください。Claude Code を再起動するか、/mcp 経由で再接続し、get_weather または get_hourly_forecast を使うよう依頼してください。
Claude Desktop
クイックスタートの説明に従って、まず uv をインストールしてください。claude_desktop_config.json(macOS:~/Library/Application Support/Claude/、Windows:%APPDATA%\Claude\)を編集します。mcpServers の下に weather エントリを追加し、既存の他のサーバーはそのまま残してください。
{
"mcpServers": {
"weather": {
"command": "uvx",
"args": ["myai-weather-mcp==0.1.2"]
}
}
}
Desktop が uvx を見つけられない場合は、"uvx" を command -v uvx(macOS)または where.exe uvx(Windows)で取得したフルパスに置き換えてください。JSON では Windows のバックスラッシュを 2 つ重ねる必要があります。たとえば "C:\\Users\\YourName\\.local\\bin\\uvx.exe" のように、実際のパスを指定してください。
代わりに pipx でパッケージをインストールした場合は、"command": "myai-weather-mcp"(またはそのフルパス)を使用し、args は省略してください。
Claude Desktop を終了して再度開き、天気ツールを使うよう依頼してください。 Desktop の設定は代替手段です。このガイドのエンドツーエンドのクライアント確認は Claude Code で実施しました。
その他の MCP クライアント
コマンドを uvx、引数を myai-weather-mcp==0.1.2 として、stdio サーバーを設定してください。永続的にインストールしている場合は、コマンドを myai-weather-mcp にすることもできます。クライアントはプロセスを起動し、その stdin/stdout を介して JSON-RPC 2.0 をやり取りします。詳しくは、以下の仕組みを参照してください。
開発
git clone https://github.com/myAI-2025/weather-mcp
cd weather-mcp
pip install -e ".[dev]"
python3 test_server.py # one line per check
pytest # same checks, pytest-style
テストスイートではネットワーク関数をモンキーパッチするため、オフラインで実行できます。
仕組み
weather_mcp/server.py は、stdin から改行区切りの JSON-RPC メッセージを読み取り、stdout に応答を書き込みます。
| メソッド | 動作 |
|---|---|
initialize | クライアントの protocolVersion をそのまま返し、tools 機能を提示して、serverInfo を返します。 |
notifications/initialized | 通知のため、応答はありません。 |
tools/list | get_weather と get_hourly_forecast のツール、およびそれらの入力スキーマを返します。 |
tools/call | 名前付きツールに処理を振り分けます。場所をジオコーディングし、Open-Meteo から天気を取得して、テキストブロックを整形します。検索またはネットワークの失敗時は、JSON-RPC エラーではなく isError: true を返します。 |
その他(id がある場合) | JSON-RPC エラー -32601(メソッドが見つかりません)。 |
上流への呼び出し:Open-Meteo のジオコーディング(geocoding-api.open-meteo.com)に続いて、予報エンドポイント(api.open-meteo.com)を current=temperature_2m,wind_speed_10m,weather_code とともに呼び出します。
謝辞
プロジェクトの指揮とClaude Codeでのテストを行った**Mona(myAI-2025)**が作成し、メンテナンスしています。
企画、実装、デバッグ、テスト、ドキュメント作成、パッケージ化、公開において、**ClaudeおよびClaude Code(Anthropic)とChatGPTおよびCodex(OpenAI)**のAI支援を受けて開発されました。
気象データはOpen-Meteoから提供されています。 ここでの謝辞は使用したツールとサービスを明記するものであり、各提供元によるスポンサーシップや推奨を意味するものではありません。
ライセンス
MIT — LICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。