Noaa MCP Server

Search NOAA CDO stations and datasets, fetch historical weather observations.

Remote serverstreamable-http

What is the Noaa MCP server?

Most cloud and infrastructure work still happens through a UI a human drives. Noaa MCP server moves it into the conversation instead. Search NOAA CDO stations and datasets, fetch historical weather observations.

The short version

  • Declarative tool definitions — single file per tool, framework handles registration and validation
  • Unified error handling across all tools
  • Pluggable auth (none, jwt, oauth)
  • Swappable storage backends: in-memory, filesystem, Supabase, Cloudflare KV/R2/D1
  • Structured logging with optional OpenTelemetry tracing
  • Runs locally (stdio/HTTP) or on Cloudflare Workers from the same codebase

The tools it exposes

The server publishes 9 tools. What each one is for:

  • noaa_climate_list_datasets — List available CDO datasets with IDs, names, and temporal coverage
  • noaa_climate_list_data_categories — List data category groups (Temperature, Precipitation, Wind, etc.)
  • noaa_climate_list_data_types — List specific measurement labels (TMAX, TMIN, PRCP, SNOW, etc.) by dataset or category
  • noaa_climate_find_locations — Search geographic locations by category (states, cities, counties, zip codes, climate regions)
  • noaa_climate_find_stations — Search weather stations by location, bounding box, dataset, and data type
  • noaa_climate_get_station — Fetch full metadata for a single station by ID
  • noaa_climate_fetch_data — Fetch historical observation records for a dataset and date range
  • Prerequisites — The Prerequisites tool exposed by this server
  • Installation — The Installation tool exposed by this server

What it needs from you

Configuration is passed through the environment: MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, NOAA_CDO_TOKEN, MCP_HTTP_ENDPOINT_PATH, MCP_PUBLIC_URL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

Getting it running

Because this one is hosted, setup is mostly authentication — you point your client at the endpoint and approve access. Nothing runs on your machine, so there is no runtime to keep patched.

How it compares

Plenty of cloud and infrastructure servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Noaa's toolset — noaa_climate_list_datasets, noaa_climate_list_data_categories, noaa_climate_list_data_types and 6 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Things to watch

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • With 9 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Noaa.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
noaa_climate_list_datasetsList available CDO datasets with IDs, names, and temporal coverage
noaa_climate_list_data_categoriesList data category groups (Temperature, Precipitation, Wind, etc.)
noaa_climate_list_data_typesList specific measurement labels (TMAX, TMIN, PRCP, SNOW, etc.) by dataset or category
noaa_climate_find_locationsSearch geographic locations by category (states, cities, counties, zip codes, climate regions)
noaa_climate_find_stationsSearch weather stations by location, bounding box, dataset, and data type
noaa_climate_get_stationFetch full metadata for a single station by ID
noaa_climate_fetch_dataFetch historical observation records for a dataset and date range
PrerequisitesThe Prerequisites tool exposed by this server.
InstallationThe Installation tool exposed by this server.

How to install the Noaa MCP server

{
  "mcpServers": {
    "noaa-climate-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/noaa-climate-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "NOAA_CDO_TOKEN": "your-token-here"
      }
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
MCP_LOG_LEVELConfiguration value read at startup.Optional
NOAA_CDO_TOKENCredential the server authenticates with.Yes
MCP_HTTP_ENDPOINT_PATHFilesystem location the server is allowed to use.Optional
MCP_PUBLIC_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use Noaa to noaa climate list datasets.
  • Use Noaa to noaa climate list data categories.
  • Use Noaa to noaa climate list data types.

Frequently asked questions

It connects Noaa to MCP-compatible AI assistants such as Claude and Cursor, exposing 9 tools (noaa_climate_list_datasets, noaa_climate_list_data_categories, noaa_climate_list_data_types, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Noaa directly.