# GribStream MCP MCP server

Hosted weather data MCP for discovery, validation, and OAuth-protected GribStream queries.

## Links
- Registry page: https://www.getdrio.com/mcp/com-gribstream-mcp
- Repository: https://github.com/GribStream/gribstream-mcp
- Website: https://gribstream.com/

## Install
- Endpoint: https://gribstream.com/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://gribstream.com/mcp

## Tools
- gribstream_build_runs_request (Build runs API 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. Endpoint: https://gribstream.com/mcp
- gribstream_build_timeseries_request (Build timeseries API 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. Endpoint: https://gribstream.com/mcp
- gribstream_get_dataset (Get dataset metadata) - 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. Endpoint: https://gribstream.com/mcp
- gribstream_get_expression_reference (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. Endpoint: https://gribstream.com/mcp
- 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. This tool does not query weather values and cannot return forecast data. Endpoint: https://gribstream.com/mcp
- gribstream_list_datasets (List GribStream 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. Endpoint: https://gribstream.com/mcp
- 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. This tool does not query weather values and cannot return forecast data. Endpoint: https://gribstream.com/mcp
- 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. This tool does not query weather values and cannot return forecast data. Endpoint: https://gribstream.com/mcp
- gribstream_query_runs (Query runs API) - 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. Endpoint: https://gribstream.com/mcp
- gribstream_query_timeseries (Query timeseries API) - 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. Endpoint: https://gribstream.com/mcp
- gribstream_resolve_shared_parameter (Resolve shared weather 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. Endpoint: https://gribstream.com/mcp
- 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. 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. Endpoint: https://gribstream.com/mcp

## Resources
- gribstream://openapi - GribStream OpenAPI spec Machine-readable contract for catalog discovery, /timeseries, and /runs. MIME type: application/yaml
- gribstream://skill/gribstream-query - GribStream Query Skill Vendor-neutral behavioral instructions for AI tools using GribStream. MIME type: text/markdown

## Prompts
- build_gfs_forecast_request - Build a GFS forecast request Create a validated GFS request for common forecast variables at points or grids. Arguments: location, variable, time
- build_gribstream_api_request - Build a GribStream API request Turn a weather question into a validated GribStream /timeseries or /runs request and runnable curl. Arguments: question, dataset, location, time
- build_historical_forecast_request - Build a historical forecast request Build a request for archived forecasts or forecasts selected by a model-run-time cutoff. Arguments: dataset, location, valid_time, as_of
- choose_weather_dataset - Choose a weather dataset Pick suitable GribStream datasets for a region, horizon, domain, and weather-analysis task. Arguments: use_case, region, horizon
- compare_forecast_runs - Compare forecast runs Use /runs semantics to compare changing model forecasts for the same valid time or period. Arguments: dataset, location, variable, forecasted_range
- create_grid_request - Create a grid request Create a GribStream request over a latitude/longitude grid instead of point coordinates. Arguments: dataset, variable, region, time
- find_weather_variable - Find a weather variable Find exact dataset parameter names, levels, info selectors, and aliases for a weather concept. Arguments: dataset, concept

## Metadata
- Owner: com.gribstream
- Version: 1.1.3
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jun 7, 2026
- Source: https://registry.modelcontextprotocol.io
