Gribstream MCP について
Gribstream MCPは、NOAAやECMWFのモデルデータを含むGribStreamの天気予報を検索・照会するホスト型サーバーです。データセットや変数の選択、リクエストの検証、OAuth認証後のライブ照会に対応し、大きな結果はファイルとして取得できます。
主な機能
- 01予報データセットとメタデータの閲覧
- 02変数、レベル、セレクターの検索
- 03APIリクエストの作成と検証
- 04OAuth認証後の時系列・モデルラン照会
- 05大きな結果をダウンロード可能なファイルで取得
活用シーン
- 01地域と予報期間に応じたデータセットの選択
- 02モデルラン間で天気予報を比較
- 03分析用の高密度予報グリッドの取得
MCP 対応
ホスト型Streamable HTTPサーバーは、データセットの検索、リクエストの作成・検証、気象データ照会のためのツール、プロンプト、リソースを提供します。時系列およびモデルランのライブ照会にはOAuthが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gribstream.com/mcpclaude mcp add --transport http gribstream https://gribstream.com/mcp{"mcpServers":{"gribstream":{"type":"http","url":"https://gribstream.com/mcp"}}}Cursor で開く{"servers":{"gribstream":{"type":"http","url":"https://gribstream.com/mcp"}}}VS Code で開く{"mcpServers":{"gribstream":{"type":"http","url":"https://gribstream.com/mcp"}}}{"mcpServers":{"gribstream":{"serverUrl":"https://gribstream.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
12| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| accept | enum | いいえ | 最終的な HTTP リクエストで希望するレスポンス形式。高密度グリッドや大規模な型付き表形式の結果には、application/vnd.apache.parquet を優先してください。text/csv | application/json | application/ndjson | application/x-ndjson | application/vnd.apache.parquet | application/x-parquet | application/parquet |
| dataset | string | はい | データセットコード。例:gfs、ifsoper、nbm、hrrr、urma。 |
| request | object | はい | Runs リクエスト本文。正確な UTC モデル実行時刻には timesList を使用します。または、半開区間 forecastedFrom+forecastedUntil を使用してください。forecastedFrom は含まれ、forecastedUntil は含まれません。forecastedFrom は forecastedUntil より前である必要があります。上下限が等しい場合、時刻は選択されません。座標は request.coordinates に、変数セレクターは request.variables に指定してください。 |
| request.asOf | string | いいえ | ユーザーがバックテスト、過去の時点への遡及、当時判明していた情報、または過去のモデル実行の締め切りを明示的に求めない限り、asOf を設定しないでください。最新または最良の予報を取得する場合は asOf を省略してください。締め切りより後に実行された予報が除外され、最近のデータが欠落しているように見えることがあります。これは /timeseries の UTC モデル実行時刻の締め切りであり、リアルタイム API の利用可能時刻を示すタイムスタンプではありません。 |
| request.coordinates | array | いいえ | 地点座標。この正確なフィールド名が必須です。location、coord、coords、トップレベルの latitude/longitude、または単数形の代替名は使用しないでください。 |
| request.expressions | array | いいえ | 変数エイリアスから評価される派生変数(任意)。 |
| request.filter | object | いいえ | 変数エイリアスから評価される行フィルター式(任意)。 |
| request.filter.alias | string | いいえ | 式の出力フィールド名。 |
| request.filter.expression | string | いいえ | 式のテキスト。元のセレクター名ではなく、変数エイリアスを参照します。 |
| request.filter.hidden | boolean | いいえ | 任意:レスポンス出力でこの式を非表示にします。 |
| request.forecastedFrom | string | いいえ | /runs の UTC モデル実行時刻範囲の開始(含む)。forecastedUntil より前である必要があります。1 つの正確なモデル実行時刻には timesList を使用します。 |
| request.forecastedUntil | string | いいえ | /runs の UTC モデル実行時刻範囲の終了(含まない)。forecastedFrom より後である必要があります。境界が等しい場合、時刻は選択されません。 |
| request.fromTime | string | いいえ | /timeseries の UTC 有効時刻範囲の開始(含む)。例:2025-05-01T00:00:00Z。untilTime より前である必要があります。1 つの正確な有効時刻には timesList を使用します。 |
| request.grid | object | いいえ | 任意の規則的な緯度・経度グリッド。coordinates の代わり、または追加で使用します。API は指定された間隔を維持し、細かいグリッドの解像度を暗黙に粗くすることはありません。展開後の座標数のデフォルト上限は 120000 です。アカウントのプランやトークンの設定によって最大値が異なる場合があり、上限は 1050000 です。これはネイティブ解像度 0.25 度の全球 GFS グリッド全体を扱える値です。応答が大きすぎる場合、エラーに適用上限が示されます。密なグリッドでは、空間分割を検討する前に URL 配信を使用してください。 |
| request.grid.maxLatitude | number | はい | |
| request.grid.maxLongitude | number | はい | |
| request.grid.minLatitude | number | はい | |
| request.grid.minLongitude | number | はい | |
| request.grid.step | number | はい | グリッド間隔(度)。0 より大きい値を指定してください。 |
| request.includeMetadata | array | いいえ | 任意の追加行メタデータ。サポートされる値は index_updated_at のみです。forecasted_at や forecasted_time は通常のレスポンス列として自動的に返されるため、ここでは要求しないでください。 |
| request.maxHorizon | integer | いいえ | 任意の最大リードタイム(時間)。 |
| request.members | array | いいえ | 任意のアンサンブルメンバー番号。 |
| request.minHorizon | integer | いいえ | 任意の最小リードタイム(時間)。 |
| request.timesList | array | いいえ | /timeseries の正確な UTC 有効時刻、または /runs の正確な UTC モデル実行時刻。1 つの正確な時刻を指定する場合、範囲境界を同じ値にせず、これを使用します。 |
| request.untilTime | string | いいえ | /timeseries の UTC 有効時刻範囲の終了(含まない)。例:2025-05-01T06:00:00Z。fromTime より後である必要があります。境界が等しい場合、時刻は選択されません。 |
| request.variables | array | いいえ | 変数セレクター。このフィールド名を正確に使用する必要があります。parameters、parameter、variable、selector、selectors は使用しないでください。値には、カタログツールで見つけた大文字・小文字が完全に一致するセレクタータプルを指定します。 |
詳細
GribStream Weather MCP
GribStream Weather MCP は、GribStream の気象予報データ(NOAA および ECMWF のモデル出力を含む)に AI がアクセスするための、ホスト型 Model Context Protocol サーバーです。
AI エージェントが NOAA GFS、HRRR、NBM や ECMWF IFS などの予報データセットを見つけたり、正確な予報変数とレベルを特定したり、リクエスト本文を検証したり、実行可能な GribStream Weather API リクエストを作成したりできます。また、OAuth 認証後には、ライブの読み取り専用気象クエリを実行できます。
GribStream 公式気象 API のホームページ:
https://gribstream.com/
ホスト型 MCP エンドポイント:
https://gribstream.com/mcp
ユースケース
次のようなことを行う AI ツールには、GribStream MCP をご利用ください。
- GribStream の公開気象データセットを一覧表示する。
- 地域、予測期間、気象タスクに応じて NOAA、ECMWF、その他の予報モデルを選択する。
- GribStream が提供する GFS、HRRR、NBM、IFS などの数値気象予報モデルデータをクエリする。
- 正確な変数セレクター、レベル、エイリアスを見つける。
- 有効時刻ごとの値を取得する
/timeseriesリクエストを作成する。 - モデル実行間で予報を比較する
/runsリクエストを作成する。 - 実行前に GribStream API リクエストを検証する。
- OAuth 認証後にライブの
/timeseriesまたは/runsクエリを実行する。 - 完全な結果を会話に埋め込まず、密度の高い予報グリッドをダウンロード可能なファイルとして取得する。
- GribStream Weather API 用のコピーして貼り付けられる
curlコマンドを生成する。
ホスト型 MCP サーバーは、OAuth 認証前に、データセットの検出、セレクターの検索、リクエストの作成、検証を行うツールを公開します。ライブの /timeseries および /runs クエリツールには OAuth 認証が必要です。AI クライアントがメタデータのタスクとライブデータクエリのタスクを適切に振り分けられるよう、ツールの説明は NO AUTH / PUBLIC / READ-ONLY または AUTH REQUIRED / DATA QUERY のいずれかで始まります。クライアントが OAuth 経由で接続すると、GribStream はユーザーにサインインし、有効な GribStream API トークンを選択するよう求めます。MCP アクセストークンは選択された API トークンにスコープが限定され、未加工の API トークンが MCP クライアントに表示されることはありません。
接続
リモート Streamable HTTP に対応する MCP クライアントでは、ホスト型エンドポイントを以下のとおりそのまま使用してください。
https://gribstream.com/mcp
URL の末尾に句読点を付けないでください。
一般的な設定形式:
{
"mcpServers": {
"gribstream": {
"url": "https://gribstream.com/mcp"
}
}
}
LobeHub クイックインポート設定:
{
"mcpServers": {
"gribstream": {
"type": "http",
"url": "https://gribstream.com/mcp"
}
}
}
クライアントによっては、トランスポートフィールドを明示的に指定する必要があります。
{
"mcpServers": {
"gribstream": {
"type": "streamable-http",
"url": "https://gribstream.com/mcp"
}
}
}
OAuth
ライブクエリツールには OAuth が必要です。ほとんどの MCP クライアントは、コネクターのセットアップ時、またはクライアントが認証が必要なツールを要求したときに、ホスト型エンドポイントから OAuth を自動的に検出します。手動で OAuth 2.0 の項目を入力するよう求められた場合は、以下を使用してください。
Authorization URL: https://gribstream.com/authorize
Token URL: https://gribstream.com/token
Client ID: gribstream-mcp-public
Client Secret: leave empty; do not enter a value
Scopes: leave empty
Resource or audience, if requested: https://gribstream.com/mcp
OAuth 検出エンドポイント:
https://gribstream.com/.well-known/oauth-protected-resource/mcp
https://gribstream.com/.well-known/oauth-authorization-server
OAuth クライアントはパブリッククライアントであり、token_endpoint_auth_method を none に設定して PKCE を使用します。ネイティブデスクトップクライアントでは、http://localhost:{port}/...、http://127.0.0.1:{port}/...、http://[::1]:{port}/... などのループバックリダイレクト URI を使用できます。空でないクライアントシークレットを必須とするセットアップフォームは、コンフィデンシャルクライアントフローを求めているため、このパブリック MCP OAuth フローとは互換性がありません。
サーバーの機能
LobeHub などの MCP クローラーは、MCP ツールを「スキル」と呼ぶことがあります。稼働中の GribStream MCP サーバーは、以下のスキル/ツール、プロンプト、リソースを公開します。
スキル一覧
| 名前 | 認証 | 説明 |
|---|---|---|
gribstream_list_datasets | 認証不要、公開、読み取り専用 | 公開されている GribStream のデータセットとメタデータを一覧表示します。 |
gribstream_get_dataset | 認証不要、公開、読み取り専用 | 1 つのデータセットコードの公開メタデータ全体を取得します。 |
gribstream_list_parameters | 認証不要、公開、読み取り専用 | 1 つのデータセットのパラメーター概要を一覧表示します。 |
gribstream_get_parameter | 認証不要、公開、読み取り専用 | 1 つのデータセットパラメーターの詳細なメタデータと正確なセレクターのバリエーションを取得します。 |
gribstream_list_shared_parameters | 認証不要、公開、読み取り専用 | 正規化された共有パラメータープリセットを一覧表示します。 |
gribstream_resolve_shared_parameter | 認証不要、公開、読み取り専用 | 1 つの共有パラメータープリセットをネイティブ変数と式に解決します。 |
gribstream_get_expression_reference | 認証不要、公開、読み取り専用 | GribStream の式言語のルール、例、数学関数を取得します。 |
gribstream_build_timeseries_request | 認証不要、公開、読み取り専用 | 送信せずに、コピーして貼り付けられる認証済み /timeseries API リクエストを作成し、検証します。 |
gribstream_build_runs_request | 認証不要、公開、読み取り専用 | 送信せずに、コピーして貼り付けられる認証済み /runs API リクエストを作成し、検証します。 |
gribstream_validate_request | 認証不要、公開、読み取り専用 | 気象値を照会せずに、リクエストの形式、セレクタータプル、式の構文を検証します。 |
gribstream_query_timeseries | OAuth 必須、データクエリ | 認証済みの /timeseries リクエストを実行し、実際の気象値を返します。 |
gribstream_query_runs | OAuth 必須、データクエリ | 認証済みの /runs リクエストを実行し、モデルの実行間で実際の気象値を返します。 |
公開読み取り専用のスキル/ツールは、OAuth の前でも表示されます。OAuth によるライブクエリのスキル/ツールは、クライアントが OAuth を完了するか、有効な Authorization: Bearer トークンを送信するまで、tools/list から非表示になる場合があります。
プロンプト一覧
| 名前 | 説明 |
|---|---|
build_gribstream_api_request | 気象に関する質問を、検証済みの GribStream /timeseries または /runs リクエストと実行可能な curl に変換します。 |
build_gfs_forecast_request | 点またはグリッドに対する一般的な予報変数について、検証済みの GFS リクエストを作成します。 |
build_historical_forecast_request | アーカイブ済みの予報、またはモデル実行時刻のカットオフで選択した予報のリクエストを作成します。 |
create_grid_request | 点座標ではなく、緯度/経度グリッドを対象とする GribStream リクエストを作成します。 |
compare_forecast_runs | モデル予報を実行間またはリードタイム間で比較するための /runs リクエストを作成します。 |
choose_weather_dataset | 地域、予報期間、気象シグナル、または予報タスクに適した GribStream データセットを選択します。 |
find_weather_variable | 気象シグナルに対応する正確なデータセットパラメーターセレクターを検索します。 |
リソース一覧
| URI | MIME タイプ | 説明 |
|---|---|---|
gribstream://openapi | application/yaml | 機械可読な GribStream OpenAPI 仕様。 |
gribstream://skill/gribstream-query | text/markdown | GribStream を使用する AI ツール向けの、ベンダーに依存しない動作指示。 |
ライブクエリの出力
認証済みのライブクエリツールでは、CSV、JSON、NDJSON、Parquet の結果に対応しています。小規模な CSV、JSON、NDJSON の結果はインラインで返せます。データ量の多いグリッドや大規模な結果を取得するには、delivery=url を設定すると、完全なファイルへの有効期限付き HTTPS resource_link が返されます。
- URL 配信は CSV、JSON、NDJSON、Parquet に対応しています。Parquet は常に URL 配信になります。
- API トークンを使わずに、署名付き URL をそのまま一度だけダウンロードしてください。これにより MCP の結果が消費されます。GribStream API に直接リクエストするわけではありません。
- 10 MB の
max_bytes制限はインラインの MCP 結果にのみ適用されます。URL アーティファクトにはサーバー側で設定された別のサイズ制限があるため、delivery=urlを使う場合はmax_bytesを省略してください。 - データ量の多いグリッドでは、互換性のあるリーダーがすでにインストールされている場合は Parquet を優先し、それ以外の場合は
delivery=urlを指定した CSV を使用してください。1 件の結果を取得するためだけに依存関係をインストールしたり、Parquet パーサーを作成したりしないでください。 - グリッドへのリクエストは 1 回にし、実際にリクエストまたはアーティファクトのサイズエラーが発生した場合にのみ分割してください。分割が必要な場合は、まず時間、次に変数、最後に空間で分割してください。
structuredContentには、該当する場合、content_type、rows、bytes、columns、schema、delivery、cache_hit、signed_url_expires_at、suggested_filenameなどのメタデータが含まれます。- インラインの表形式の結果には、プレビューに加えて
request_hash、response_hash、result_hashも含まれます。複数の結果を保存する場合はsuggested_filenameを使用し、繰り返しのリクエストや比較によって以前のファイルが上書きされないようにしてください。 - 行は並列抽出からストリーミングされるため、並べ替え順は保証されません。時系列をプロットまたは比較する前に、
/timeseriesではforecasted_timeで、/runsではforecasted_atとforecasted_timeで並べ替えてください。
リンク
- GribStream 公式気象 API ホームページ:
https://gribstream.com/ - エンドポイント:
https://gribstream.com/mcp - MCP ページ:
https://gribstream.com/mcp - アイコン:
https://gribstream.com/gribstream_small.png - OpenAPI:
https://gribstream.com/docs/openapi.yaml - AI セットアップドキュメント:
https://gribstream.com/ai - API ダッシュボード:
https://gribstream.com/app/dashboard
試してみる
GribStream MCP を AI ツールに接続した後、次のように尋ねてください。
Use GribStream MCP to build a GFS 2m temperature timeseries request for Houston for tomorrow at 12:00 UTC. Validate the request and return a runnable curl command.
クライアントで OAuth が完了している場合は、次のクエリを実行するように依頼することもできます。
Use GribStream MCP to run a GFS 2m temperature timeseries query for Houston for tomorrow at 12:00 UTC and return CSV.
データ量の多いグリッドを可視化する場合:
Using GribStream, plot the latest available ICON-D2 2 metre temperature forecast over Germany at 0.025 degree resolution as a beautiful PNG.
または:
Use GribStream MCP to find the best dataset for short-range precipitation forecasts in the continental United States. Explain the tradeoffs and build a validated example request.
その他の例:
GribStream API 自体については、OpenAPI 仕様を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。