mcpField
P
pp-open-meteo

pp-open-meteo

github.com/mvanhornその他2.1k250 回インストール今日更新
リポジトリ

pp-open-meteo について

pp-open-meteoは、Open-Meteo CLIで天気や気候データを取得・分析する、エージェント向けの読み取り専用コマンドラインスキルです。予報や過去データに加え、平年値との比較、予報の変化追跡、アクティビティ条件の判定に対応します。

主な機能

  1. 01天気予報と過去データ
  2. 02大気質・海洋・洪水データ
  3. 03天気と平年値の比較
  4. 04予報の変化と精度の追跡
  5. 05複数地点の条件パネル
  6. 06アクティビティ適性の判定

活用シーン

  1. 01旅行計画で複数地点を比較
  2. 02天気が平年と異なるか確認
  3. 03前回の予報からの変化を確認
  4. 04サーフィン・スキー・ハイキングの条件を評価

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-open-meteo

インストール後、Claude Code で/pp-open-meteoを入力して読み込まれたか確認します。

詳細

Open-Meteo — Printing Press CLI

前提条件:CLI をインストールする

このスキルは open-meteo-pp-cli バイナリを使用します。**このスキルのコマンドを実行する前に、CLI がインストールされていることを必ず確認してください。**見つからない場合は、先にインストールしてください。

  1. Printing Press インストーラーを使ってインストールします。バイナリの既定のインストール先は、macOS/Linux では $HOME/.local/bin、Windows では %LOCALAPPDATA%\Programs\PrintingPress\bin です。
    npx -y @mvanhorn/printing-press-library install open-meteo --cli-only
    
  2. 確認します:open-meteo-pp-cli --version
  3. 報告されたインストールディレクトリが、このスキルを実行するエージェント/ランタイムの $PATH に含まれていることを確認します。

npx によるインストールに失敗した場合(Node がない、オフラインなど)は、Go を直接インストールしてください(Go 1.26.6 以降が必要です)。

go install github.com/mvanhorn/printing-press-library/library/other/open-meteo/cmd/open-meteo-pp-cli@latest

インストール後に --version が「command not found」と報告する場合、ランタイムからバイナリディレクトリを $PATH 経由で参照できません。確認が完了するまで、スキルのコマンドを実行しないでください。

この CLI を使用する場面

有料の商用契約を必要としない、天気、気候、大気質に関する質問には、この CLI を使用してください。予報(16 日間、複数のモデル)、過去のデータ(1940 年以降の ERA5)、海洋波、大気質と花粉、河川の洪水流量、CMIP6 気候予測、アンサンブル実行に対応しています。ユーザーが生データではなく、判断や異常に関する質問をしている場合は、独自のコマンド(compare、normals、weather-mix、panel、is-good-for)を活用してください。

この CLI を使用しない場面

リモートの状態を作成、更新、削除、公開、コメント、賛成票の投票、招待、注文、メッセージ送信、予約、購入、変更する必要がある依頼では、この CLI を有効にしないでください。この Printing Press CLI が公開するのは、確認、エクスポート、同期、分析のための読み取り専用コマンドです。

独自の機能

この API 用の他のツールでは利用できない機能です。

蓄積されるローカル状態
  • forecast diff — この場所で最後に予報を取得してから何が変わったかを正確に確認できます。気温の差、新たな降水時間、天気コードの変化がわかります。

    現在の予報そのものではなく、予報の変化に対応(アラート、計画の見直し)する必要がある場合にエージェントが使用します。

    open-meteo-pp-cli forecast diff --place Seattle --json --select changes
    
  • normals — 任意の(場所、年通日、変数)の組み合わせについて、30 年間(またはユーザー指定期間)の平年値を計算します。

    「平年値と現在の比較」に基づく回答に使用します。数十年単位での旅行や時期のおすすめにも役立ちます。

    open-meteo-pp-cli normals --place Seattle --month 7 --variable temperature_2m_max --years 30 --json
    
  • accuracy — 過去の任意の日付について、モデルが予測した内容(キャッシュされたスナップショット)と実際に起きたこと(アーカイブの実測値)を比較します。

    長期的な予報の信頼度を評価したり、「なぜ予報が変わったのか」という質問を調査したりする際に使用します。

    open-meteo-pp-cli accuracy --place Seattle --date 2025-12-25 --variable temperature_2m_max --json
    
  • weather-mix — 任意の過去期間における、ある場所の WMO 天気の状況(晴れ、雨、嵐など)の割合を示します。

    旅行の計画、気候の概要、「11 月に雨が降る頻度はどのくらいか」といった質問に使用します。

    open-meteo-pp-cli weather-mix --place Seattle --past-days 30 --json
    
API をまたいだ結合
  • compare — 今日の天気(または任意の予報時刻)を、その日、その場所の 30 年間の平年値と比較します。

    「この天気は珍しいですか?」「過去と比べてどうですか?」とユーザーが尋ねた場合に使用します。1 回の API 呼び出しだけでは回答できません。

    open-meteo-pp-cli compare --place Seattle --metric temperature_2m_mean --years 30 --json
    
  • is-good-for — 予報、海洋、大気質のしきい値を組み合わせて、サーフィン、スキー、ハイキング、ランニング、サイクリングについての判定(GO/CAUTION/STOP)を示します。

    ユーザーがデータではなく判断を求めている場合に使用します。3 つのエンドポイント呼び出しを統合して判定する手間をエージェントから省けます。

    open-meteo-pp-cli is-good-for surfing --place "Half Moon Bay, CA" --json
    
エージェント向けのネイティブ連携
  • panel — N か所の状況を横並びで確認できるスナップショットパネルを、1 つのコマンドで表示します。可能な場合は、Open-Meteo への呼び出しを 1 回にまとめます。

    複数の場所の状況を一度に比較する際に使用します。N 回に分けて呼び出すより、低コストで高速です。

    open-meteo-pp-cli panel --place Seattle,Berlin,Tokyo --current temperature_2m,wind_speed_10m,weather_code --json
    

コマンドリファレンス

air-quality — 大気質と花粉:PM2.5、PM10、オゾン、NO2、SO2、CO、粉じん、花粉、EU/US AQI、UV。

  • open-meteo-pp-cli air-quality — 大気質の予報と過去のデータ:汚染物質、AQI、花粉、UV。

archive — 過去の気象データ(ERA5 再解析、1940 年から約 5 日前まで)。予報と同じ変数を利用できます。

  • open-meteo-pp-cli archive — ERA5 による時間別/日別の過去の気象観測データ(1940 年から約 5 日前まで)。

climate — SSP シナリオに基づく CMIP6 気候変動予測(1950~2050 年)。

  • open-meteo-pp-cli climate — 任意の緯度・経度における、SSP シナリオに基づく日別の CMIP6 気候予測。EC_Earth3P_HR、CMCC_CM2_VHR4 などのモデルに対応しています。

elevation — 数値標高モデルの検索。1 回の呼び出しで最大 100 個の座標に対応します。

  • open-meteo-pp-cli elevation — 1 組以上の座標(最大 100 組)の標高をメートル単位で検索します。

ensemble — 不確実性の定量化に利用するアンサンブル予報(すべてのモデルメンバー)。

  • open-meteo-pp-cli ensemble — 時間別のアンサンブル予報。すべてのアンサンブルメンバーを返すため、不確実性を定量化できます。

flood — 河川流量/洪水予報(GloFAS)。

  • open-meteo-pp-cli flood — GloFAS による日別の河川流量予報と過去のデータ。

forecast — 天気予報(最大 16 日先まで)。無料で API キーは不要です。時間別、日別、現在の気象データを取得できます。デフォルトのモデルは利用可能な最適なモデルです。特定のモデルを指定するには --models を渡します(gfs_seamless、ecmwf_ifs025、dwd_icon、jma_seamless、metno_seamless、gem_seamless、meteofrance_arpege_world)。

  • open-meteo-pp-cli forecast — 1 か所以上の座標の 7~16 日先までの天気予報。複数の場所を一括取得するには、緯度/経度をカンマ区切りで渡します。

geocode — ジオコーディング:地名/郵便番号で場所を検索するか、ID で場所を検索します。

  • open-meteo-pp-cli geocode get — Open-Meteo のジオコーディング ID で単一の場所を検索します。
  • open-meteo-pp-cli geocode search — 地名(「Berlin」、「Springfield, IL」)または郵便番号で、世界中の場所を検索します。

marine — 海洋気象:波高、周期、方向、うねりの成分、海面水温。

  • open-meteo-pp-cli marine — 海洋の予報/過去のデータ:波、うねり、海面水温。

seasonal — NCEP CFSv2 を使用した季節予報(最大 9 か月先まで)。

  • open-meteo-pp-cli seasonal — 6 時間ごとの解像度で 9 か月先までの季節予報を取得します。デフォルトのモデルは NCEP CFSv2 です。

鮮度の保証

この CLI の出力で鮮度が制限付きで保証されるのは、登録済みのストアを利用した読み取りコマンドのパスのみです。--data-source auto モードでは、該当するパスは sync_state を確認し、ローカルデータの読み取り前に範囲を限定した更新を実行する場合があります。--data-source local は更新を実行しません。--data-source live は API から読み取り、ローカルストアを変更しません。ソース選択を変更せずに鮮度フックをスキップするには、OPEN_METEO_NO_AUTO_REFRESH=1 を設定します。

JSON 出力で生成された来歴エンベロープが使用されている場合、鮮度メタデータは meta.freshness に表示されます。これは対象のコマンドパスでの現在のキャッシュの鮮度として扱ってください。過去のデータがすべてバックフィルされていることや、API 固有の拡張データを保証するものではありません。

適切なコマンドを探す

実行したいことは分かっていても、どのコマンドを使えばよいか分からない場合は、CLI に直接問い合わせてください。

open-meteo-pp-cli which "<capability in your own words>"

which は、自然言語による機能の問い合わせを、この CLI の厳選された機能インデックスから最適なコマンドに対応付けます。終了コード 0 は少なくとも 1 件の一致があることを示します。終了コード 2 は確度の高い一致がないことを示します。その場合は --help を参照するか、より絞り込んだ問い合わせを使用してください。

レシピ

エージェント向けに必要な予報データだけを選ぶ
open-meteo-pp-cli forecast --latitude 47.6062 --longitude -122.3321 --hourly temperature_2m,precipitation,weather_code --forecast-days 3 --json --select hourly.time,hourly.temperature_2m,hourly.weather_code

ドット区切りパスを指定して --select を使うと、深くネストされた時系列配列を絞り込めます。Open-Meteo のレスポンスは数十 KB になることがありますが、これにより必要な列だけに絞り込めます。

明日の予報で変わった点を比較する
open-meteo-pp-cli forecast diff --place Seattle --json

この場所の現在の予報を、キャッシュされた前回取得分と比較し、変化した時間帯のみを出力します。

異常値の確認:この気温は珍しいですか?
open-meteo-pp-cli compare --place Seattle --metric temperature_2m_mean --years 30 --json

対象の日付と場所について、30 年分の ERA5 過去データから算出した平年値を現在の予報と照合します。

旅行計画用の並列パネル
open-meteo-pp-cli panel --place "Seattle,Berlin,Tokyo" --current temperature_2m,weather_code --json

Open-Meteo はカンマ区切りの座標を標準で受け付けます。CLI は呼び出しをまとめ、場所ごとに結果を表示します。

シアトルでは10月にどのくらい雨が降りますか?
open-meteo-pp-cli weather-mix --place Seattle --start-date 2024-10-01 --end-date 2024-10-31 --json

アーカイブの毎時 WMO コードをカテゴリ別に集計したヒストグラムです(晴天の割合/雨の割合/嵐の割合など)。

認証の設定

認証は不要です。

open-meteo-pp-cli doctor を実行して、セットアップを確認してください。

エージェントモード

任意のコマンドに --agent を追加します。次のオプションに展開されます:--json --compact --no-input --no-color --yes。

  • パイプ可能 — JSON は標準出力に、エラーは標準エラー出力に出力されます

  • フィルター可能 — --select でフィールドを絞り込めます。ドット区切りのパスでネストされた構造をたどり、配列では各要素を順にたどります。情報量の多い API でコンテキストを小さく保つために重要です。

    open-meteo-pp-cli air-quality --agent --select id,name,status
    
  • プレビュー可能 — --dry-run で、リクエストを送信せずに内容を確認できます

  • オフライン対応 — 同期/検索コマンドは、利用可能な場合にローカルの SQLite ストアを使用できます

  • 非対話型 — プロンプトは表示されず、すべての入力はフラグで指定します

  • 読み取り専用 — 作成、更新、削除、公開、コメント、賛成票の投票、招待、注文、送信、その他の変更を伴うリクエストには、この CLI を使用しないでください

レスポンスのエンベロープ

ローカルストアまたは API からデータを読み取るコマンドは、出力を出典情報のエンベロープでラップします。

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

データには .results を、ライブデータかローカルデータかを確認するには .meta.source を解析してください。人間が読みやすい N results (live) の概要は、標準出力が端末の場合に限り標準エラー出力に表示されます。パイプやエージェントの利用時は、標準出力には純粋な JSON のみが出力されます。

エージェントからのフィードバック

この CLI に問題があると気付いた場合(エージェントが気付いた場合も)、記録してください。

open-meteo-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
open-meteo-pp-cli feedback --stdin < notes.txt
open-meteo-pp-cli feedback list --json --limit 10

記録は ~/.open-meteo-pp-cli/feedback.jsonl にローカル保存されます。OPEN_METEO_FEEDBACK_ENDPOINT が設定され、かつ --send が指定されているか、OPEN_METEO_FEEDBACK_AUTO_SEND=true の場合を除き、POST されることはありません。デフォルトではローカルのみに保存されます。

バグ報告ではなく、意外だったことを書いてください。短く、具体的に、一行で記録します。積み重ねることで効果が生まれるのは、そこです。

出力の配信

すべてのコマンドで --deliver <sink> を指定できます。出力は標準出力に加えて(または標準出力の代わりに)指定したシンクに送られるため、エージェントは手動でパイプをつながずにコマンド結果を振り分けられます。次の3つのシンクに対応しています。

シンク動作
stdoutデフォルト。標準出力のみに書き込みます
file:<path><path> に出力をアトミックに書き込みます(一時ファイル+リネーム)
webhook:<url>出力本文を URL に POST します(--compact 指定時は application/json または application/x-ndjson)

不明なスキームは、サポートされているスキームを示す構造化エラーとともに拒否されます。Webhook の送信に失敗すると、ゼロ以外の終了コードが返され、URL と HTTP ステータスが標準エラー出力に記録されます。

名前付きプロファイル

プロファイルは、保存したフラグ値のセットで、複数回の実行で再利用できます。スケジュールされたエージェントが同じ設定で同じコマンドを毎回呼び出す場合に使用します。これは HeyGen の「Beacon」パターンです。

open-meteo-pp-cli profile save briefing --json
open-meteo-pp-cli --profile briefing air-quality
open-meteo-pp-cli profile list --json
open-meteo-pp-cli profile show briefing
open-meteo-pp-cli profile delete briefing --yes

明示的なフラグは常にプロファイルの値より優先され、プロファイルの値はデフォルトより優先されます。agent-context はすべての利用可能なプロファイルを available_profiles に一覧表示するため、情報を調べるエージェントは実行時にプロファイルを検出できます。

終了コード

コード意味
0成功
2使用方法のエラー(引数が不正)
3リソースが見つかりません
5API エラー(上流の問題)
7レート制限。待ってから再試行してください
10設定エラー

引数の解析

$ARGUMENTS を解析します。

  1. 空、help、または --help → open-meteo-pp-cli --help の出力を表示します
  2. install で始まる場合 → mcp で終わる場合は MCP のインストール、それ以外の場合は上記の前提条件を参照してください
  3. それ以外 → 直接使用(CLI コマンドとして --agent を付けて実行します)

MCP サーバーのインストール

  1. MCP サーバーをインストールします。
    go install github.com/mvanhorn/printing-press-library/library/other/open-meteo/cmd/open-meteo-pp-mcp@latest
    
  2. Claude Code に登録します。
    claude mcp add open-meteo-pp-mcp -- open-meteo-pp-mcp
    
  3. 確認します:claude mcp list

直接使用

  1. インストール済みか確認します:which open-meteo-pp-cli 見つからない場合は、インストールを提案します(このスキルの冒頭にある前提条件を参照してください)。
  2. ユーザーのクエリに、上記の「独自の機能とコマンドリファレンス」から最適なコマンドを対応させます。
  3. --agent フラグを付けて実行します:
    open-meteo-pp-cli <command> [subcommand] [args] --agent
    
  4. あいまいな場合は、サブコマンドのヘルプを確認します:open-meteo-pp-cli <command> --help。

コメント