Weather Forecast Tool について
Weather Forecast Toolは、MET Norway APIから予報を取得して要約するPython製MCPサーバーです。緯度と経度を受け取り、時間帯ごとの代表的な天気記号や気温範囲を含む日別予報を現地時刻で返します。
主な機能
- 01緯度と経度による予報取得
- 02日別の天気要約
- 03時間帯ごとの代表的な天気記号
- 04日ごとの最低・最高気温
- 05現地時刻での予報出力
活用シーン
- 01地点の日別予報を確認
- 02時間帯ごとの天気を確認
- 03日々の最低・最高気温を比較
- 04地理座標を使って予報を取得
MCP 対応
FastMCPを使い、`get_weather`関数をMCPクライアント向けのツールとして登録します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
天気予報ツール
説明
この Python コードは、MET Norway API を使用して、指定した場所の天気予報を取得し、要約するツールを提供します。ツールの登録には FastMCP フレームワークを活用し、非同期 HTTP リクエストには httpx を使用します。
機能
-
天気予報:
get_weather関数は、指定した緯度と経度の天気予報データを取得します。 -
日ごとの要約:
summarize_daily_timeseries_most_occurrences関数は、未加工の予報データを処理し、以下を含む簡潔な日ごとの要約を提供します。- 夜、朝、午後、夕方に最も頻繁に現れる天気記号。
- その日の最低気温と最高気温。
- 予報は現地時間で返されます。
-
HTTP リクエスト:
make_net_request関数は、MET Norway API への非同期 HTTP リクエストを処理します。 -
天気記号のマッピング:
map_weather_symbol関数は、API の天気記号コードを人が読みやすい説明に変換します。
依存関係
- Python 3.13+
collectionsdatetimetypingasynciojsonhttpxmcp.server.fastmcp
セットアップ
- 依存関係をインストールします。
必要に応じて MCP やその他の依存関係をインストールします(MCP documentation を参照してください)。
- 座標を取得します。 天気予報を知りたい場所の緯度と経度が必要です。
使用方法
-
インポート: 必要なモジュールをインポートし、FastMCP サーバーを初期化します。
from collections import Counter from datetime import datetime, timezone, timedelta from mcp.server.fastmcp import FastMCP from typing import Any import asyncio import json import httpx mcp = FastMCP("weather") -
get_weatherツールを使用します。async def main(): weather_data = await get_weather(55.6761, 12.5683) # Example: Copenhagen, Denmark print(weather_data) if __name__ == "__main__": asyncio.run(main())55.6761と12.5683を、目的の場所の緯度と経度に置き換えてください。
ツールの定義
* get_weather(latitude: float, longitude: float) -> str
* 指定した場所の天気予報を取得して整形します。
* 引数:
* latitude (float):場所の緯度。
* longitude (float):場所の経度。
* 戻り値:
* str:日ごとの天気予報を含む整形済み文字列。
MCP
このコードでは FastMCP フレームワークを使用しています。サーバーのセットアップと実行方法については、FastMCP のドキュメントを参照してください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。