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

mcp-noaa-coastwatchSAFE

mcp/pipeworx-io/mcp-noaa-coastwatch

NOAA CoastWatch — satellite and model ocean data via ERDDAP.

Verdict
SAFE
Grade
B
Trust score
89 /100
Exposed tools
4 4r · 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.

NOAA CoastWatch's satellite and model ocean record — sea surface temperature, chlorophyll-a, winds, currents and the full NDBC moored-buoy archive — read live from CoastWatch's two ERDDAP servers.

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

Tools

  • noaa_coastwatch_search_datasets(query, protocol?, node?, limit?) — full-text search of the

dataset catalogue. Start here: every other tool takes a dataset_id from these results.

  • noaa_coastwatch_dataset_info(dataset_id, node?) — variables, units, axes, time coverage,

licence. Call it before querying data; variable names are case-sensitive.

  • noaa_coastwatch_tabledap(dataset_id, variables?, constraints?, node?, limit?) — rows from a

tabledap dataset, e.g. hourly NDBC buoy observations back to 1970.

  • noaa_coastwatch_griddap_point(dataset_id, variable, latitude, longitude, time?, depth?, node?) —

one gridded value at one time/lat/lon, snapped to the nearest grid cell.

Auth

Keyless. Both nodes serve anonymously. A User-Agent is sent on every request.

Data sources

  • — node: "westcoast" (default). ERD/SWFSC: satellite

SST, chlorophyll, winds, currents, and cwwcNDBCMet, the NDBC buoy archive.

  • — node: "national". Operational VIIRS and ABI products.

The two hold different datasets. A dataset_id from one does not resolve on the other, and the error for that is "Currently unknown datasetID=...", which reads as a broken id rather than a wrong node.

Traps

Protocol-level traps live in shared/src/erddap.ts (shared with ioos-erddap) and are documented in full at the top of that file. The two that bite hardest here:

  • ERDDAP reports "nothing found" as HTTP 404 with a plain-text body, not as an empty table —

for a search that matches nothing AND for a tabledap query whose constraints exclude every row. The

Read from source at commit 2c8671d7e9ecOBSERVED · 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-coastwatch -- npx -y @pipeworx/[email protected]
claude-desktop
{
  "mcpServers": {
    "mcp-noaa-coastwatch": {
      "command": "npx",
      "args": [
        "-y",
        "@pipeworx/[email protected]"
      ]
    }
  }
}
03

Exposed tools (4)

4 read · 0 write · 0 destructive.

ToolRiskDescription
noaa_coastwatch_dataset_inforeadVariable names, units, axes, time coverage and licence for one CoastWatch ERDDAP dataset.
noaa_coastwatch_griddap_pointreadOne gridded value at one time, latitude and longitude — sea surface temperature,
noaa_coastwatch_search_datasetsreadFull-text search NOAA CoastWatch\
noaa_coastwatch_tabledapreadRows from a CoastWatch tabledap dataset — buoy and station timeseries such as the NDBC
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 (2 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 2c8671d7e9ecfull audit observations/trust-audit/mcp-server/pipeworx-io__mcp-noaa-coastwatch.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-112c8671d7e9ecSAFEB89first audit
06

Questions

What is the mcp-noaa-coastwatch MCP server?

NOAA CoastWatch — satellite and model ocean data via ERDDAP.

What tools does mcp-noaa-coastwatch expose?

4 in total: 4 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-coastwatch 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-coastwatch need?

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

How does mcp-noaa-coastwatch 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-coastwatch at 0.1.1.

How current is this page?

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

Advertisement