Weather App について
Weather Appは、世界各地の天気情報を取得するコマンドラインアプリとMCPサーバーです。現在の状況や予報を調べる人向けで、Python製MCPサーバーのひな型としても利用できます。
主な機能
- 01現在の天気の取得
- 02日別・時間別予報の取得
- 03気象警報の取得
- 04座標による天気検索
- 05ユーザー位置の自動検出
活用シーン
- 01地点ごとの天気と予報の確認
- 02座標を指定した天気の検索
- 03地点の気象警報の確認
MCP 対応
MCPサーバーは、天気の検索、予報、警報、位置検出、API状態確認のツールをクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Weather App
世界各地の場所について、現在の気象状況、予報、警報を提供する、コマンドラインおよび MCP ベースの天気アプリケーションです。
機能
- 任意の場所の現在の気象状況を取得
- 日ごとの天気予報を取得
- 時間ごとの天気予報を取得
- 気象警報を取得
- 座標から天気を取得
- 場所を自動検出
- API 接続をテスト
- API キーとサブスクリプションの状態を確認
インストール
前提条件
- Python 3.12 以上
- uv パッケージマネージャー
セットアップ
-
このリポジトリをクローンします。
git clone <repository-url> cd weather-app -
ルートディレクトリに OpenWeatherMap API キーを記載した
.envファイルを作成します。OPENWEATHER_API_KEY=your_api_key_hereAPI キーは OpenWeatherMap から取得できます。
-
インストールスクリプトを実行します。
./scripts/install.sh開発環境をセットアップする場合は、次のコマンドを使用します。
./scripts/install.sh --dev
使用方法
天気アプリを実行します。
./scripts/run_weather.sh
これにより MCP サーバーが起動し、次のツールを利用できます。
get_current_weather:現在の気象状況を取得get_forecast:日ごとの天気予報を取得get_hourly_forecast:時間ごとの天気予報を取得get_alerts:気象警報を取得get_weather_by_coordinates:座標から天気を取得get_user_location:現在地を取得test_api_connection:API 接続をテストcheck_api_key_and_subscription:API キーとサブスクリプションを確認
開発
コードスタイルとリンティング
このプロジェクトでは、次のツールを使用しています。
これらのツールはすべて pyproject.toml ファイルで設定されています。
Pre-commit フック
コード品質を保つために pre-commit フックを使用しています。開発用の依存関係をインストールすると、フックは自動的にセットアップされます。
pre-commit フックを手動でインストールするには、次を実行します。
uv run pre-commit install
pre-commit フックを手動で実行するには、次を実行します。
uv run pre-commit run --all-files
テスト
テストを実行します。
./scripts/run_tests.sh
カバレッジ付きで実行します。
./scripts/run_tests.sh --coverage
統合テストを実行します(API キーが必要です)。
./scripts/run_tests.sh --integration
カバレッジ付きで統合テストを実行します。
./scripts/run_tests.sh --integration --coverage
MCP サーバーの作成
このプロジェクトをテンプレートとして独自の MCP サーバーを作成するには、次の手順に従います。
-
開発用の依存関係とともにプロジェクトをインストールします。
./scripts/install.sh --dev -
MCP サーバーを実装する新しい Python ファイルを作成します。
import os from dotenv import load_dotenv from mcp.server.fastmcp import FastMCP # Load environment variables load_dotenv() # Initialize FastMCP server mcp = FastMCP("your-app-name") # Define your tools @mcp.tool async def your_tool(param1: str, param2: int) -> str: """Tool description.""" # Your implementation here return "Result" # Run the server if __name__ == "__main__": mcp.run() -
サーバーを実行します。
python your_server.py
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。