servers / gribstream-mcp
GribStream MCP
communitystreamable_httpremoteverifiedhealthy
Hosted weather data MCP for discovery, validation, and OAuth-protected GribStream queries.
01Tools · 12
How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| gribstream_list_datasets NO AUTH / PUBLIC / READ-ONLY. Lists public GribStream datasets and metadata. This tool does not query weather values and cannot return forecast data. Supports catalog filters such as code, family, tag, and is_ensemble. | read | false | unknown |
| gribstream_get_expression_reference NO AUTH / PUBLIC / READ-ONLY. Gets the GribStream expression language reference, including github.com/expr-lang/expr syntax guidance, alias rules, examples, and the full exported func.* math function list. This tool does not query weather values and cannot return forecast data. | read | false | unknown |
| gribstream_build_runs_request NO AUTH / PUBLIC / READ-ONLY. Builds and validates a copy-pasteable authenticated /api/v2/{dataset}/runs HTTP request without sending it. This tool does not execute the request, query weather values, or return forecast data. Use gribstream_query_runs when the user asks for actual model-run forecast data or CSV/JSON/NDJSON/Parquet data. Generated direct API requests include Accept-Encoding: gzip, and generated curl commands use --compressed so large responses can be transferred compressed when the client supports it. The request body must use exact selectors discovered from the catalog or shared-parameter tools, with coordinates in request.coordinates and selectors in request.variables. | read | false | unknown |
| gribstream_validate_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. This tool does not execute the request, query weather values, or return forecast data. Use this before returning any hand-edited curl or when changing a request from one dataset to another. | read | false | unknown |
| gribstream_build_timeseries_request NO AUTH / PUBLIC / READ-ONLY. Builds and validates a copy-pasteable authenticated /api/v2/{dataset}/timeseries HTTP request without sending it. This tool does not execute the request, query weather values, or return forecast data. Use gribstream_query_timeseries when the user asks for actual weather values or CSV/JSON/NDJSON/Parquet data. Generated direct API requests include Accept-Encoding: gzip, and generated curl commands use --compressed so large responses can be transferred compressed when the client supports it. Do not include request.asOf unless the user explicitly wants backtesting, time travel, or a historical model-run cutoff. The request body must use exact selectors discovered from the catalog or shared-parameter tools, with coordinates in request.coordinates and selectors in request.variables. | read | false | unknown |
| gribstream_list_shared_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. This tool does not query weather values and cannot return forecast data. | read | false | unknown |
| gribstream_query_timeseries AUTH REQUIRED / DATA QUERY. Executes an authenticated /api/v2/{dataset}/timeseries request and returns actual weather/forecast data values. Use this tool, not the NO AUTH request-building or metadata tools, when the user asks to fetch, retrieve, download, return, or analyze weather values, CSV/JSON/NDJSON/Parquet data, plots, heatmaps, or best-available values by valid time. Defaults to inline CSV for compatibility; use URL delivery for dense grids and large tabular results. Time ranges are half-open: the start is inclusive and the end is exclusive. The start must be earlier than the end; equal bounds select no times. Use timesList for one exact valid time on /timeseries or one exact model run time on /runs. 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. If the client reports that network or allowlist policy blocks the returned resource_link, do not retry URL delivery. For CSV, JSON, or NDJSON whose reported size is at most 10000000 bytes, retry the same request at most once with delivery=inline. Parquet cannot use inline delivery. If the artifact is larger, reduce the request using the documented split order before one inline CSV retry. For dense grids or large tabular results, use delivery=url so MCP returns a short-lived signed HTTPS resource link instead of putting the full dataset into tool output. Prefer application/vnd.apache.parquet only when a compatible Parquet reader is already known to be available. If reader availability is unknown, do not spend tool calls probing or installing packages; use text/csv with delivery=url immediately. Use one grid request, process the downloaded file locally, and never print or serialize the full file into chat or tool output. Do not install a dependency or write a Parquet parser solely for one result. When a real API request limit requires splitting, split by time range first, split variables second, and split coordinates/grid/space last; spatial tiling creates the most extra work. Do not include request.asOf unless the user explicitly wants backtesting, time travel, or a historical model-run cutoff. Response rows are unsorted; sort by location fields and forecasted_time before plotting, building time series, or checking for gaps. The request body must use request.coordinates and request.variables; do not use location, coord, coords, parameters, parameter, or variable as replacement field names. | read | false | unknown |
| gribstream_resolve_shared_parameter NO AUTH / PUBLIC / READ-ONLY. Resolves one shared parameter preset for a dataset, returning native variables and expressions to use in /timeseries or /runs request bodies. 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. This tool does not execute the request, query weather values, or return forecast data. | read | false | unknown |
| gribstream_get_parameter 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. This tool does not query weather values and cannot return forecast data. | read | false | unknown |
| gribstream_get_dataset NO AUTH / PUBLIC / READ-ONLY. Gets full public metadata for one dataset code, including archive coverage, cadence, tags, source links, and members. This tool does not query weather values and cannot return forecast data. | read | false | unknown |
| gribstream_list_parameters NO AUTH / PUBLIC / READ-ONLY. Lists parameter summaries for one dataset. Use this before selecting exact case-sensitive parameter codes. This tool does not query weather values and cannot return forecast data. | read | false | unknown |
| gribstream_query_runs AUTH REQUIRED / DATA QUERY. Executes an authenticated /api/v2/{dataset}/runs request and returns actual weather/forecast data values across model runs. Use this tool, not the NO AUTH request-building or metadata tools, when the user asks to fetch, retrieve, download, return, or analyze model-run history, forecast aging, changing forecasts, CSV/JSON/NDJSON/Parquet data, plots, or analysis. Defaults to inline CSV for compatibility; use URL delivery for dense grids and large tabular results. Time ranges are half-open: the start is inclusive and the end is exclusive. The start must be earlier than the end; equal bounds select no times. Use timesList for one exact valid time on /timeseries or one exact model run time on /runs. 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. If the client reports that network or allowlist policy blocks the returned resource_link, do not retry URL delivery. For CSV, JSON, or NDJSON whose reported size is at most 10000000 bytes, retry the same request at most once with delivery=inline. Parquet cannot use inline delivery. If the artifact is larger, reduce the request using the documented split order before one inline CSV retry. For dense grids or large tabular results, use delivery=url so MCP returns a short-lived signed HTTPS resource link instead of putting the full dataset into tool output. Prefer application/vnd.apache.parquet only when a compatible Parquet reader is already known to be available. If reader availability is unknown, do not spend tool calls probing or installing packages; use text/csv with delivery=url immediately. Use one grid request, process the downloaded file locally, and never print or serialize the full file into chat or tool output. Do not install a dependency or write a Parquet parser solely for one result. When a real API request limit requires splitting, split by time range first, split variables second, and split coordinates/grid/space last; spatial tiling creates the most extra work. Response rows are unsorted; sort by location fields, forecasted_at, and forecasted_time before plotting, building time series, or checking for gaps. The request body must use request.coordinates and request.variables; do not use location, coord, coords, parameters, parameter, or variable as replacement field names. | read | false | unknown |
02Install & source
https://gribstream.com/mcp
remote_url- repohttps://github.com/GribStream/gribstream-mcp
- homepagehttps://gribstream.com/mcp
- licenseMIT
- adoption0 stars · 0 forks
03Access granted
Fetch a URL · write
The access this server can exercise, inferred from its verified tools — not a declared OAuth scope.
05Provenance & freshness
sourcesOfficial MCP Registry [p1]
last_checked2026-08-21 18:11Z
next_check2026-08-21 21:10Z
cadenceevery 3h
verifiedtools_list:passed handshake:passed metadata:passed tools_list:passed handshake:passed metadata:passed tools_list:passed handshake:passed metadata:passed tools_list:passed
index_statusindex — 9 unique facts >= 5
06Badge
Add the “as seen on MCPExplorer” badge to your README.
[](https://mcpexplorer.com/servers/gribstream-mcp)
Next step
This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.
Explore loadouts →