GribStream Weather MCP
REMOTE · GRIBSTREAM.COM
NOAA and ECMWF weather forecast MCP for discovery, validation, and GribStream OAuth queries.
Available components
Last scanned (18 hours ago)
Scores higher than 95% of remote servers
Reachable. Last reached 6 Nov 2026.
Category Maps and Location
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security80
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation. See how to fix → View diagnostics → Partial
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability76
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3636 tokens (~259/item across 14 items; 12 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 97% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
Checks we ran (13)
- TLS certificate
- Authorization
- HTTPS
- HSTS header
- DNSSEC
- Transport
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 6 Nov 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 16 Oct 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “gribstream_build_runs_request” rewrote its description, which is the text the model reads security
- Tool “gribstream_build_timeseries_request” rewrote its description, which is the text the model reads security
- Tool “gribstream_get_dataset” rewrote its description, which is the text the model reads security
- Tool “gribstream_get_expression_reference” rewrote its description, which is the text the model reads security
- Tool “gribstream_get_parameter” rewrote its description, which is the text the model reads security
- Tool “gribstream_list_datasets” rewrote its description, which is the text the model reads security
- Tool “gribstream_list_parameters” rewrote its description, which is the text the model reads security
- Tool “gribstream_list_shared_parameters” rewrote its description, which is the text the model reads security
- Tool “gribstream_query_runs” rewrote its description, which is the text the model reads security
- Tool “gribstream_query_timeseries” rewrote its description, which is the text the model reads security
- Tool “gribstream_resolve_shared_parameter” rewrote its description, which is the text the model reads security
- Tool “gribstream_validate_request” rewrote its description, which is the text the model reads security
- Schema quality: 311 → 259 ▲ functional
- Server version: 1.1.1 → 1.2.0 functional
- “gribstream_list_datasets” added an optional parameter “forecast_time” cosmetic
- “gribstream_list_datasets” added an optional parameter “limit” cosmetic
- “gribstream_list_datasets” added an optional parameter “provider” cosmetic
- “gribstream_list_datasets” added an optional parameter “region” cosmetic
- “gribstream_list_datasets” added an optional parameter “shared_parameter” cosmetic
- “gribstream_list_datasets” added an optional parameter “sort_by” cosmetic
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Aug 26 0
- Stability: 0.97 → pass security
- 18 Aug 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “gribstream_get_parameter” rewrote its description, which is the text the model reads security
- Tool “gribstream_list_shared_parameters” rewrote its description, which is the text the model reads security
- Tool “gribstream_query_runs” rewrote its description, which is the text the model reads security
- Tool “gribstream_query_timeseries” rewrote its description, which is the text the model reads security
- Tool “gribstream_resolve_shared_parameter” rewrote its description, which is the text the model reads security
- Schema quality: 241 → 311 ▼ functional
- Server version: 1.0.0 → 1.1.1 functional
- “gribstream_query_runs” added an optional parameter “delivery” cosmetic
- “gribstream_query_timeseries” added an optional parameter “delivery” cosmetic
- “gribstream_build_runs_request” reworded the description of “request” cosmetic
- “gribstream_build_timeseries_request” reworded the description of “request” cosmetic
- “gribstream_query_runs” reworded the description of “accept” cosmetic
- “gribstream_query_runs” reworded the description of “max_bytes” cosmetic
- “gribstream_query_runs” reworded the description of “request” cosmetic
- “gribstream_query_timeseries” reworded the description of “accept” cosmetic
- “gribstream_query_timeseries” reworded the description of “max_bytes” cosmetic
- “gribstream_query_timeseries” reworded the description of “request” cosmetic
- 17 Aug 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “gribstream_query_runs” rewrote its description, which is the text the model reads security
- Tool “gribstream_query_timeseries” rewrote its description, which is the text the model reads security
- Schema quality: 200 → 241 ▼ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 6 Nov 2026 · Probed https://gribstream.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=gribstream.com | CN=YE1,O=Let's Encrypt,C=US | 25 Oct 2026 | 23 Jan 2027 | ECDSA 256 | ECDSA-SHA384 | 6dc6c9bc8c90f60db809d26b3f49f9aa975 |
| SANs: *.gribstream.com, *.teatromagico.net, gribstream.com | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of gribstream.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| com. | DS published | 19718 | 13 | Verified |
| gribstream.com. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains; preload |
| content-security-policy | frame-ancestors 'self' |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | accelerometer=(), autoplay=(), camera=(), display-capture=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), usb=() |
| www-authenticate | Bearer resource_metadata="https://gribstream.com/.well-known/oauth-protected-resource/mcp" |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://gribstream.com/mcp | Verified | 200 | |
| http (plaintext) | http://gribstream.com/mcp | HTTPS enforced | 301 | https://gribstream.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
gribstream_build_runs_request Build runs API request ~211
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.
| Name | Type | Req | Description |
|---|---|---|---|
| accept | string | – | Desired response format for the eventual HTTP request. Prefer application/vnd.apache.parquet for dense grids and large typed tabular results. |
| dataset | string | yes | Dataset code, for example gfs, ifsoper, nbm, hrrr, or urma. |
| request | object | yes | Runs request body. Use timesList for exact UTC model run times, or the half-open range forecastedFrom+forecastedUntil where forecastedFrom is inclusive, forecastedUntil is exclusive, and forecastedFr… |
| Name | Type | Req | Description |
|---|---|---|---|
| body | object | yes | GribStream API request body. |
| curl | string | yes | Copy-pasteable curl command. |
| endpoint | string | yes | GribStream endpoint. |
| errors | array | – | Validation errors. |
| headers | object | yes | HTTP headers for the generated request. Includes Accept-Encoding: gzip so large direct API responses can be transferred compressed when the client supports decompression. |
| method | string | yes | HTTP method for the generated request. |
| timestamp_semantics | string | yes | Endpoint-specific timestamp guidance. |
| url | string | yes | Public GribStream API URL. |
| valid | boolean | yes | Whether the request body passed local shape, selector, and expression checks. |
| warnings | array | – | Validation warnings. |
No examples provided.
gribstream_build_timeseries_request Build timeseries API request ~242
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.
| Name | Type | Req | Description |
|---|---|---|---|
| accept | string | – | Desired response format for the eventual HTTP request. Prefer application/vnd.apache.parquet for dense grids and large typed tabular results. |
| dataset | string | yes | Dataset code, for example gfs, ifsoper, nbm, hrrr, or urma. |
| request | object | yes | Timeseries request body. Use timesList for exact UTC valid times, or the half-open range fromTime+untilTime where fromTime is inclusive, untilTime is exclusive, and fromTime must be earlier than unti… |
| Name | Type | Req | Description |
|---|---|---|---|
| body | object | yes | GribStream API request body. |
| curl | string | yes | Copy-pasteable curl command. |
| endpoint | string | yes | GribStream endpoint. |
| errors | array | – | Validation errors. |
| headers | object | yes | HTTP headers for the generated request. Includes Accept-Encoding: gzip so large direct API responses can be transferred compressed when the client supports decompression. |
| method | string | yes | HTTP method for the generated request. |
| timestamp_semantics | string | yes | Endpoint-specific timestamp guidance. |
| url | string | yes | Public GribStream API URL. |
| valid | boolean | yes | Whether the request body passed local shape, selector, and expression checks. |
| warnings | array | – | Validation warnings. |
No examples provided.
gribstream_get_dataset Get dataset metadata ~82
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | yes | Dataset code, for example gfs, nbm, ifsoper, hrrr, urma. |
Structured output declared, but exposes no named fields.
No examples provided.
gribstream_get_expression_reference Get expression reference ~41
NO AUTH / PUBLIC / READ-ONLY. Get expression syntax, alias rules, examples, and supported func.* math functions for derived weather signals.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
gribstream_get_parameter Get parameter selectors ~113
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | yes | Dataset code, for example ifsoper. |
| parameter | string | yes | Exact case-sensitive parameter short name, for example 100u, 2t, TMP, or APCP. |
Structured output declared, but exposes no named fields.
No examples provided.
gribstream_list_datasets List GribStream datasets ~388
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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | – | – | Dataset code or list of dataset codes, for example gfs or ["gfs", "ifsoper"]. |
| family | string | – | Dataset family filter, for example gfs, ifs, nbm, hrrr, rap, rtma, urma. |
| forecast_time | string | – | Optional RFC3339 valid time with offset, e.g. 2026-10-16T12:00:00-03:00. Response normalizes to UTC. Filters nominal horizon, not live run availability. Resolve place and local timezone first; never… |
| is_ensemble | boolean | – | Filter to ensemble datasets when true, or deterministic datasets when false. |
| limit | integer | – | Maximum candidates to return; omit to inspect alternatives including unknown coverage. |
| provider | string | – | Case-insensitive provider substring, e.g. Met Office, ECMWF, NOAA, DWD. |
| region | object | – | – |
| shared_parameter | string | – | Weather concept code, e.g. temperature_2m. Return only validated equivalents, including request fragments and approximation labels. |
| sort_by | string | – | Sort candidates by nominal source resolution, finest first; unknown coverage/resolution sorts last. Read coverage_kind before claiming a winner. |
| tag | – | – | Tag or list of tags. Multiple tags use AND semantics in the API. |
| Name | Type | Req | Description |
|---|---|---|---|
| datasets | array | yes | Public GribStream dataset summaries. |
No examples provided.
gribstream_list_parameters List dataset parameters ~52
NO AUTH / PUBLIC / READ-ONLY. Lists parameter summaries for one dataset. Use this before selecting exact case-sensitive parameter codes.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | yes | Dataset code, for example ifsoper. |
| Name | Type | Req | Description |
|---|---|---|---|
| parameters | array | yes | Parameter summaries for one GribStream dataset. |
No examples provided.
gribstream_list_shared_parameters List shared weather parameters ~110
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | – | – | Optional dataset code or list of dataset codes to filter supported shared parameters. |
| dataset_mode | string | – | Whether every listed dataset must support the preset or any one may support it. |
| Name | Type | Req | Description |
|---|---|---|---|
| shared_parameters | array | yes | Shared weather parameter summaries. |
No examples provided.
gribstream_query_runs Query runs API ~659
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.
| Name | Type | Req | Description |
|---|---|---|---|
| accept | string | – | Desired response format. Defaults to text/csv for compatibility. For dense grids and large tabular analysis, use application/vnd.apache.parquet only when a compatible reader is already known to be av… |
| dataset | string | yes | Dataset code, for example gfs, ifsoper, nbm, hrrr, or urma. |
| delivery | string | – | Optional result delivery mode. Set inline for CSV, JSON, or NDJSON in the MCP result, or url for a short-lived signed resource link. Omission defaults to inline for text formats; Parquet always uses… |
| max_bytes | integer | – | Maximum inline response bytes to return through MCP for CSV/JSON/NDJSON. Default and server-side maximum are 10000000. This setting does not limit artifacts delivered by signed URL. For dense grids o… |
| request | object | yes | Runs request body. Use timesList for exact UTC model run times, or the half-open range forecastedFrom+forecastedUntil where forecastedFrom is inclusive, forecastedUntil is exclusive, and forecastedFr… |
| Name | Type | Req | Description |
|---|---|---|---|
| binary | boolean | – | Whether the result resource is binary rather than text. |
| bytes | integer | – | Number of bytes in the full inline response or downloadable artifact. |
| cache_hit | boolean | – | Whether a URL-delivered artifact was served from the shared short-lived response cache. |
| columns | array | – | CSV header columns, keys from the first NDJSON object, or leaf columns read from Parquet metadata. |
| content_type | string | – | MIME type for a result resource, for example text/csv, application/ndjson, or application/vnd.apache.parquet. |
| data | array | – | JSON array response when the GribStream API returns a top-level JSON array. |
| dataset | string | – | Dataset code used for the live query. |
| delivery | string | – | Result delivery mode. URL-delivered results use url; text formats are inline when delivery is omitted. |
| endpoint | string | – | GribStream API endpoint used for the live query, for example timeseries or runs. |
| fallback_guidance | string | – | What to do once if client network policy blocks a signed resource link. |
| generated_at | string | – | UTC timestamp at which a URL-delivered artifact was generated. |
| ordering_warning | string | – | Reminder that live query rows are not guaranteed to be sorted. |
| preview | string | – | Short preview of an inline text response. URL-delivered results omit preview. |
| recovery_guidance | string | – | Actionable next steps for successful queries with zero rows. |
| request_hash | string | – | SHA-256 hash of the endpoint, dataset, response format, and canonical request body. |
| response_hash | string | – | SHA-256 hash of the upstream response body, computed while reading the response. |
| result_hash | string | – | SHA-256 hash combining request_hash and response_hash. A short prefix is included in suggested_filename. |
| rows | integer | – | Number of tabular data rows in a CSV, NDJSON, or Parquet response. CSV header rows are not counted. |
| schema | array | – | Best-effort tabular schema. CSV and NDJSON columns are typed as strings unless the client infers richer types; Parquet reports its stored leaf types. |
| signed_url_expires_at | string | – | UTC expiration timestamp for an artifact resource link. |
| split_guidance | string | – | Recommended split order for oversized MCP live queries. |
| suggested_filename | string | – | Collision-resistant filename to use when saving this result locally. Use it instead of generic names like timeseries.csv when comparing multiple model or dataset results. |
| truncated | boolean | – | Whether the inline tabular response was truncated. Successful live query responses are not truncated; oversized responses return an error instead. |
| uri | string | – | URI of the result resource. For URL delivery this is the short-lived signed HTTPS URL in the resource_link content block. |
No examples provided.
gribstream_query_timeseries Query timeseries API ~704
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.
| Name | Type | Req | Description |
|---|---|---|---|
| accept | string | – | Desired response format. Defaults to text/csv for compatibility. For dense grids and large tabular analysis, use application/vnd.apache.parquet only when a compatible reader is already known to be av… |
| dataset | string | yes | Dataset code, for example gfs, ifsoper, nbm, hrrr, or urma. |
| delivery | string | – | Optional result delivery mode. Set inline for CSV, JSON, or NDJSON in the MCP result, or url for a short-lived signed resource link. Omission defaults to inline for text formats; Parquet always uses… |
| max_bytes | integer | – | Maximum inline response bytes to return through MCP for CSV/JSON/NDJSON. Default and server-side maximum are 10000000. This setting does not limit artifacts delivered by signed URL. For dense grids o… |
| request | object | yes | Timeseries request body. Use timesList for exact UTC valid times, or the half-open range fromTime+untilTime where fromTime is inclusive, untilTime is exclusive, and fromTime must be earlier than unti… |
| Name | Type | Req | Description |
|---|---|---|---|
| binary | boolean | – | Whether the result resource is binary rather than text. |
| bytes | integer | – | Number of bytes in the full inline response or downloadable artifact. |
| cache_hit | boolean | – | Whether a URL-delivered artifact was served from the shared short-lived response cache. |
| columns | array | – | CSV header columns, keys from the first NDJSON object, or leaf columns read from Parquet metadata. |
| content_type | string | – | MIME type for a result resource, for example text/csv, application/ndjson, or application/vnd.apache.parquet. |
| data | array | – | JSON array response when the GribStream API returns a top-level JSON array. |
| dataset | string | – | Dataset code used for the live query. |
| delivery | string | – | Result delivery mode. URL-delivered results use url; text formats are inline when delivery is omitted. |
| endpoint | string | – | GribStream API endpoint used for the live query, for example timeseries or runs. |
| fallback_guidance | string | – | What to do once if client network policy blocks a signed resource link. |
| generated_at | string | – | UTC timestamp at which a URL-delivered artifact was generated. |
| ordering_warning | string | – | Reminder that live query rows are not guaranteed to be sorted. |
| preview | string | – | Short preview of an inline text response. URL-delivered results omit preview. |
| recovery_guidance | string | – | Actionable next steps for successful queries with zero rows. |
| request_hash | string | – | SHA-256 hash of the endpoint, dataset, response format, and canonical request body. |
| response_hash | string | – | SHA-256 hash of the upstream response body, computed while reading the response. |
| result_hash | string | – | SHA-256 hash combining request_hash and response_hash. A short prefix is included in suggested_filename. |
| rows | integer | – | Number of tabular data rows in a CSV, NDJSON, or Parquet response. CSV header rows are not counted. |
| schema | array | – | Best-effort tabular schema. CSV and NDJSON columns are typed as strings unless the client infers richer types; Parquet reports its stored leaf types. |
| signed_url_expires_at | string | – | UTC expiration timestamp for an artifact resource link. |
| split_guidance | string | – | Recommended split order for oversized MCP live queries. |
| suggested_filename | string | – | Collision-resistant filename to use when saving this result locally. Use it instead of generic names like timeseries.csv when comparing multiple model or dataset results. |
| truncated | boolean | – | Whether the inline tabular response was truncated. Successful live query responses are not truncated; oversized responses return an error instead. |
| uri | string | – | URI of the result resource. For URL delivery this is the short-lived signed HTTPS URL in the resource_link content block. |
No examples provided.
gribstream_resolve_shared_parameter Resolve shared weather parameter ~160
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.
| Name | Type | Req | Description |
|---|---|---|---|
| alias | string | – | Optional output alias for the resolved request. |
| dataset | string | – | Optional dataset code to resolve the shared parameter against. |
| parameter | string | yes | Shared parameter code, for example temperature_2m, wind_speed_10m, mean_sea_level_pressure, or wind_speed_500hpa. |
Structured output declared, but exposes no named fields.
No examples provided.
gribstream_validate_request Validate API request ~164
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.
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | yes | Dataset code, for example gfs, ifsoper, nbm, hrrr, or urma. |
| endpoint | string | yes | Endpoint to validate. |
| request | object | yes | Request body to validate. Omit asOf unless the user explicitly asks for backtesting, time travel, what was known then, or a historical model-run cutoff for /timeseries. Use request.coordinates for po… |
| Name | Type | Req | Description |
|---|---|---|---|
| dataset | string | yes | Dataset code that was validated. |
| endpoint | string | yes | GribStream endpoint. |
| errors | array | – | Validation errors. |
| timestamp_semantics | string | yes | Endpoint-specific timestamp guidance. |
| valid | boolean | yes | Whether the request body passed local shape, selector, and expression checks. |
| warnings | array | – | Validation warnings. |
No examples provided.
How do I install the GribStream Weather MCP server?
GribStream Weather MCP is a hosted endpoint at https://gribstream.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · gribstream.com
claude mcp add --transport http com-gribstream-mcp 'https://gribstream.com/mcp'
What is the GribStream Weather MCP server?
GribStream Weather MCP is listed in the public MCP registry as com.gribstream/mcp. NOAA and ECMWF weather forecast MCP for discovery, validation, and GribStream OAuth queries. This page covers its hosted endpoint (https://gribstream.com/mcp).
Is the GribStream Weather MCP server safe to use?
GribStream Weather MCP scores 88 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the GribStream Weather MCP server expose?
GribStream Weather MCP exposes 12 tools: gribstream_build_runs_request, gribstream_build_timeseries_request, gribstream_get_dataset, gribstream_get_expression_reference, gribstream_get_parameter, and 7 more. Their descriptions and schemas cost roughly 2,926 tokens of context every time the server is loaded.
Does the GribStream Weather MCP server require authentication?
No. We connected to GribStream Weather MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the GribStream Weather MCP server still maintained?
GribStream Weather MCP is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the GribStream Weather MCP server?
VerifyMCP ran 13 checks on GribStream Weather MCP, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.