Weather MCP Server について
Weather MCP Server は、National Weather Service API を使って米国各州の気象警報を提供する MCP サーバーです。stdio と SSE に対応し、会話メモリを備えた LLM コマンドラインクライアントも含みます。
主な機能
- 01米国の州ごとの気象警報を取得
- 02stdio と SSE のトランスポートに対応
- 03Docker コンテナで実行
- 04Claude Desktop と Cursor IDE に統合
- 05会話メモリ付き LLM コマンドラインクライアント
活用シーン
- 01米国の州の気象警報を確認
- 02気象警報を Claude Desktop や Cursor IDE に接続
- 03会話メモリ付き LLM コマンドラインクライアントを利用
MCP 対応
指定した米国の州の気象警報を取得する get_alerts ツールを提供します。サーバーは stdio と SSE のトランスポートに対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Weather MCP Server
MCP Python SDK を使用して構築された、米国の州の気象警報を提供する Model Context Protocol(MCP)サーバーの実装です。このプロジェクトでは、ツール、リソース、Docker との連携を備えた MCP サーバーの作成方法を紹介します。
機能
- National Weather Service API を使用した、米国の州の気象警報
- stdio と SSE(Server-Sent Events)の両トランスポートに対応
- Docker によるコンテナ化
- Claude Desktop および Cursor IDE との連携
- Groq を使用した LLM 搭載のコマンドラインクライアント
- 会話メモリに標準対応
プロジェクト構成
Creating-MCP-server/
├── server/
│ ├── weather.py # Main MCP server implementation
│ ├── client.py # LLM-powered CLI client
│ └── weather.json # Server configuration
├── mcpserver/
│ ├── Dockerfile # Docker configuration
│ ├── requirements.txt # Python dependencies
│ ├── client-stdio.py # Standard I/O client example
│ ├── client-sse.py # SSE client example
│ └── server.py # Containerized server
インストール
ローカル環境のセットアップ
- リポジトリをクローンします:
git clone <repository-url>
cd Creating-MCP-server
- 依存関係をインストールします:
pip install -r mcpserver/requirements.txt
Docker のセットアップ
ビルド済みイメージを取得します:
docker pull ksharma9719/weather-mcp-server
または、ローカルでビルドします:
cd mcpserver
docker build -t weather-mcp-server .
使い方
サーバーの起動
ローカル開発
cd server
python weather.py
Docker を使用
docker run -p 8000:8000 ksharma9719/weather-mcp-server
クライアントの例
LLM 連携 CLI クライアント
cd server
python client.py
標準入出力クライアント
cd mcpserver
python client-stdio.py
SSE クライアント
cd mcpserver
python client-sse.py
利用可能なツール
get_alerts
米国の州の気象警報を取得します。
パラメーター:
state:米国の州を示す2文字のコード(例:CA、TX、NY)
例:
result = await session.call_tool("get_alerts", arguments={"state": "CA"})
Claude Desktop との連携
- サーバーを Claude Desktop にインストールします:
mcp install weather.py
- 任意:カスタム名を指定します:
mcp install weather.py --name "Weather Alerts Server"
開発
前提条件
- Python 3.11 以降
- uv パッケージマネージャー
- Docker(任意)
環境変数
サーバーディレクトリに .env ファイルを作成します:
GROQ_API_KEY=your_groq_api_key
ドキュメント
コントリビューション
- リポジトリをフォークします
- 機能ブランチを作成します(
git checkout -b feature/amazing-feature) - 変更をコミットします(
git commit -m 'Add some amazing feature') - ブランチにプッシュします(
git push origin feature/amazing-feature) - プルリクエストを作成します
ライセンス
このプロジェクトは MIT ライセンスのもとでライセンスされています。詳細については LICENSE ファイルをご覧ください。
謝辞
- 優れた SDK を提供してくださった Model Context Protocol チーム
- 公開 API を提供してくださった National Weather Service
- LLM API を提供してくださった Groq
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。