(Demo) MCP Server for MeteoSwiss Data について
このプロジェクトは、MCPサーバー、エージェントスキル、予報評価を通じてMeteoSwissの気象データを提供します。スイスの予報、観測、花粉、気候記録、ウェブサイト情報を扱うAIアシスタントやエージェント向けで、構造化ツールとシェルスクリプトの両方で利用できます。
主な機能
- 01スイス各地の複数日予報
- 02現在の観測値と観測所検索
- 03花粉情報と過去の気候データ
- 04MeteoSwissサイトの検索・取得
- 05ファジーマッチング、ジオコーディング、キャッシュ
活用シーン
- 01スイスの都市や郵便番号で予報を確認
- 02名前や座標から観測所を検索
- 03花粉量や長期気候データを確認
- 04MeteoSwissサイトの情報を検索・取得
MCP 対応
MCPサーバーは、予報、現在の天気、観測所、花粉、気候データ、MeteoSwissサイトの検索・取得を行う7つの構造化ツールを提供します。ホスト型サービスとDockerによるセルフホストに対応しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
🌦️ MeteoSwiss LLM ツール
AI アシスタント向けのスイスの気象データです。MeteoSwiss Open Government Data(OGD)を利用しており、MeteoSwiss のアプリやウェブサイトと同じデータを提供します。無料で、API キーは不要です。
meteoswiss-mcp.ars.is — ホステッドサービスをすぐにお試しいただけます。セットアップは不要です。
このリポジトリは、設計上の問いに対する実例でもあります。AI エージェントに公開データセットへのアクセスを提供するには、どうすればよいでしょうか? 同じ MeteoSwiss データへのアクセスを、エージェントスキル(Markdown の指示と bash スクリプトで構成され、サーバー不要)と、MCP サーバー(構造化ツール、あいまい一致、キャッシュ、ホステッド)という2つの方法で実装しています。両方のアプローチを、スキルと MCP の比較事例で率直に比較しています。
3つ目の要素であるmeteoswiss-forecast-evalsは、評価主導のインターフェース設計を実証します。promptfooを使ったスイートで、13種類の LLM が予報 JSON をどれだけ適切に読み取れるかを測定し、実際の設計上の判断につなげました。つまり、UTC より現地時刻のタイムスタンプが優れており、時刻単位の検索では約100%、UTC では約0%のスコアでした。
ツールが提供する機能:
- 複数日にわたる予報:スイス国内約6000か所(郵便番号、観測所、地名)
- リアルタイム観測値:約300か所の観測所(気象全般が約160か所、降水のみが約140か所)から、10分ごとに更新
- 観測所の検索:名称、カントン、GPS 座標で検索
- 花粉のモニタリング:スイス全土約15か所の観測所から取得
- 気候時系列データ:国立基礎気候観測網(NBCN)の数十年にわたるデータ
- MeteoSwiss ウェブサイトの検索とコンテンツ取得
このリポジトリが実証すること
- エージェントスキル —
curl/awk/jqを使ってオープンデータを直接取得する方法をエージェントに教えます。約630行の Markdown と bash で構成され、インフラは不要です。→ packages/meteoswiss-skills - MCP サーバー — 同じデータを、構造化された検証済みツールとして提供します。観測所のあいまい一致、ジオコーディング、TTL 階層型キャッシュ、実際のテストスイート、Docker、ホステッドインスタンスを備えています。→ packages/meteoswiss-mcp
- 評価主導のインターフェース設計 — ツールの出力を言語モデル向けのインターフェースとして扱い、公開前にその読みやすさを測定します。→ packages/meteoswiss-forecast-evals
比較はこちら:スキルと MCP サーバー:AI エージェントに同じデータを提供する2つの方法。
アプローチを選ぶ
どちらのアプローチでも、同じ天気に関する質問に回答できます。インストールするものは、エージェントに応じて選んでください。
| MCP サーバー | エージェントスキル | |
|---|---|---|
| 概要 | MCP 経由で 7 つの構造化ツールを公開するスタンドアロンサーバー | Markdown の指示と、エージェントが直接実行する 5 つの bash スクリプト |
| 対応環境 | Claude Desktop、Claude.ai、Cursor、あらゆる MCP クライアント | Claude Code、Cursor、シェルアクセスが可能なあらゆるエージェント |
| 対応範囲 | 予報、現在の天気、観測所、花粉、気候時系列、ウェブサイト検索 | 予報、現在の天気、観測所、花粉 |
| その他 | あいまい検索、ジオコーディング、キャッシュ、DE/FR/IT のプロンプト、構造化 JSON | サーバー不要、Node.js 不要。curl、awk、jq のみ |
| 規模 | 約 6.6k 行の TypeScript。CI でテスト済み | 約 630 行の Markdown と bash |
| インストール | ワンライナー(ホスト型)、npm、または Docker | プラグインマーケットプレイス、Skills CLI、またはシンボリックリンク |
詳細な比較(同等性マトリクス、エンジニアリング上のトレードオフ、コンテキストコスト、選び方)については、docs/skill-vs-mcp.md をご覧ください。
MCP サーバー — クイックスタート
ホスト型のインスタンスを使用します(インストール不要)。
# Claude Code
claude mcp add meteoswiss https://meteoswiss-mcp.ars.is/mcp
Cursor の場合は、Cursor Directory からインストールするか、Settings → MCP から手動で追加してください。
または、Docker でセルフホストできます。
docker run -p 3000:3000 ghcr.io/eins78/meteoswiss-mcp:latest
Claude Desktop のセットアップ、環境変数、詳細なドキュメントについては、meteoswiss-mcp README をご覧ください。
エージェントスキル — クイックスタート
Claude Code のプラグインマーケットプレイスからインストールします。
/plugin marketplace add eins78/meteoswiss-llm-tools
/plugin install meteoswiss-skills@meteoswiss-marketplace
または、Skills CLI を使用します。
pnpx skills add https://github.com/eins78/meteoswiss-llm-tools.git#packages/meteoswiss-skills --global --agent claude-code --all
手動インストールと詳細については、meteoswiss-skills README をご覧ください。
利用可能なツール(MCP サーバー)
| ツール | 説明 |
|---|---|
meteoswissLocalForecast | 郵便番号、観測所、または地名による複数日予報 |
meteoswissCurrentWeather | リアルタイムの観測値(気温、風、湿度、気圧) |
meteoswissStations | 名前、州、または座標から観測所ネットワークを検索 |
meteoswissPollenData | 観測所の花粉濃度データ |
meteoswissClimateData | NBCN 気候時系列 — 数十年前までさかのぼる気温、降水量、日照時間、気候指標 |
search | MeteoSwiss ウェブサイトのコンテンツを検索(DE、FR、IT、EN) |
fetch | MeteoSwiss のページから全コンテンツを取得 |
質問例
どちらのアプローチでも利用できます。スイスの 4 つの言語のいずれかで質問してください。
- 「今週のチューリッヒの天気予報は?」
- 「Wie wird das Wetter in Bern morgen?」
- 「Quelle est la météo à Genève?」
- 「Che tempo fa a Lugano?」
パッケージ
| パッケージ | バージョン | 説明 |
|---|---|---|
meteoswiss-mcp | 構造化ツール、あいまい検索、ジオコーディングを備えた MCP サーバー | |
meteoswiss-skills | 1.0.0 | エージェントスキル — サーバー不要の直接 HTTP アクセス |
meteoswiss-forecast-evals | — | 予報 JSON 形式向け LLM 評価スイート(スタンドアロン。ワークスペースのメンバーではありません) |
ドキュメント
- スキルと MCP の比較事例 — 2 つのアプローチを率直に比較します
- 評価結果:予報 JSON の理解 — 現地時刻と UTC の比較テスト
- MCP サーバーのユーザーガイド
- ドキュメントの目次
開発
git clone https://github.com/eins78/meteoswiss-llm-tools.git
cd meteoswiss-llm-tools
nvm use && pnpm install
パッケージ固有のコマンドについては、各パッケージの README をご覧ください。このリポジトリでは、バージョン管理に changesets を使用しています。
手動で作成した一時点のテストレポート(ライブ MCP ツールのテスト合格記録など)は、docs/test-reports/ にあります。
データソース
すべての気象データは、スイス連邦気象気候局が公式に提供する無料データ、MeteoSwiss Open Government Data (OGD) から取得しています。同じデータが MeteoSwiss のアプリとウェブサイトでも使用されています。
ライセンス
CC0-1.0 — パブリックドメイン
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。