mcp server
dynamical.org Weather & Climate Catalog
Search dynamical.org's open STAC catalog of weather & climate datasets (GFS, ECMWF, HRRR).
Description as published by the maintainer. Source
- version 0.1.1
- active
- retrieval
active — Registry entry last updated 2026-07-06. Dashed tags are derived by ZBS Index from the published description, not stated by the maintainer.
What this server can do
4 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
get_access_pattern(collection_id)- Get the storage URI and working code for opening a dynamical.org dataset's data. dynamical.org publishes a Python package, `dynamical-catalog`, that reads the STAC catalog itself to resolve and open a dataset -- it's the recommended access pattern because it can't go stale even if the underlying storage format or location changes. This tool also returns the dataset's low-level storage details (from the STAC asset, fetched live) and a lower-level xarray/fsspec snippet for callers who need direct access instead of the wrapper package. Args: collection_id: A STAC collection id, e.g. "noaa-gfs-forecast". Use search_catalog to discover ids. Returns: A dict with the recommended `dynamical_catalog.open(...)` snippet, a `worked_example` pulled from the collection's own STAC metadata when one is published, the raw asset URI/type/storage options, and a generated low-level open snippet (icechunk/zarr/geoparquet, chosen from the asset's declared type). Raises ValueError (listing valid ids) if collection_id is unknown. Required: collection_id.
get_dataset_info(collection_id)- Get documentation, spatial/time resolution, domain, and update cadence for one dynamical.org dataset. dynamical.org/catalog is itself rendered from this same STAC catalog, so this tool fetches the collection document live (short TTL cache) rather than relying on anything baked into this server -- it's always as fresh as the STAC catalog itself. Args: collection_id: A STAC collection id, e.g. "noaa-gfs-forecast", "noaa-hrrr-analysis", or "ecmwf-aifs-ens-forecast". Use search_catalog to discover ids. Returns: A dict with title/model name, prose descriptions, spatial and time domain/resolution, forecast range (for forecast datasets), license and attribution, the dataset's variables, and links to its docs page and example notebooks. Raises ValueError (listing valid ids) if collection_id is unknown. Required: collection_id.
list_recent_runs(limit, collection_id)- Check run freshness and arrival status for a dynamical.org forecast dataset, from the same public feed status.dynamical.org's dashboard polls. Only forecast collections are pipeline-monitored today (analysis collections like noaa-gfs-analysis or noaa-mrms-conus-analysis-hourly aren't yet tracked by this feed). Args: collection_id: A STAC collection id, e.g. "noaa-gfs-forecast". limit: Maximum number of recent runs to return, most recent first (default 10). Returns: A dict with the overall pipeline `sla_status`, this product's cadence and next expected init/completion time, typical latency stats, and up to `limit` recent runs (`init_time`, `status`, `completion_pct`, `on_timedness`, arrival/latency timestamps). If collection_id isn't pipeline-monitored, returns `monitored`: False plus the list of collection ids that are. Required: collection_id.
search_catalog(limit, query)- Search dynamical.org's STAC catalog of cloud-optimized weather and climate datasets. Matches against each dataset's model name, description, spatial/time domain and resolution, forecast range, and variable names -- so a query can be a model ("GFS"), a variable ("precipitation", "temperature_2m"), a region ("continental US", "global"), or a resolution ("3km", "0.25 degree"). Results are ranked by number of matching terms. Args: query: Free-text search terms, e.g. "hourly precipitation CONUS" or "ECMWF ensemble forecast". limit: Maximum number of results to return (default 5). Returns: {"query": ..., "results": [{"collection_id", "title", "model_name", "description_summary", "spatial_domain", "spatial_resolution", "matched_variables", "score"}, ...]}, most relevant first. Pass a result's collection_id to get_dataset_info, get_access_pattern, or list_recent_runs. Required: query.
Last successful function declaration observed on . Source: https://mcp.dynamical.org/mcp. We list what the server declared; we do not call any of these functions.
Endpoint status observed on . Source: https://mcp.dynamical.org/mcp.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| Latest published version | 0.1.1 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-07-06 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| First listed in the MCP Registry | 2026-07-06 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| mcp tools declared | 4 tools | Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. | as of probe | mcp.dynamical.org | |
| mcp endpoint status | ok | The server listed 4 functions when asked. | as of probe | mcp.dynamical.org |
Where to get it
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json