Initialize MCP Server using Cursor IDE について
MCP 対応クライアントやアシスタント向けの、米国の気象警報と予報を取得する MCP サーバーです。National Weather Service API から最新の警報と5日間の予報を取得します。
主な機能
- 01州別の最新気象警報
- 02座標指定の5日間予報
- 03National Weather Service のデータ
- 04非同期リクエストとエラー処理
活用シーン
- 01州の発令中の警報を確認
- 02指定地点の5日間予報を取得
MCP 対応
stdio 経由で MCP クライアントに気象警報と予報のツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Weather Server
米国内の各地域を対象に、リアルタイムの気象警報と予報を提供する Model Context Protocol(MCP)サーバーです。FastMCP で構築され、National Weather Service(NWS)API を利用しています。
作者
Matheus Remigio
連絡先:[email protected]
🌟 機能
- 気象警報:米国の任意の州について、現在の気象警報を取得します
- 気象予報:指定した座標の詳細な5日間の気象予報を取得します
- リアルタイムデータ:公式の National Weather Service API を利用します
- MCP 連携:MCP 対応クライアントや AI アシスタントとシームレスに連携します
- 非同期処理のサポート:最適なパフォーマンスを実現するため、async/await で構築されています
- エラー処理:適切なフォールバックを備えた堅牢なエラー処理を行います
🚀 クイックスタート
前提条件
- Python 3.13 以降
- uv パッケージマネージャー(推奨)
- MCP 対応クライアント(Cursor IDE など)
インストール
-
リポジトリをクローンする
git clone https://github.com/msremigio/mcp-server-weather.git cd mcp_weather -
uv を使って依存関係をインストールする
uv sync -
仮想環境を有効にする
uv shell
サーバーの起動
uv run weather.py
サーバーが起動し、stdio トランスポート経由で MCP プロトコルメッセージを受信します。
🔧 設定
MCP クライアントの設定
以下を MCP クライアントの設定(例:mcp.json)に追加します。
{
"mcpServers": {
"mcp_weather": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/mcp_weather/project",
"run",
"weather.py"
]
}
}
}
注:--directory のパスは、実際のプロジェクトの場所に合わせて更新してください。
📚 API リファレンス
利用可能なツール
1. 気象警報の取得(get_alerts)
米国の指定した州について、現在の気象警報を取得します。
パラメーター:
state(str):2文字の州略称(例:"CA"、"NY"、"TX")
戻り値:
- 指定した州で発令中のすべての警報を含む整形済み文字列
応答例:
Event: Severe Thunderstorm Warning
Area: Northern California
Severity: Severe
Description: Severe thunderstorms capable of producing large hail and damaging winds
Instructions: Move to an interior room on the lowest floor of a building
---
Event: Flash Flood Watch
Area: Southern California
Severity: Moderate
Description: Heavy rainfall may cause flash flooding
Instructions: Monitor weather conditions and be prepared to take action
2. 気象予報の取得(get_forecast)
指定した座標の5日間の気象予報を取得します。
パラメーター:
latitude(str):緯度座標(10進度)longitude(str):経度座標(10進度)
戻り値:
- 今後5つの予報期間を含む整形済み文字列
応答例:
Tonight:
- Temperature: 45°F
- Wind: 5 mph NW
- Forecast: Clear skies with light winds
---
Tomorrow:
- Temperature: 72°F
- Wind: 10 mph SW
- Forecast: Sunny and warm with increasing clouds in the afternoon
🏗️ プロジェクト構成
mcp_weather/
├── weather.py # Main MCP server implementation
├── main.py # Simple entry point (placeholder)
├── pyproject.toml # Project configuration and dependencies
├── mcp.json # MCP client configuration template
├── README.md # This file
├── uv.lock # Dependency lock file
├── .python-version # Python version specification
└── .venv/ # Virtual environment directory
🔌 依存関係
- httpx:API リクエスト用の最新の非同期 HTTP クライアント
- mcp:Model Context Protocol の実装
- FastMCP:MCP サーバー構築用の FastMCP フレームワーク
🌐 データソース
このプロジェクトでは、以下を提供する National Weather Service(NWS)API を使用します。
- リアルタイムの気象警報と注意報
- 詳細な気象予報
- 地理的な地点データ
- 無料で信頼性の高い気象情報
🛠️ 開発
新しいツールの追加
気象関連の新しいツールを追加するには、次の手順に従います。
weather.pyに新しい非同期関数を作成します@mcp.tool()デコレーターを付けます- 適切な型ヒントと docstring を追加します
- 既存のヘルパー関数を使用してツールのロジックを実装します
テスト
# Run the server in development mode
uv run weather.py
# Test with MCP client tools
# The server will respond to MCP protocol messages
📝 エラー処理
サーバーには、包括的なエラー処理が含まれています。
- HTTP リクエストの失敗
- API 応答の検証
- ネットワークのタイムアウト(30秒の制限)
- データがない場合の適切なフォールバック
🤝 貢献
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 該当する場合はテストを追加します
- プルリクエストを送信します
📄 ライセンス
MIT ライセンス。
🙏 謝辞
- 気象データ API を提供する National Weather Service
- プロトコル仕様を提供する MCP Project
- サーバーフレームワークを提供する FastMCP
📞 サポート
問題、質問、貢献については、以下をご確認ください。
- GitHub で issue を作成する
- MCP のドキュメントを確認する
- National Weather Service API のドキュメントを確認する
注:このサーバーで NWS API から気象データを取得するには、インターネットへの接続が必要です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。