Skip to main content
Glama
SaintDoresh

Weather MCP Tool

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

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

チュートリアル

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

Related MCP server: Weather MCP Server

特徴

  • あらゆる場所のリアルタイムの気象状況

  • 天気予報(最大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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SaintDoresh/Weather-MCP-ClaudeDesktop'

If you have feedback or need assistance with the MCP directory API, please join our Discord server