mcpField
P
pp-weather-goat

pp-weather-goat

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

pp-weather-goat について

pp-weather-goat は Weather GOAT CLI を操作するスキルで、天気の確認や天候に応じた活動判断を必要とするエージェント向けです。予報、米国国立気象局の警報、大気質、活動別の判断をまとめて扱えます。

主な機能

  1. 01現在の天気と複数日予報の取得
  2. 02理由付きの活動別判定
  3. 03荒天警報の確認と継続監視
  4. 04過去の平年値との比較
  5. 05大気質、花粉、UV の確認

活用シーン

  1. 01サイクリングやハイキングに適した天候か判断
  2. 02登録地点の朝の天気概要を取得
  3. 03旅行先ごとの天気を比較
  4. 04暴風雨中に警報の更新を監視

MCP 対応

README には weather-goat-pp-mcp のインストールとクライアント設定方法が記載されています。このサーバーは Weather GOAT の天気と警報機能を MCP クライアントに公開します。

インストール

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

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

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

詳細

Weather GOAT — Printing Press CLI

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

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

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

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

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

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

この CLI を使用する場面

天気の確認、嵐や警報の確認、空気質の把握、現在の天候に基づくアクティビティ(自転車、ハイキング、散歩、通勤、運転)の推奨、「この時期としては今日は平年並みか」の比較をユーザーが求めている場合に使用してください。特に、weather-goat-pp-cli を使った朝のブリーフィング情報源として便利です(引数なしの場合、設定済みの自宅の場所について、現在の状況、本日の予報、有効な警報を表示します)。

ユーザーが非常に狭い地域に特化した気象情報や商用レベルの気象情報を必要としている場合は使用しないでください(Tomorrow.io や ECMWF などの有料プロバイダーを使用してください)。また、国際的な異常気象警報にも使用しないでください(NWS の対象は米国のみです)。

独自の機能

アクティビティの判定 — 差別化要因
  • go walk|bike|hike|commute|drive [location] — 特定のアクティビティについて、理由とともに GO/CAUTION/STOP の判定を表示します。

    「天気を見て」を「何をすればいいか」に変えます。アクティビティごとに個別のしきい値が設定されています。

    • walk — 準備のアドバイス(傘は必要か、上着は必要か、日焼け止めは必要か、重ね着は必要か)
    • bike — サイクリング向けに調整された風、雨、AQI、路面凍結のしきい値
    • hike — 雷、低体温症のリスク、高度による UV
    • commute — 午前の出発時と午後の帰宅時の天候を比較します(時間を考慮)
    • drive — 視界、路面凍結、突風、NWS の警報
異常気象に関する情報
  • alerts [location] — 有効な NWS 警報:竜巻、嵐、洪水、熱波。深刻度と対象地域のポリゴンを含む構造化された出力を表示します。

  • watch [location] — 異常気象が発生している間、60 秒ごとに NWS を確認します。新しい警報や更新された警報が届くと表示します。嵐の間の実行に適しています。

状況と比較
  • normal [location] — この時期として今日は平年並みでしょうか。同じ日付の過去の平均と、今日の最高気温/最低気温/降水量を比較します。

  • compare <location1> <location2> [...] — 2 か所以上の予報を並べて比較します。旅行の計画や、「今週末はどちらの都市の天気がよいか」の確認に便利です。

  • morning-brief(または config set-location を実行済みの場合、引数なしで weather-goat-pp-cli を実行)— 現在の状況、本日の予報、有効な NWS 警報を一度に表示します。毎日の開始時に使用するコマンドです。

空気質、UV、花粉
  • breathe [location] — AQI、花粉、UV と、運動に関する推奨事項を表示します。

  • air-quality [location] — PM2.5、オゾンなどを含む詳細な AQI を表示します。

  • weather_codes — Open-Meteo の気象コードの対応表です(内部向けですが、--json 出力を扱う際に便利です)。

コマンドリファレンス

基本コマンド:

  • weather-goat-pp-cli — 朝のブリーフィング(最初に config set-location を実行するか、[location] を指定する必要があります)
  • weather-goat-pp-cli forecast [location] — 複数日の予報
  • weather-goat-pp-cli alerts [location] — NWS の発令中の深刻な気象警報
  • weather-goat-pp-cli history [location] — 過去の天気

アクティビティ:

  • weather-goat-pp-cli go <activity> [location] — walk、bike、hike、commute、drive

大気/環境:

  • weather-goat-pp-cli breathe [location] — AQI、花粉、UV の概要
  • weather-goat-pp-cli air-quality [location] — 詳細な AQI

状況確認:

  • weather-goat-pp-cli normal [location] — 今日の天気と過去の平均を比較
  • weather-goat-pp-cli compare <loc1> <loc2> — 2地点を並べて比較
  • weather-goat-pp-cli watch [location] — NWS のリアルタイム監視ループ

設定とユーティリティ:

  • weather-goat-pp-cli config set-location <place> — 自宅の場所を設定
  • weather-goat-pp-cli geocoding <name> — 地名を座標に変換
  • weather-goat-pp-cli doctor — 接続を確認

活用例

「今日は自転車で通勤しても大丈夫ですか?」
weather-goat-pp-cli go bike --agent

理由とともに、GO/CAUTION/STOP の判定を構造化して返します。自転車向けに重み付けされた風速、降水量、AQI、気温、凍結リスクを確認できます。

自宅の場所を設定してから朝のブリーフィングを実行する
weather-goat-pp-cli config set-location "Seattle, WA"
weather-goat-pp-cli --agent  # morning brief — no args

場所を保存すると、引数なしの実行で現在の状況、今日の予報、発令中の NWS 警報が返されます。シェルの起動スクリプトや cron から午前 7 時に実行できます。

旅行先を決める — 今週末はどちらの都市がよいですか?
weather-goat-pp-cli compare "Portland, OR" "San Francisco, CA" --agent

両方の現在の気象状況を並べて比較できます。一目で旅行先を決められます。

警報中に深刻な気象現象を監視する
weather-goat-pp-cli watch --agent &  # background poll every 60s

無期限で実行され、警報が変わると JSON イベントを標準出力に出力します。ロギングツールや Slack の Webhook にパイプして、警報を通知できます。

今日は例年より暑いですか?
weather-goat-pp-cli normal --agent

今日の最高気温、最低気温、降水量を、同じ暦日の過去 30 年間の平均とあわせて返します。「熱波なのか」を簡単に確認できます。

認証の設定

不要です。 Open-Meteo は無料で回数制限がなく、NWS も無料で、米国の公開データを提供しています。auth コマンドは一貫性のために存在しますが、何も実行しません。

任意の設定:

  • WEATHER_GOAT_CONFIG — 設定ファイルのパスを上書きします
  • 自宅の場所は config set-location を通じて ~/.config/weather-goat-pp-cli/config.toml に保存されます

エージェントモード

任意のコマンドに --agent を追加します。--json --compact --no-input --no-color --yes に展開されます。forecast では --forecast-days N を、15 分間の GET キャッシュを回避するには --no-cache を使用します。

出力のフィルタリング

--select では、ネストされたレスポンスの階層をたどるドット区切りのパスを指定できます。配列の場合は要素ごとに処理されます。

weather-goat-pp-cli <command> --agent --select id,name
weather-goat-pp-cli <command> --agent --select items.id,items.owner.name

これを使って、膨大なペイロードから必要なフィールドだけに絞り込めます。深くネストされた API レスポンスを扱う場合に特に便利です。

終了コード

コード意味
0成功
2使用方法のエラー
3場所が見つかりません(ジオコーディングに失敗)
5API エラー(Open-Meteo または NWS の問題)
7レート制限(非常にまれ。Open-Meteo は回数制限なし)

インストール

go install github.com/mvanhorn/printing-press-library/library/other/weather-goat/cmd/weather-goat-pp-cli@latest
weather-goat-pp-cli config set-location "Your City, ST"
weather-goat-pp-cli doctor
MCP サーバー
go install github.com/mvanhorn/printing-press-library/library/other/weather-goat/cmd/weather-goat-pp-mcp@latest
claude mcp add weather-goat-pp-mcp -- weather-goat-pp-mcp

引数の解析

$ARGUMENTS の内容:

  1. 空、help、または --help → weather-goat-pp-cli --help を実行します
  2. install → CLI、install mcp → MCP
  3. アクティビティに関する問い合わせ(「自転車/徒歩/ハイキングで行くべきか」など) → go <activity> [location] --agent
  4. 深刻な気象現象に関する問い合わせ(「竜巻警報は出ていますか」「嵐が近づいていますか」など) → alerts [location] --agent
  5. 比較に関する問い合わせ(「X と Y のどちらの天気がよいか」など) → compare <loc1> <loc2> --agent
  6. その他すべて → forecast [location](場所が指定されず、自宅の場所が設定されている場合は朝のブリーフィング)

エージェントワークフローの機能

この CLI では、cli-printing-press の PR #218 から取り込まれた、エージェントワークフロー共通の機能を 3 つ利用できます。

名前付きプロファイル

フラグのセットを名前を付けて保存し、複数の実行で再利用できます。

# Save the current non-default flags as a named profile
weather-goat-pp-cli profile save <name>

# Use a profile — overlays its values onto any flag you don't set explicitly
weather-goat-pp-cli --profile <name> <command>

# List / inspect / remove
weather-goat-pp-cli profile list
weather-goat-pp-cli profile show <name>
weather-goat-pp-cli profile delete <name> --yes

フラグの優先順位:明示的なフラグ > 環境変数 > プロファイル > デフォルト。

--deliver

コマンドの出力を stdout 以外の送信先にルーティングします。エージェントが結果をファイル、Webhook、または別のプロセスに配管なしで渡す必要がある場合に便利です。

weather-goat-pp-cli <command> --deliver file:/path/to/out.json
weather-goat-pp-cli <command> --deliver webhook:https://hooks.example/in

ファイル送信先への書き込みはアトミックに行われます(tmp + rename)。Webhook 送信先は application/json を POST します(--compact が設定されている場合は application/x-ndjson)。未知のスキームは、サポートされているセットを列挙した構造化された拒否応答を返します。

feedback

ループのエージェント側から、この CLI に関する帯域内フィードバックを記録します。デフォルトではローカルのみで、設定なしで安全に呼び出せます。

weather-goat-pp-cli feedback "what surprised you or tripped you up"
weather-goat-pp-cli feedback list         # show local entries
weather-goat-pp-cli feedback clear --yes  # wipe

エントリは JSON Lines として ~/.weather-goat-pp-cli/feedback.jsonl に追記されます。WEATHER_GOAT_FEEDBACK_ENDPOINT が設定され、かつ --send が渡されているか WEATHER_GOAT_FEEDBACK_AUTO_SEND=true の場合、エントリは上流にも POST されます(ノンブロッキング — ローカルへの書き込みは常に成功します)。

コメント