Meteo について
Meteoは、MCP Apps対応ホスト向けのRust製MCP天気サーバーです。APIキー不要でOpen-Meteoを利用し、会話内のインタラクティブなダッシュボードに天気と大気質を表示します。
主な機能
- 01現在の天気と大気質
- 0224時間の気温・降水量チャート
- 037日間の予報
- 04座標による再取得に対応したダッシュボード
- 05APIキー不要
活用シーン
- 01都市の現在の天気と予報の確認
- 02PM2.5とPM10の数値の確認
- 03プリセット座標でのダッシュボード更新
MCP 対応
MCPクライアントに天気ツールとインタラクティブなダッシュボードリソースを公開します。ツールは都市名による天気・大気質データを返し、アプリから座標指定で更新できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
meteo-mcp-rs
Rust で記述された、高速で API キー不要の**モデルコンテキストプロトコル(MCP)**天気予報サーバーです。Open-Meteo API を利用した、インタラクティブな MCP App(ui://meteo/dashboard)を備えています。
▶ ライブデモ — 実際のダッシュボードが、ライブの Open-Meteo データを使ってブラウザー上で動作します。
Claude(または MCP Apps 対応の任意のホスト)に天気を尋ねると、現在のテレメトリー、欧州大気質指数(PM2.5/PM10)、24 時間の気温と降水量のグラフ、7 日間の予報を含むインタラクティブなダッシュボードが表示されます。API キーや外部の Node/Python ランタイムは不要で、会話内に直接描画されます。
特長
- 自己完結型の単一バイナリ:
ui/dashboard.htmlはコンパイル時に埋め込まれます(include_str!)。実行時のアセット依存関係はありません。 - API キー不要:Open-Meteo の無料の Geocoding、Forecast、Air Quality API を使用します。
- MCP Apps(
2026-01-26)に準拠:- UI リソース
ui://meteo/dashboardを MIME タイプtext/html;profile=mcp-appで提供します。 - ツールに
_meta.ui.resourceUriおよび_meta.ui.visibilityメタデータを付与します。 - ホストのテーマ変数(
light/dark)、ResizeObserverによる自動サイズ調整、インライン/全画面表示モードに対応しています。
- UI リソース
- インタラクティブな UI からサーバーへの更新:
get_weather_dashboard(visibility: ["model", "app"]):都市名をジオコーディングし、天気と大気質のテレメトリー全体を返します。refresh_by_coords(visibility: ["app"]):アプリ専用の非表示ツールです。LLM のツール一覧を煩雑にすることなく、座標による即時更新や都市のプリセットピルを利用できます。
- 適切な縮退動作:大気質のテレメトリーが一時的に利用できない場合でも、天気予報は正常に取得できます。
アーキテクチャ
┌──────────────────────────────┐ stdio (JSON-RPC) ┌──────────────────────────────┐
│ MCP Host (Claude / IDE) │ ◄────────────────────────────► │ meteo-mcp-rs │
│ │ │ │
│ ┌────────────────────────┐ │ tools/call + structuredData │ • OpenMeteoClient (reqwest) │
│ │ ui://meteo/dashboard │ │ ◄────────────────────────────► │ • MeteoServer (rmcp 3.10) │
│ │ (Sandboxed Iframe) │ │ resources/read (MCP App HTML) │ • Embedded ui/dashboard.html│
│ └────────────────────────┘ │ └──────────────┬───────────────┘
└──────────────────────────────┘ │ HTTPS (rustls)
▼
Open-Meteo Public APIs
(Geocoding / Forecast / Air Quality)
クイックスタート
Homebrew(macOS / Linux)
brew install gohyperdev/tap/meteo-mcp-rs
ビルド済みバイナリをダウンロード
お使いのプラットフォーム用の最新のアーカイブを GitHub Releases からダウンロードしてください(各リリースには SHA256SUMS.txt も含まれています)。
| プラットフォーム | アーキテクチャ | アーカイブ |
|---|---|---|
| macOS | Apple Silicon(arm64) | meteo-mcp-rs-<version>-aarch64-apple-darwin.tar.gz |
| macOS | Intel(x86_64) | meteo-mcp-rs-<version>-x86_64-apple-darwin.tar.gz |
| Linux | x86_64 | meteo-mcp-rs-<version>-x86_64-unknown-linux-gnu.tar.gz |
| Linux | arm64(aarch64) | meteo-mcp-rs-<version>-aarch64-unknown-linux-gnu.tar.gz |
| Windows | x86_64 | meteo-mcp-rs-<version>-x86_64-pc-windows-msvc.zip |
macOS / Linux へのインストール例(<version> と <target> を置き換えてください):
curl -fsSL "https://github.com/gohyperdev/meteo-mcp-rs/releases/latest/download/meteo-mcp-rs-v0.1.1-aarch64-apple-darwin.tar.gz" | tar -xz
sudo mv meteo-mcp-rs-v0.1.1-aarch64-apple-darwin/meteo-mcp-rs /usr/local/bin/
macOS で Gatekeeper によって署名されていないダウンロード済みバイナリがブロックされる場合:
xattr -d com.apple.quarantine /usr/local/bin/meteo-mcp-rs
ソースからビルド
Rust ツールチェーン(rustc 1.88 以降/edition 2024)が必要です。
git clone https://github.com/gohyperdev/meteo-mcp-rs.git
cd meteo-mcp-rs
cargo build --release
バイナリは target/release/meteo-mcp-rs にコンパイルされます。
Cargo でインストール
crates.io から(ソースからコンパイルするため、Rust ツールチェーンが必要です。--locked を指定すると、リリースのテストに使用された正確な依存関係のバージョンでビルドされます):
cargo install --locked meteo-mcp-rs
cargo-binstall を使用する場合(GitHub Releases からビルド済みバイナリをダウンロードするため、コンパイルは不要です):
cargo binstall meteo-mcp-rs
または、リポジトリから直接インストールします:
cargo install --git https://github.com/gohyperdev/meteo-mcp-rs
Claude Desktop で設定
claude_desktop_config.json に追加します:
{
"mcpServers": {
"meteo": {
"command": "/absolute/path/to/meteo-mcp-rs"
}
}
}
Claude Code で設定
claude mcp add meteo /absolute/path/to/meteo-mcp-rs
MCP Inspector でテスト
npx @modelcontextprotocol/inspector ./target/release/meteo-mcp-rs
ツールとリソース
ツール
| ツール | 表示対象 | 引数 | 説明 |
|---|---|---|---|
get_weather_dashboard | ["model", "app"] | city: string | 都市のジオコーディングを行い、現在の天気、24 時間の時間別予報、7 日間予報、EU AQI のテレメトリを返します。 |
refresh_by_coords | ["app"] | name: string, latitude: number, longitude: number | ジオコーディングせずに、プリセット都市を更新または切り替えるためにインタラクティブ UI が使用する、アプリ専用のツールです。 |
リソース
| URI | MIME タイプ | 説明 |
|---|---|---|
ui://meteo/dashboard | text/html;profile=mcp-app | 自己完結型の HTML/CSS/SVG/JS インタラクティブ天気ダッシュボード(include_str!)。 |
開発
# Check formatting
cargo fmt --all -- --check
# Lint
cargo clippy --all-targets -- -D warnings
# Run unit & mock-HTTP integration tests
cargo test
# Run with debug logs (written to stderr; stdout stays reserved for MCP JSON-RPC)
RUST_LOG=meteo_mcp_rs=debug cargo run
リンク
- GitHub リリース — ビルド済みバイナリ +
SHA256SUMS.txt - crates.io
- MCP Registry 名:
mcp-name: io.github.gohyperdev/meteo-mcp-rs - Homebrew tap
- ライブデモ(GitHub Pages)
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。