GribStream Weather MCP

com.gribstreamPublished by gribstream.comOfficial publisherv1.1.4Updated Nov 2, 2026

NOAA and ECMWF weather forecast MCP for discovery, validation, and GribStream OAuth queries.

VerifiedStreamable HTTPWeb executableLocation & LifestyleDeveloper ToolsData & Analytics

Overview

AI-generated overview

Hosted MCP server for NOAA and ECMWF weather forecast data: discover datasets, resolve variables, validate requests, and run live GribStream queries after…

What you can do
  • List and inspect forecast datasets, their coverage, cadence, horizon and grid geometry
  • List dataset parameters and shared parameter presets, and resolve a weather concept to native variables and expressions
  • Look up expression syntax and math functions for derived weather signals
  • Build and validate timeseries or runs API requests and curl commands without sending them
  • Run authenticated timeseries and runs queries returning CSV, JSON, NDJSON or Parquet, inline or as a signed download link
When to use it
Use it when an assistant needs numerical weather prediction data from NOAA GFS, HRRR, NBM, ECMWF IFS or similar models, whether to pick a dataset and exact variable selectors, to prepare a validated API request, or to fetch forecast values and compare model runs.
Requirements
A remote Streamable HTTP endpoint; no local install. Discovery, selector and validation tools work without authentication. Live query tools need OAuth sign-in to GribStream and selection of an active GribStream API token; the OAuth client is public and uses PKCE with an empty client secret.
Before you install
Live queries require a GribStream account and API token, which may be tied to paid usage. Query tools send requests to GribStream and return forecast data; large results are delivered as short-lived signed URLs that should be downloaded once. Rows are not guaranteed to be sorted, so sort before plotting or comparing.

Installation

In SourceWeft

  1. Open GribStream Weather MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.gribstream%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "gribstream-weather": {
      "type": "http",
      "url": "https://gribstream.com/mcp"
    }
  }
}

README

GribStream Weather MCP

[MCP Badge]

GribStream Weather MCP is a hosted Model Context Protocol server for AI access to weather forecast data from GribStream, including NOAA and ECMWF model output.

It helps AI agents discover forecast datasets such as NOAA GFS, HRRR, and NBM or ECMWF IFS, resolve exact forecast variables and levels, validate request bodies, build runnable GribStream Weather API requests, and execute live read-only weather queries after OAuth authorization.

Official GribStream weather API homepage:

text
https://gribstream.com/

Hosted MCP endpoint:

text
https://gribstream.com/mcp

Use Cases

Use GribStream MCP when you want an AI tool to:

  • List public GribStream weather datasets.
  • Choose a NOAA, ECMWF, or other forecast model for a region, horizon, or weather task.
  • Query GFS, HRRR, NBM, IFS, and other numerical weather prediction model data exposed by GribStream.
  • Find exact variable selectors, levels, and aliases.
  • Build a /timeseries request for values by valid time.
  • Build a /runs request to compare forecasts across model runs.
  • Validate a GribStream API request before running it.
  • Execute live /timeseries or /runs queries after OAuth authorization.
  • Retrieve dense forecast grids as downloadable files without embedding the complete result in the conversation.
  • Generate a copy-pasteable curl command for the GribStream Weather API.

The hosted MCP server exposes discovery, selector lookup, request building, and validation tools before OAuth. Live /timeseries and /runs query tools require OAuth. Tool descriptions begin with either NO AUTH / PUBLIC / READ-ONLY or AUTH REQUIRED / DATA QUERY so AI clients can route metadata tasks and live data-query tasks correctly. When a client connects through OAuth, GribStream asks the user to sign in and select an active GribStream API token. MCP access tokens are scoped to that selected API token, and the raw API token is not shown to the MCP client.

Connect

Use the hosted endpoint exactly as shown in any MCP client that supports remote Streamable HTTP:

text
https://gribstream.com/mcp

Do not include trailing punctuation in the URL.

Generic configuration shape:

json
{  "mcpServers": {    "gribstream": {      "url": "https://gribstream.com/mcp"    }  }}

LobeHub quick import configuration:

json
{  "mcpServers": {    "gribstream": {      "type": "http",      "url": "https://gribstream.com/mcp"    }  }}

Some clients require an explicit transport field:

json
{  "mcpServers": {    "gribstream": {      "type": "streamable-http",      "url": "https://gribstream.com/mcp"    }  }}

OAuth

OAuth is needed for live query tools. Most MCP clients should discover OAuth from the hosted endpoint automatically, either during connector setup or when the client requests authenticated tools. If a client asks for manual OAuth 2.0 fields, use:

text
Authorization URL: https://gribstream.com/authorizeToken URL: https://gribstream.com/tokenClient ID: gribstream-mcp-publicClient Secret: leave empty; do not enter a valueScopes: leave emptyResource or audience, if requested: https://gribstream.com/mcp

OAuth discovery endpoints:

text
https://gribstream.com/.well-known/oauth-protected-resource/mcphttps://gribstream.com/.well-known/oauth-authorization-server

The OAuth client is public and uses PKCE with token_endpoint_auth_method set to none. Native desktop clients may use loopback redirect URIs such as http://localhost:{port}/..., http://127.0.0.1:{port}/..., or http://[::1]:{port}/.... A setup form that requires a non-empty client secret is asking for a confidential-client flow and is not compatible with this public MCP OAuth flow.

Server Features

LobeHub and other MCP crawlers may call MCP tools "skills". The live GribStream MCP server exposes the following skills/tools, prompts, and resources.

Skill List

NameAuthDescription
gribstream_list_datasetsNo auth, public, read-onlyList public GribStream datasets and metadata.
gribstream_get_datasetNo auth, public, read-onlyGet full public metadata for one dataset code.
gribstream_list_parametersNo auth, public, read-onlyList parameter summaries for one dataset.
gribstream_get_parameterNo auth, public, read-onlyGet detailed metadata and exact selector variations for one dataset parameter.
gribstream_list_shared_parametersNo auth, public, read-onlyList normalized shared parameter presets.
gribstream_resolve_shared_parameterNo auth, public, read-onlyResolve one shared parameter preset to native variables and expressions.
gribstream_get_expression_referenceNo auth, public, read-onlyGet GribStream expression-language rules, examples, and math functions.
gribstream_build_timeseries_requestNo auth, public, read-onlyBuild and validate a copy-pasteable authenticated /timeseries API request without sending it.
gribstream_build_runs_requestNo auth, public, read-onlyBuild and validate a copy-pasteable authenticated /runs API request without sending it.
gribstream_validate_requestNo auth, public, read-onlyValidate request shape, selector tuples, and expression syntax without querying weather values.
gribstream_query_timeseriesOAuth required, data queryExecute an authenticated /timeseries request and return actual weather values.
gribstream_query_runsOAuth required, data queryExecute an authenticated /runs request and return actual weather values across model runs.

Public read-only skills/tools are visible before OAuth. OAuth live query skills/tools may be hidden from tools/list until the client completes OAuth or sends a valid Authorization: Bearer token.

Prompt List

NameDescription
build_gribstream_api_requestTurn a weather question into a validated GribStream /timeseries or /runs request and runnable curl.
build_gfs_forecast_requestCreate a validated GFS request for common forecast variables at points or grids.
build_historical_forecast_requestBuild a request for archived forecasts or forecasts selected by a model-run-time cutoff.
create_grid_requestCreate a GribStream request over a latitude/longitude grid instead of point coordinates.
compare_forecast_runsBuild a /runs request to compare model forecasts across runs or lead times.
choose_weather_datasetChoose a GribStream dataset for a region, horizon, weather signal, or forecast task.
find_weather_variableFind the exact dataset parameter selectors for a weather signal.

Resource List

URIMIME TypeDescription
gribstream://openapiapplication/yamlMachine-readable GribStream OpenAPI specification.
gribstream://skill/gribstream-querytext/markdownVendor-neutral behavioral instructions for AI tools using GribStream.

Live Query Output

Authenticated live query tools support CSV, JSON, NDJSON, and Parquet results. Small CSV, JSON, and NDJSON results can be returned inline. Set delivery=url for dense grids or large results to receive a short-lived signed HTTPS resource_link to the complete file instead.

  • URL delivery works with CSV, JSON, NDJSON, and Parquet. Parquet always uses URL delivery.
  • Download the exact signed URL once without an API token. This consumes the MCP result; it is not a separate direct GribStream API request.
  • The 10 MB max_bytes limit applies only to inline MCP results. URL artifacts use a separate server-configured size limit, so omit max_bytes when using delivery=url.
  • For dense grids, prefer Parquet when a compatible reader is already installed; otherwise use CSV with delivery=url. Do not install a dependency or write a Parquet parser solely for one result.
  • Use one grid request and only split after an actual request or artifact-size error. If splitting is necessary, split time first, variables second, and space last.
  • structuredContent includes metadata such as content_type, rows, bytes, columns, schema, delivery, cache_hit, signed_url_expires_at, and suggested_filename when applicable.
  • Inline tabular results also include a preview plus request_hash, response_hash, and result_hash. Use suggested_filename when saving multiple results so repeated requests or comparisons do not overwrite earlier files.
  • Rows are streamed from parallel extraction and are not guaranteed to be sorted. Sort by forecasted_time for /timeseries, and by forecasted_at plus forecasted_time for /runs, before plotting or comparing time series.

Links

  • Official GribStream weather API homepage: https://gribstream.com/
  • Endpoint: https://gribstream.com/mcp
  • MCP page: https://gribstream.com/mcp
  • Icon: https://gribstream.com/gribstream_small.png
  • OpenAPI: https://gribstream.com/docs/openapi.yaml
  • AI setup docs: https://gribstream.com/ai
  • API dashboard: https://gribstream.com/app/dashboard

Try It

After connecting GribStream MCP to an AI tool, ask:

text
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.

If your client has completed OAuth, you can also ask it to run the query:

text
Use GribStream MCP to run a GFS 2m temperature timeseries query for Houston for tomorrow at 12:00 UTC and return CSV.

For a dense-grid visualization:

text
Using GribStream, plot the latest available ICON-D2 2 metre temperature forecast over Germany at 0.025 degree resolution as a beautiful PNG.

Or:

text
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.

More examples:

For the GribStream API itself, see the OpenAPI specification.

[MCP Badge]

Source: README.md at commit 9bac674

Tools

12

gribstream_build_runs_request

Build runs API request

NO AUTH / PUBLIC / READ-ONLY. Build and validate a runnable /runs API request and curl command without sending it. Use gribstream_query_runs to retrieve model-run comparisons directly; a separate build call is optional. Use catalog selectors in request.variables and points in request.coordinates or one request.grid.

Parametersacceptdatasetrequiredrequestrequired

gribstream_build_timeseries_request

Build timeseries API request

NO AUTH / PUBLIC / READ-ONLY. Build and validate a runnable /timeseries API request and curl command without sending it. Use gribstream_query_timeseries to retrieve data directly; a separate build call is optional. Use catalog selectors in request.variables and points in request.coordinates or one request.grid. Omit asOf for latest forecasts.

Parametersacceptdatasetrequiredrequestrequired

gribstream_get_dataset

Get dataset metadata

NO AUTH / PUBLIC / READ-ONLY. Inspect archive coverage, cadence, horizon, members, and native_grid geometry for one dataset. The native coordinate URL requires authentication and geographic bounds; geometry does not prove variable availability.

Parametersdatasetrequired

gribstream_get_expression_reference

Get expression reference

NO AUTH / PUBLIC / READ-ONLY. Get expression syntax, alias rules, examples, and supported func.* math functions for derived weather signals.

Takes no parameters.

gribstream_get_parameter

Get parameter selectors

NO AUTH / PUBLIC / READ-ONLY. Gets detailed metadata and exact selector variations for one already-known dataset-native parameter code. Parameter codes are case-sensitive. For a common natural-language concept such as 2 metre temperature, use gribstream_resolve_shared_parameter before guessing a native code.

Parametersdatasetrequiredparameterrequired

gribstream_list_datasets

List GribStream datasets

NO AUTH / PUBLIC / READ-ONLY. Find candidate datasets for a region and weather variable. Filter by provider, region, forecast_time, shared_parameter and is_ensemble; sort_by=resolution ranks nominal resolution in km. With shared_parameter, each result includes a validated request fragment and exact/approximate match. Use it directly in one gribstream_query_timeseries call. Coverage envelopes and forecast horizons are catalog hints, not live availability guarantees. No weather values are fetched.

Parameterstagcodelimitfamilyregionsort_byprovideris_ensembleforecast_timeshared_parameter

gribstream_list_parameters

List dataset parameters

NO AUTH / PUBLIC / READ-ONLY. Lists parameter summaries for one dataset. Use this before selecting exact case-sensitive parameter codes.

Parametersdatasetrequired

gribstream_list_shared_parameters

List shared weather parameters

NO AUTH / PUBLIC / READ-ONLY. Lists normalized shared parameter presets that can map one logical signal across datasets. Use this only when the shared parameter code is uncertain; when a common code such as temperature_2m is already clear, call gribstream_resolve_shared_parameter directly.

Parametersdatasetdataset_mode

gribstream_query_runs

Query runs API

AUTH REQUIRED / DATA QUERY. Fetch or retrieve weather values across model runs to compare changing forecasts. timesList selects exact model run times, not valid times; minHorizon/maxHorizon constrain lead hours. Use discovered request.variables with coordinates or one grid. CSV is the default; use delivery=url for large results. Response rows are unsorted; sort by location, forecasted_at and forecasted_time before plotting. When a live query returns a resource_link, the exact signed HTTPS URL is the result: download it directly once with an available HTTPS or file-download capability, without an API token. This consumes the selected GribStream MCP result; it is not a direct GribStream API call or a connector bypass. Do not look for an MCP resources/read tool, and do not repeat the query merely to obtain the file bytes.

Parametersacceptdatasetrequiredrequestrequireddeliverymax_bytes

gribstream_query_timeseries

Query timeseries API

AUTH REQUIRED / DATA QUERY. Fetch or retrieve weather values for maps, heatmaps and analysis at selected valid times. Use discovered request.variables with coordinates or one grid; no separate build/validate call is needed. CSV is the default; use delivery=url for large results and render the downloaded file locally. Prefer Parquet only with an available reader. Use timesList for one exact UTC valid time; omit asOf for latest forecasts. Requested sampling does not increase native resolution. Response rows are unsorted; sort rows before plotting. When a live query returns a resource_link, the exact signed HTTPS URL is the result: download it directly once with an available HTTPS or file-download capability, without an API token. This consumes the selected GribStream MCP result; it is not a direct GribStream API call or a connector bypass. Do not look for an MCP resources/read tool, and do not repeat the query merely to obtain the file bytes.

Parametersacceptdatasetrequiredrequestrequireddeliverymax_bytes

gribstream_resolve_shared_parameter

Resolve shared weather parameter

NO AUTH / PUBLIC / READ-ONLY. Resolves a weather concept to validated native variables/expressions and an exact or approximate match label. Use resolved_request directly in /timeseries or /runs; read resolved_match for height differences and native statistics. Use this first for common natural-language concepts such as 2 metre temperature or 10 metre wind instead of guessing dataset-native codes such as TMP.

Parametersaliasdatasetparameterrequired

gribstream_validate_request

Validate API request

NO AUTH / PUBLIC / READ-ONLY. Validates the basic shape, exact selector tuples, and expression syntax of a proposed GribStream /timeseries or /runs request without sending it. Use this before returning any hand-edited curl or when changing a request from one dataset to another.

Parametersdatasetrequiredrequestrequiredendpointrequired

Version history

1
  1. v1.1.4LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts