The discovery and request-building tools are public and read-only, so the hard part — working out which dataset and which exact selector answer your question — happens before authentication. Every tool description starts with either `NO AUTH / PUBLIC / READ-ONLY` or `AUTH REQUIRED / DATA QUERY`, which is how a client keeps metadata work and billed data work apart.
A hosted MCP server for weather forecast data from GribStream, covering NOAA GFS, HRRR and NBM and ECMWF IFS among others. Discovery, selector lookup, request building and validation work before you authenticate; running an actual query needs OAuth.
- Dataset discovery — `gribstream_list_datasets`, `gribstream_get_dataset`
- Finding the exact variable — `gribstream_list_parameters`, `gribstream_get_parameter`, `gribstream_list_shared_parameters`, `gribstream_resolve_shared_parameter`, `gribstream_get_expression_reference`
- Request building — `gribstream_build_timeseries_request` for values by valid time, `gribstream_build_runs_request` to compare forecasts across model runs, both returning a copy-pasteable authenticated request without sending it
- gribstream_validate_request — check request shape, selector tuples and expression syntax without querying values
- Live queries after OAuth — `gribstream_query_timeseries` and `gribstream_query_runs` return actual weather values
- Prompts for common jobs: `choose_weather_dataset`, `find_weather_variable`, `compare_forecast_runs`, `create_grid_request` and more
- Resources: `gribstream://openapi` and `gribstream://skill/gribstream-query`
A client that speaks remote Streamable HTTP, pointed at https://gribstream.com/mcp with no trailing punctuation. Live queries need OAuth, which most clients discover automatically; if yours asks for manual fields, the client ID is `gribstream-mcp-public` and the client secret must be left empty — a form that demands one is asking for a confidential-client flow this does not support. The OAuth flow asks you to pick an active GribStream API token, and the client never sees that raw token. Results come back as CSV, JSON, NDJSON or Parquet; `max_bytes` caps inline results at 10,000,000 bytes, and dense grids should use `delivery=url` instead.
One command — npx -y mcp-remote https://gribstream.com/mcp
