weather について
weatherは、MCP Quickstart Resourcesリポジトリに含まれるシンプルな天気MCPサーバーの例で、5言語に対応しています。MCPサーバーの構築を学び、米国国立気象局の予報と警報をツールとして公開したい開発者向けです。
主な機能
- 01Python、TypeScript、Go、Rust、Rubyの例
- 02天気予報の取得ツール
- 03気象警報の取得ツール
- 04stdioによる通信
- 05サーバーとツール応答のスモークテスト
活用シーン
- 01天気MCPサーバーの実装学習
- 02予報・警報ツール呼び出しの試行
- 03言語ごとのサーバー例の比較
MCP 対応
米国国立気象局APIを利用する2つのMCPツール、get_forecastとget_alerts(TypeScriptではget-forecastとget-alerts)を提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| state | string | はい | 2 文字の州コード(例:CA、NY) |
詳細
MCP クイックスタートリソース
Model Context Protocol(MCP)のサーバーとクライアントのサンプルを、5つの言語で紹介します。以下の2つの公式チュートリアルに対応するサンプルです。
- MCP サーバーを構築する – 米国国立気象局の API を利用し、2つのツールを公開するシンプルな MCP 天気サーバー
- MCP クライアントを構築する – 任意の stdio サーバーに接続し、Claude がそのツールを呼び出せる、LLM を活用したチャットボット型 MCP クライアント
このリポジトリの内容
各サンプルはそれぞれ独立したディレクトリにあり、前提条件、セットアップ方法、実行方法を説明する README が含まれています。
| 言語 | 天気サーバー(MCP サーバー) | チャットボット(MCP クライアント) |
|---|---|---|
| Python | weather-server-python | mcp-client-python |
| TypeScript | weather-server-typescript | mcp-client-typescript |
| Go | weather-server-go | mcp-client-go |
| Rust | weather-server-rust | mcp-client-rust |
| Ruby | weather-server-ruby | mcp-client-ruby |
すべてのサーバーは stdio 経由で通信し、同じ2つのツール(get_forecast と get_alerts)を公開します(TypeScript では get-forecast と get-alerts)。
すべてのクライアントはサーバーを起動してツールを一覧表示し、Claude がツールを呼び出せる対話型チャットループを開始します。Python、TypeScript、Ruby のクライアントにはサーバースクリプトへのパスを指定し、Go と Rust のクライアントには実行するコマンドと引数を指定します。
注:これらのサンプルクライアントの実行には ANTHROPIC_API_KEY が必要です。キーがなくても、各クライアントは接続してサーバーのツールを一覧表示してから終了するため、認証情報なしで MCP の接続を確認できます。
言語を自由に組み合わせて使用できます。たとえば、Python クライアントから TypeScript サーバーを操作できます。各クライアントの README に、サポートされるサーバーの起動形式が記載されています。
tests ディレクトリには、CI でこれらのサンプルに対して実行されるスモークテストが含まれています。テストの仕組みについては、tests/README.md をご覧ください。
前提条件
各サンプルに必要なのは、それぞれの言語のツールチェーンだけです。リポジトリ全体で作業する場合(たとえば、スモークテストを実行する場合)は、次のものが必要です。
- Node.js 24+ と npm
- Python 3.10+ と uv
- Go 1.25+
- Rust 1.88+ と Cargo
- Ruby 3.4+ と Bundler
テストの実行
./tests/smoke-test.sh
スモークテストでは、すべてのサーバーが起動して MCP リクエストに応答すること(各ツールが公開するスキーマに照らして構造化されたツールの結果を検証することも含みます)、および Python、TypeScript、Ruby のクライアントがモックサーバーに接続してツールを一覧表示できることを確認します。GitHub Actions により、すべてのプルリクエストで自動的に実行されます。
貢献
貢献を歓迎します。変更を提出するには、次の手順に従ってください。
- リポジトリをフォークし、
mainからブランチを作成します。 - 変更を加えます。例はプロトコルを教えるためのものであり、本番サービスではないため、最小限に保ってください。
- 例の動作、セットアップ、または依存関係を変更した場合は、その例の README も変更内容に合わせて更新します。
./tests/smoke-test.shを実行し、テストが成功することを確認します。- 変更内容とその理由を説明して、
mainに対するプルリクエストを作成します。
より広範な Model Context Protocol の貢献ガイドラインに沿って、次の規約に従ってください。
- ドキュメントは明確かつ簡潔にし、技術的な正確さを保ってください。 適切な場合はコード例を含め、追加するコマンドやリンクをテストしてください。
- AI の支援を開示してください。 貢献の準備に何らかの AI の支援を利用した場合は、プルリクエストまたは Issue でその旨を記載してください。開示すべき内容については、AI_POLICY.md を参照してください。
- 敬意を持って対応してください。 このプロジェクトでは、MCP コミュニティの行動規範に従っています。懸念事項は [email protected] まで報告できます。
セキュリティに関する注意
これらの例は意図的に最小限の構成になっています。ネットワーク経由(HTTP/SSE/WebSocket)で MCP サーバーを公開する場合は、認証と基本的なセキュリティ強化(CORS の許可リスト、リクエストサイズの上限、タイムアウト、レート制限、ログの秘匿化)を追加してください。SECURITY.md を参照してください。
ライセンス
MCP プロジェクトは MIT License から Apache-2.0 への移行を進めています。新たなコードの貢献には Apache-2.0 が適用され、仕様を除くドキュメントには CC-BY-4.0 が適用されます。再ライセンスに同意していない作者による以前の貢献には、引き続き MIT License が適用されます。詳細な条件については、LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。