MCP US Weather Client/Server について
MCP US Weather Client/Serverは、米国各州の発令中の気象警報を取得するMCPサーバーとクライアントのサンプルです。National Weather Service APIを利用し、mcp_useとLangchainによる接続例を示します。
主な機能
- 01米国各州の有効な警報を取得
- 02気象警報の結果を整形
- 03mcp_useを使ったクライアント例
- 04会話メモリとLLM連携
活用シーン
- 01指定した州の気象警報の確認
- 02MCPクライアントとサーバーの実装例の学習
- 03LLMとの会話で警報取得を実演
MCP 対応
MCPクライアントに気象警報ツールと設定リソースを公開します。mcp_useを使ったクライアント例も含まれます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP 米国気象クライアント/サーバー
これは、私がMCPを実際に実装した初めての経験でした。とても気に入りましたし、MCPは今後も使われ続けると確信しています。エコシステム全体への理解をさらに深めるため、ほかのプロジェクトもいくつか実装する必要があります。このリポジトリには、米国海洋大気庁(NWS)のAPIを利用して、米国各州の気象警報情報を提供するシンプルなMCP(Model Context Protocol)サーバーが含まれています。また、mcp_useライブラリとLangchainを使用してMCPサーバーとやり取りする方法を示す、クライアントアプリケーションのサンプルも含まれています。
特長
- 気象警報: 指定した米国の州で発令中の気象警報を取得し、整形して表示します。
- MCP連携:
fastmcpライブラリを使用してMCPサーバーを構築する方法を示します。 - クライアントの例: サーバーを使用し、会話のメモリを統合するクライアントアプリケーションを提供します。
- Langchain連携: LLM連携の例を紹介します。
アーキテクチャ
graph LR
%% MCP System
subgraph MCP_System
A[Client: client.py]
B[MCP Agent: mcp_use.MCPAgent]
C[MCP Client: mcp_use.MCPClient]
D[FastMCP Server: weather.py]
E[NWS API: api.weather.gov]
A --> B
B --> C
C --> D
D --> E
end
%% Data Flow
subgraph Data_Flow
F[User Input]
F --> A
E -->|Geo+JSON| D
D -->|Weather Data| B
B -->|LLM Interaction| F
end
%% Styling with visible text
classDef client fill:#f9f,stroke:#333,color:#000,font-weight:bold;
classDef agent fill:#ccf,stroke:#333,color:#000,font-weight:bold;
classDef server fill:#fcc,stroke:#333,color:#000,font-weight:bold;
classDef api fill:#ffc,stroke:#333,color:#000,font-weight:bold;
classDef user fill:#cfc,stroke:#333,color:#000,font-weight:bold;
class A client;
class B,C agent;
class D server;
class E api;
class F user;
%% Link styling
linkStyle default stroke:#000,stroke-width:2px;
前提条件
サーバーとクライアントを実行する前に、以下がインストールされていることを確認してください。
- Python 3.7+
- uv(依存関係の管理に推奨 — https://github.com/astral-sh/uv)
- Groq APIキー。
.envファイルに追加する必要があります。 mcp_useライブラリ: ドキュメントに従ってインストールしてください。
インストール
-
リポジトリをクローンします:
git clone <your_repository_url> cd <repository_directory> -
依存関係をインストールします(uvを使用):
uv add -r requirements.txtこのコマンドは、カレントディレクトリの
pyproject.tomlファイルに基づいて、uv pip install .を使用し、プロジェクトとその依存関係をインストールします。 -
.envファイルを作成します: ルートディレクトリに
.envファイルを作成し、<YOUR_GROQ_API_KEY>を実際のGroq APIキーに置き換えて、以下の内容を記述します。GROQ_API_KEY=<YOUR_GROQ_API_KEY>
使用方法
MCP気象サーバーとクライアントの実行
-
サーバーを起動します:
uv run mcp dev server/weather.py -
クライアントを起動します:
uv run server/client.py
クライアントとのやり取り
- プロンプトにクエリを入力します。例:「CA、NY、NJなどの気象警報を取得して」。
- 会話を終了するには、
exitまたはquitと入力します。 - 会話履歴を消去するには、
clearと入力します。
やり取りの例
エージェントは次にget_alertsツールを使用してカリフォルニア州の気象警報を取得し、整形した結果を表示します。
エージェントは次にget_configツールを使用してリソースを取得します。
設定
server/weather.json
この設定ファイルには、MCPサーバーが公開するツールとリソースが記述されています。このファイルの内容がweather.pyファイル内の定義と正確に一致していることが重要です。このファイルの形式については、mcp_useのドキュメントを参照してください。デフォルトの設定ファイルはserverフォルダーにあります。
環境変数
クライアントアプリケーションは、Groq APIで認証するために、特にGROQ_API_KEYなどの環境変数を使用します。クライアントを実行する前に、これらの変数を設定してください。.envファイルを使用して設定できます。
出力
- コンソール出力: このスクリーンショットは、会話中のクライアントアプリケーションの一般的な出力を示しています。エージェントがMCPサーバーとやり取りし、
get_alertsツールを利用する様子を確認できます。
- MCP Inspector: このスクリーンショットは、MCP Inspectorで使用される一般的なweather.jsonを示しています。
お問い合わせ
お問い合わせやサポートについては、以下までご連絡ください。
- メール: [email protected]
- 個人ウェブサイト: aiankit.com
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。