Mcp Server Weather Example について
Mcp Server Weather Exampleは、Azure Container Appsを使うチーム向けの天気MCPサーバー導入例とガイドです。SSE対応でAPIキー認証を備えたFastAPIアプリから、米国国立気象局の警報と予報を提供します。
主な機能
- 01NWSの警報と予報を取得
- 02FastAPIアプリでツールを提供
- 03Server-Sent Eventsに対応
- 04APIキーによるリクエスト保護
- 05Azure Container Appsにデプロイ
活用シーン
- 01リモートの天気MCPサーバーをデプロイ
- 02現在の気象警報を照会
- 03MCPクライアントから予報を取得
- 04Visual Studio Codeからサーバーに接続
MCP 対応
MCPクライアントに`get_alerts()`と`get_forecast()`を提供します。SSEとAPIキー認証を使用し、Azure Container Appsへのデプロイ手順も含みます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
リモート MCP 気象サーバーのデプロイと接続
このプロジェクトでは、米国国立気象局の API を使用してリアルタイムの気象データを提供する、クラウドベースの Model Context Protocol (MCP) サーバーをデプロイできます。FastAPI で構築されており、リアルタイム通信のための Server-Sent Events (SSE) をサポートし、安全な API キー認証を使用します。
このリポジトリには、すぐにデプロイできる Weather MCP サーバーが用意されています。コードのクローン作成、認証の設定、Azure Container Apps へのデプロイから、MCP 拡張機能を使用して Visual Studio Code 内で接続するまで、セットアップ全体を順に説明します。
リポジトリのクローンを作成する
git clone https://github.com/your-username/mcp-weather-server.git
cd mcp-weather-server
構成を確認する
デプロイする前に、主要なコンポーネントを確認してください。
weather.py– 米国国立気象局の API を使用する、2 つのツールget_alerts()とget_forecast()を定義します。main.py– ツールを FastAPI アプリでラップし、SSE をサポートして/sseで公開します。api_key_auth.py– 受信リクエストに対するx-api-keyヘッダーベースのセキュリティを実装します。Dockerfile– Python 3.13 とuvウェブサーバーを使用して、アプリをビルドし、パッケージ化します。
API キー認証を設定する
環境変数を使用して、API キーを安全に設定します。
export API_KEYS=<YOUR_API_KEY>
カンマ区切りで複数のキーを指定することもできます。ソースコードにシークレットをハードコーディングする必要はありません。
Azure Container Apps へのビルドとデプロイ
Azure CLI を使用して、1 回の手順でビルドとデプロイを行います。
az containerapp up \
-g <RESOURCE_GROUP> \
-n weather-mcp \
--environment <CONTAINERAPPS_ENV_NAME> \
-l westus \
--env-vars API_KEYS=<YOUR_API_KEY> \
--source .
このコマンドでは、次の処理が行われます。
- 同梱の Dockerfile を使用してイメージをビルドします。
- Azure Container Apps にデプロイします。
--env-varsを使用して API キーを設定します。
デプロイが完了すると、Azure CLI からパブリック URL が返されます。これは MCP クライアントが使用するエンドポイントです。

Visual Studio Code から接続する
サーバーが起動したら、VS Code 内で接続します。
- プロジェクトに
.vscode/mcp.jsonファイルを作成します。
{
"inputs": [
{
"type": "promptString",
"id": "weather-api-key",
"description": "Weather API Key",
"password": true
}
],
"servers": {
"weather-sse": {
"type": "sse",
"url": "https://weather-mcp.orangebush.westus.azurecontainerapps.io/sse",
"headers": {
"x-api-key": "${input:weather-api-key}"
}
}
}
}
- VS Code で MCP 拡張機能のサイドバーを開きます。
- サーバーエントリの横にある Start をクリックします。
- プロンプトが表示されたら API キーを入力します。
これで接続が完了し、リアルタイムの気象情報の問い合わせを処理できるようになりました。
GitHub Copilot Chat で試す(エージェントモード)
- GitHub Copilot Chat を エージェントモード で起動します。
- 次のように質問します。
「ジョージア州の天気予報はどうですか?」
エージェントはバックグラウンドで get_forecast ツールを呼び出し、NWS データに基づく最新の天気予報を返します。

これで準備完了です!
MCP サーバーは次の状態になりました。
- クラウドでホスト済み
- API キーで保護済み
- VS Code および GitHub Copilot と統合済み
これで、どこからでもリアルタイムの気象データを利用できるカスタムエージェントを構築できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。