met-mcp について
met-mcpは、MET Norway(Yr)の天気などのデータを提供するMCPサーバーで、場所ごとの予報や観測を必要とするクライアント向けです。世界各地の予報に加え、北欧限定のレーダー、警報、沿岸データを扱います。
主な機能
- 01地名を座標に変換
- 02世界各地の時間別予報を取得
- 03北欧のレーダー降水ナウキャストを取得
- 04ノルウェーの気象警報を照会
- 05日照イベントと沿岸の海洋予報を取得
- 06観測所の検索と過去の観測データの取得
活用シーン
- 01目的地の時間別予報を確認
- 02ノルウェーの気象警報を調べる
- 03近隣観測所の過去データを確認
- 04ノルウェー沿岸の波高と海水温を調べる
MCP 対応
ローカルのstdioサーバーまたはリモートのStreamable HTTPエンドポイントを通じて、MCPクライアントに天気ツールを公開します。両方の実行方式で同じツール定義を使用します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://met-mcp.met-mcp-worker.workers.dev/mcpclaude mcp add --transport http trondbjoroy-met https://met-mcp.met-mcp-worker.workers.dev/mcp{"mcpServers":{"trondbjoroy-met":{"type":"http","url":"https://met-mcp.met-mcp-worker.workers.dev/mcp"}}}Cursor で開く{"servers":{"trondbjoroy-met":{"type":"http","url":"https://met-mcp.met-mcp-worker.workers.dev/mcp"}}}VS Code で開く{"mcpServers":{"trondbjoroy-met":{"type":"http","url":"https://met-mcp.met-mcp-worker.workers.dev/mcp"}}}{"mcpServers":{"trondbjoroy-met":{"serverUrl":"https://met-mcp.met-mcp-worker.workers.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
8| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | はい | 地名。例:“Bergen”または“Oslo, Norway” |
| count | integer | いいえ | 返す一致項目の最大数 |
詳細
met-mcp
MET Norway(Yr)の天気予報を提供する MCP サーバーです。学習プロジェクトとして作成しました。
次の3つの方法で利用できます。
- npm:
met-mcp— stdio 経由でローカル実行 - リモート:
https://met-mcp.met-mcp-worker.workers.dev/mcp— Cloudflare Workers 上の Streamable HTTP。claude.ai コネクターとして追加できます - MCP レジストリ:
io.github.trondbjoroy/met-mcp
ツール
geocode_location(name, count)— 地名の座標を検索します。MET にはジオコーディング API がないため、無料の Open-Meteo ジオコーダーを使用します。get_forecast(latitude, longitude, hours)— MET Locationforecast 2.0 による時間ごとの予報です。世界中で利用できますが、北欧で最も精度が高くなります。get_nowcast(latitude, longitude)— 今後2時間のレーダーに基づく降水情報です。北欧のみで利用できます。get_weather_alerts(latitude?, longitude?)— ノルウェーの公式気象警報(MetAlerts)です。ノルウェー全域の情報を取得するには、座標を省略してください。get_sun_events(latitude, longitude, date, utc_offset)— 日の出、日の入り、南中時刻です。世界中で利用できます。get_ocean_forecast(latitude, longitude, hours)— ノルウェー沿岸の波高と海水温です。find_weather_stations(latitude, longitude, count)— 最寄りの公式気象観測所(Frost)を検索します。get_historical_weather(station_id, from, to, elements)— Frost アーカイブから日別の過去の観測データを取得します。観測所によっては100年以上前までさかのぼれます。
2つの Frost ツールを使うには、無料のクライアント ID を https://frost.met.no/auth/requestCredentials.html から取得し、FROST_CLIENT_ID 環境変数(または Worker の Cloudflare シークレット)に設定する必要があります。それ以外のツールに必要な設定はありません。
ツールの定義は src/tools.ts にあり、stdio サーバーと Worker で共有されています。
ビルドとテスト
npm install
npm run build
npm test
テストでは、stdio 経由でサーバーを起動し、実際の API に対して両方のツールを呼び出します。
Claude Code での使用
claude mcp add met-weather -- node C:\Users\trond\met-mcp\dist\index.js
次に Claude に「明日のベルゲンの天気は?」と尋ねます。
MET の利用規約
- 連絡先情報を含む識別可能な User-Agent を送信してください。
MET_USER_AGENT環境変数に、たとえばmet-mcp/0.1.0 [email protected]を設定します。 - 座標の小数点以下は最大4桁にしてください。サーバーが丸め処理を行います。
- データライセンス:NLOD / CC BY 4.0。データを表示する際は MET Norway をクレジット表記してください。
リモート版
worker/ には Cloudflare Workers へのデプロイ設定があります。createMcpHandler(MCP SDK v2)を使い、同じ2つのツールを MCP Streamable HTTP 経由で提供します。worker/ から npm run dev で開発し、npm run deploy でデプロイできます。
仕組み
src/index.tsがサーバー全体です。stdio 経由で MCP を処理し、stdin/stdout 上で JSON-RPC をやり取りします。- 各ツールでは Zod による入力スキーマを定義します。MCP クライアント(Claude)がスキーマを読み取り、引数を検証します。
- ツールの結果は
contentブロックです。このサーバーは JSON をテキストとして返し、LLM に必要な内容だけに絞り込みます。MET の生のレスポンスには約90個のタイムステップがあり、さらに多くのフィールドが含まれています。 console.logで stdout に書き込まないでください。プロトコルのストリームが破損します。ログは stderr に出力してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。