Weather MCP Tool

by SaintDoresh
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Enables secure storage and loading of the OpenWeatherMap API key through environment variables, keeping sensitive data out of the codebase.

  • Offers a comprehensive tutorial on setting up and using the Weather MCP Tool with Claude Desktop, published on the Medium platform.

  • Requires Python 3.10+ as the runtime environment for the MCP server that processes weather data requests.

Claudeデスクトップ用天気MCPツール

Claude Desktop 用に特別に設計された、OpenWeatherMap API を使用してリアルタイムの気象データ、予報、気象履歴情報を提供する MCP (Model Context Protocol) ツールです。

チュートリアル

このツールの設定と使用に関する詳細なガイドについては、包括的な Medium チュートリアルをご覧ください: チュートリアル: Claude Desktop と Weather MCP ツールを使って世界中のリアルタイム気象データにアクセスする

特徴

  • あらゆる場所のリアルタイムの気象状況
  • 天気予報(最大5日間)
  • 過去の気象データ(過去5日間)
  • 大気質情報
  • 気象警報と注意報
  • 場所検索機能

設定

  1. Python 3.10以降がインストールされていることを確認してください
  2. 依存関係をインストールします:
pip install -r requirements.txt
  1. OpenWeatherMapからAPIキーを取得する(無料版あり)
    • 注: 新しいAPIキーが有効になるまでに最大24時間かかる場合があります
  2. API キーの環境変数を設定します (推奨方法):
    • プロジェクトディレクトリに.envファイルを作成する
    • APIキーをファイルに追加します: GXP2
    • 機密データのコミットを防ぐために、 .gitignoreファイルに.envを追加します。
  3. 環境変数を使用するようにmain.pyを更新します。
    # Add these imports at the top import os from dotenv import load_dotenv # Load environment variables load_dotenv() # Replace the API_KEY line with API_KEY = os.getenv("OPENWEATHER_API_KEY")

Claude Desktopとの統合

  1. 次の内容を MCP 構成に追加して、Claude Desktop で MCP 設定を構成します。
{ "mcpServers": { "weather-mcp": { "command": "py", "args": ["-3.13", "C:\\Path\\To\\Your\\Weather-MCP-ClaudeDesktop\\main.py"] } } }
  1. パスをmain.pyファイルへのフルパスに置き換えます。
  2. 次を使用してサーバーを実行します。
py -3.13 main.py
  1. Claude Desktop の使用中はサーバーを実行したままにしてください

利用可能なツール

1. 現在の天気を取得する

特定の場所のリアルタイムの気象状況を取得します。

{ "location": { "name": "New York", "country": "US", "lat": 40.7128, "lon": -74.006 }, "temperature": { "current": 25.6, "feels_like": 26.2, "min": 23.4, "max": 27.8 }, "weather_condition": { "main": "Clear", "description": "clear sky", "icon": "01d" }, "wind": { "speed": 3.6, "deg": 220 }, "clouds": 5, "humidity": 65, "pressure": 1015, "visibility": 10000, "sunrise": "2025-03-16T06:12:34", "sunset": "2025-03-16T18:04:23", "timestamp": "2025-03-16T14:30:00" }

2. 天気予報を取得する

特定の場所の天気予報を取得します。

{ "location": { "name": "London", "country": "GB", "lat": 51.5074, "lon": -0.1278 }, "forecast": [ { "datetime": "2025-03-16T15:00:00", "temperature": { "temp": 18.2, "feels_like": 17.8, "min": 17.5, "max": 19.1 }, "weather_condition": { "main": "Rain", "description": "light rain", "icon": "10d" }, "wind": { "speed": 4.2, "deg": 180 }, "clouds": 75, "humidity": 82, "pressure": 1010, "visibility": 8000, "pop": 0.4 } // ... more forecast items ], "days": 5 }

3. 空気の質を調べる

特定の場所の空気質データを取得します。

{ "location": { "name": "Beijing", "country": "CN", "lat": 39.9042, "lon": 116.4074 }, "air_quality_index": 3, "air_quality_level": "Moderate", "components": { "co": 250.34, "no": 0.5, "no2": 15.2, "o3": 140.8, "so2": 5.1, "pm2_5": 8.2, "pm10": 12.3, "nh3": 0.7 }, "timestamp": "2025-03-16T14:30:00" }

4. 過去の天気を取得する

特定の日付の過去の気象データを取得します。

{ "location": { "name": "Paris", "country": "FR", "lat": 48.8566, "lon": 2.3522 }, "date": "2025-03-14", "temperature": { "temp": 20.3, "feels_like": 19.8 }, "weather_condition": { "main": "Clouds", "description": "scattered clouds", "icon": "03d" }, "wind": { "speed": 2.8, "deg": 150 }, "clouds": 45, "humidity": 60, "pressure": 1012, "visibility": 10000, "sunrise": "2025-03-14T06:30:45", "sunset": "2025-03-14T18:15:22", "timestamp": "2025-03-14T12:00:00" }

5. 検索場所

名前で場所を検索:

{ "results": [ { "name": "Tokyo", "state": "", "country": "JP", "lat": 35.6762, "lon": 139.6503 }, { "name": "Tokyo", "state": "Tokyo", "country": "JP", "lat": 35.6895, "lon": 139.6917 } // ... more results ] }

6. 天気予報を取得する

特定の場所の天気警報を取得します。

{ "location": { "name": "Miami", "country": "US", "lat": 25.7617, "lon": -80.1918 }, "alerts": [ { "sender": "NWS Miami", "event": "Heat Advisory", "start": "2025-03-16T12:00:00", "end": "2025-03-16T20:00:00", "description": "Heat index values between 105 and 110 expected", "tags": ["Extreme temperature value"] } // ... more alerts if any ], "alert_count": 1 }

サンプルクエリ

Claude Desktop に次のような質問をすることができます:

  • 「ニューヨークの現在の天気はどうですか?」
  • 「ロンドンの5日間天気予報を見せて」
  • 「今日の北京の空気の質はどうですか?」
  • 「3月14日のパリの天気はどうでしたか?」
  • 「「東京」という名前の場所を検索」
  • 「マイアミに気象警報はありますか?」
  • 「シカゴ、マイアミ、シアトルの現在の天気を比較する」
  • 「北京、ロサンゼルス、デリーの空気の質の比較を見せてください」

エラー処理

すべてのツールには適切なエラー処理が組み込まれており、何か問題が発生した場合にはエラー メッセージを返します。

{ "error": "Failed to fetch current weather for InvalidLocation: Location not found" }

トラブルシューティング

Claude Desktop で MCP サーバーが動作していない場合:

  1. サーバーが実行中であることを確認してください。スクリプトを開始すると出力が表示されます。
  2. 設定のパスが正しく絶対パスであることを確認してください
  3. Python 3.10+がシステムPATHにあることを確認してください
  4. すべての依存関係がインストールされていることを確認する
  5. Claude Desktopを再起動してみてください
  6. ログにエラーメッセージがないか確認する

一般的なAPIの問題

  • APIキーの有効化: 新しいOpenWeatherMap APIキーの有効化には最大24時間かかる場合があります
  • 無効なAPIキーエラー: 401エラーが発生した場合は、APIキーが正しくアクティブであることを確認してください。
  • レート制限: 無料枠では 1 分あたり最大 60 回の通話が許可されますが、使用量が多すぎると超過する可能性があります。

レート制限

このツールはOpenWeatherMap APIを使用していますが、レート制限があります。無料プランでは1分あたり最大60回の呼び出しが許可されており、個人利用には十分です。ただし、リクエスト頻度が高すぎる場合は、APIによって処理が制限される場合がありますのでご注意ください。

ライセンス

MITライセンス

-
security - not tested
A
license - permissive license
-
quality - not tested

Claude Desktop 用の OpenWeatherMap API からリアルタイムの気象データ、予報、気象履歴情報を提供し、世界中の現在の状況、予報、空気の質、気象警報に関する自然言語クエリを可能にします。

  1. Tutorial
    1. Features
      1. Setup
        1. Integration with Claude Desktop
          1. Available Tools
            1. 1. get_current_weather
            2. 2. get_weather_forecast
            3. 3. get_air_quality
            4. 4. get_historical_weather
            5. 5. search_location
            6. 6. get_weather_alerts
          2. Sample Queries
            1. Error Handling
              1. Troubleshooting
                1. Common API Issues
              2. Rate Limits
                1. License
                  ID: vh7tgzyyy2