Atlas / MCP servers / pipeworx-io / mcp-noaa-ncei

mcp-noaa-nceiSAFE

mcp/pipeworx-io/mcp-noaa-ncei

NOAA NCEI MCP — the national climate archive, via the keyless Access services

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
3 3r · 0w · 0d
Transport
stdio · streamable-http
License
MIT
Stars
0
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

The US climate archive of record — GHCN-Daily station observations back to the 1800s, global summaries, and the NCEI dataset catalogue — through NOAA NCEI's keyless Access services.

Part of Pipeworx — an MCP gateway connecting AI agents to 1683+ live data sources.

Tools

  • ncei_daily_summaries(stations, startDate, endDate, dataTypes?, units?, dataset?, limit?) — daily max/min temperature, precipitation, snow, wind for named stations.
  • ncei_station_search(bbox, dataset?, startDate?, endDate?, dataTypes?, limit?) — stations in an area with their period of record and elements.
  • ncei_search_datasets(text?, limit?) — the NCEI dataset catalogue.

Auth

Keyless. The older CDO v2 API (/cdo-web/api/v2) needs a token and is capped at 5 req/s and 10,000/day; these Access services answer the same questions with no credential, so CDO is deliberately not used here.

Data sources

  • https://www.ncei.noaa.gov/access/services/data/v1 — observation values.
  • https://www.ncei.noaa.gov/access/services/search/v1/datasets — dataset catalogue.
  • https://www.ncei.noaa.gov/access/services/search/v1/data — station/file discovery.

Things the next person would otherwise rediscover:

  • The search service's bounding box is `bbox` in NORTH,WEST,SOUTH,EAST order

— not the minLon,minLat,maxLon,maxLat used everywhere else in this catalog, and not the parameter name boundingBox, which is rejected with a bare Invalid search options naming no field. The pack takes the usual order and reorders it.

  • `/search/v1/collections` does not exist (404). The catalogue is .../datasets.
  • Values come back as strings ("TMAX":"64") and their unit depends on

units=standard|metric. Both are surfaced.

  • **A window outside a station's period of record returns an EMPTY BODY with

HTTP 200** — not an error, not []. ncei_daily_summaries reports that as an explicit no_data with the station and window named, n

Read from source at commit e6120dc80aa3OBSERVED · 2026-10-11
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.

claude-code
claude mcp add mcp-noaa-ncei -- npx -y @pipeworx/[email protected]
claude-desktop
{
  "mcpServers": {
    "mcp-noaa-ncei": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/[email protected]"
      ]
    }
  }
}
03

Exposed tools (3)

3 read · 0 write · 0 destructive.

ToolRiskDescription
ncei_daily_summariesreadDaily observed weather for named NOAA stations — max/min temperature, precipitation, snowfall, snow depth, wind and more, from the GHCN-Daily record that runs back to the 1800s at long-lived stations. AUTHORITATIVE for
ncei_search_datasetsreadBrowse the NOAA NCEI dataset catalogue — climate, marine, satellite, radar, paleoclimate and storm archives — with each dataset\
ncei_station_searchreadFind NOAA weather stations inside a bounding box that actually hold data for a given dataset and date range, with each station\
04

Trust audit

SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codePASS
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
none-observed
Network
declared (1 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
none-found

Findings (1)

LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@modelcontextprotocol/sdk, tsx, typescript, @cloudflare/workers-types
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile

Gates applied: no_behavioural_pass.

Audited 2026-10-11 · audit v0.4.1 · source sha e6120dc80aa3full audit observations/trust-audit/mcp-server/pipeworx-io__mcp-noaa-ncei.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-11e6120dc80aa3SAFEB89first audit
06

Questions

What is the mcp-noaa-ncei MCP server?

NOAA NCEI MCP — the national climate archive, via the keyless Access services

What tools does mcp-noaa-ncei expose?

3 in total: 3 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is mcp-noaa-ncei safe to connect to an agent?

The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.

What credentials does mcp-noaa-ncei need?

No credential environment variables were found in its source, so it appears to need none.

How does mcp-noaa-ncei run?

It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @pipeworx/mcp-noaa-ncei at 0.1.1.

How current is this page?

The grade is for one exact copy of the source (e6120dc80aa3), read on 2026-10-11. The repository is watched and re-audited when it changes.

Advertisement