mcpbeat Sign in

Noaa Marine MCP Server

answering

Noaa Marine MCP Server is answering right now. Last checked 2 min ago. 908 installs a week from npm. It exposes 8 tools. Last commit 29 Oct 2026.

Find NOAA tide stations and NDBC buoys, fetch tide predictions, currents, and live conditions.

Installs per day peak 372 · avg 50 · +704% w/w
a month agotoday
Uptime history 91 days of history · worst day 0%
91 days agonow
100.0%
Uptime 24h
92 of 92 checks
8
Tools
read from the server
529 ms
Response time
average over 24h
908
Installs / week
npm and PyPI

What changed 55

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 25 August 2026. No other catalogue keeps this.

29 Oct 8 tools changed the parameters they ask for noaa_marine_find_stations, noaa_marine_get_conditions, noaa_marine_get_current_profile and 5 more
29 Oct 6 tool descriptions were rewritten noaa_marine_find_stations, noaa_marine_get_conditions, noaa_marine_get_currents and 3 more
29 Oct a tool changed version
28 Oct a tool description was rewritten noaa_marine_find_stations
28 Oct a tool changed version
25 Oct a tool changed version
9 Oct a tool changed version
23 Sep 4 tools changed the parameters they ask for5 times that day noaa_marine_find_stations, noaa_marine_get_currents, noaa_marine_get_tide_predictions and 1 more
23 Sep a tool changed version3 times that day
23 Sep a tool appeared noaa_marine_get_monthly_means
and 30 more, back to 25 August 2026

Nothing serious here today

Today is the operative word: we check Noaa Marine MCP Server every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 2 min ago.

run in your terminal
claude mcp add noaa-marine-mcp-server --transport http https://noaa-marine.caseyjhand.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://noaa-marine.caseyjhand.com/mcp
~/.codex/config.toml
[mcp_servers.noaa-marine-mcp-server]
url = "https://noaa-marine.caseyjhand.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "noaa-marine-mcp-server": {
      "url": "https://noaa-marine.caseyjhand.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "noaa-marine-mcp-server": {
      "type": "http",
      "url": "https://noaa-marine.caseyjhand.com/mcp"
    }
  }
}

Available tools 8

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

noaa
noaa_marine_find_stations
Find CO-OPS tide, water-level and current stations and NDBC buoys near a location, by name, or by station ID, returning a unified list with source, data capabilities, coordinates, and — for NDBC — the physical platform class. This is the required first step for resolving a coordinate pair, a station name, or a bare station number to the station IDs the data tools take (query matches station names and IDs, not places, so a town or marina no station is named after needs geocoding to coordinates first): CO-OPS tide and water-level IDs are numeric (e.g. 9447130 for Seattle), CO-OPS current IDs are alphanumeric (e.g. ACT4176), and NDBC station IDs are mostly 5-character alphanumeric codes (e.g. 46041), with some 7-digit numbers. Two axes are reported separately — capabilities and type name the data products a station serves (tide, current, water_level, met, current_profile, water_quality), while platform is the NDBC physical classification (buoy, fixed, oilrig, dart, tao, usv, other) that CO-OPS stations do not carry. Supply latitude and longitude together for a proximity search, or query for a name-or-ID substring matched against both sources, or state for CO-OPS coverage in one state; the filters combine, and results lead with an exact ID match unless a proximity search is ordering them by distance. A search that matches nothing is a success with total_found: 0 carrying an echo of the filters that were applied, and a search whose catalogs did not all answer says which source is missing. CO-OPS prediction stations carry a third axis as well, prediction_class, which says what a station can actually answer: a tide station is either reference, serving both hilo and the 6-minute curve, or subordinate, serving hilo only, while a current station carries its class per depth bin in bins[] — a harmonic or subordinate bin serves the normal flood/ebb/slack series, and a weak_and_variable bin may instead answer noaa_marine_get_currents with a coverage statement and no events, or report that CO-OPS publishes no predictions for it at all, so prefer a harmonic bin when one is in range.
noaa_marine_get_conditions
Live marine conditions from an NDBC buoy: wave height, period and direction, wind speed, gust and direction, sea-surface temperature, air temperature, barometric pressure, and dew point. All values are SI units — wind in m/s, wave height in m, pressure in hPa, temperatures in °C — except TIDE, which is in feet, and VIS, in nautical miles, both rarely populated at offshore buoys; a numeric field is null when the buoy sensor did not report a value, which is normal offshore. Row cadence varies by station from 5 to 60 minutes, so observed_at can be that old, and NDBC writes each block of columns on its own cycle, so any block can resolve from an earlier row within 90 minutes of observed_at. Waves carry their own waves_observed_at, null when no wave sample falls inside that window, and any other block read from an earlier row is named with its measurement time in the response notice. Use noaa_marine_find_stations with source="ndbc" and types=["met"] to find station IDs near a location, since met-flagged stations are the ones most likely to serve live conditions: roughly a third of active NDBC stations report neither meteorological nor current data, most of those have no observation file, and omitting the types filter surfaces station IDs this tool cannot read. A 7-digit CO-OPS station ID also works when NDBC relays that gauge's met sensors under a station of its own: the response reads the relay, returns its ID as station_id with its name and coordinates, and returns the requested ID as coops_station_id; a gauge NDBC does not relay fails buoy_not_found.
noaa_marine_get_current_profile
Observed ocean-current depth profile from an NDBC ADCP buoy — the most recent measurement of current speed and direction at each depth bin, returning depth in meters, direction in degrees true (the direction the current flows toward), and speed in cm/s. It is distinct from noaa_marine_get_currents, which returns CO-OPS tidal-current predictions of max flood, ebb and slack rather than these observed acoustic-Doppler measurements. A depth bin is reported whenever NDBC gives it a depth, and its direction or speed is null when the sensor did not report that component. Use noaa_marine_find_stations with source="ndbc" and types=["current_profile"] to find station IDs, since most NDBC stations serve no ADCP profile and an unfiltered search returns IDs this tool cannot read.
noaa_marine_get_currents
Tidal current predictions for a CO-OPS current station: max flood and ebb speeds, slack times, and the station's mean flood and ebb bearings. These are forecast predictions from CO-OPS, distinct from noaa_marine_get_current_profile, which returns NDBC observed ocean-current measurements binned by depth. The default MAX_SLACK interval is the practical planning view, showing when currents peak and when slack water occurs, and a 6-minute interval returns the continuous curve for detailed analysis, each row carrying its own flood/ebb/slack sense. A station can publish predictions for several depth bins at different depths: bin selects one, omitting it takes the CO-OPS default of the shallowest bin, and the bin and its depth are echoed on every response — read bins[] on a noaa_marine_find_stations current row for the bins a station actually has. A station whose currents CO-OPS will not predict as discrete events answers with an empty list and its own wording in the notice rather than an error. Both intervals page by row count: each call returns up to limit rows of whichever series the interval selects, starting at offset, and a range that matched more reports rows_matched, rows_returned, and next_offset — how much matched and which offset reaches the rest. Current station IDs are alphanumeric (e.g. ACT4176), distinct from the numeric tide and water-level IDs, and the date range is limited to 1 year per request — use noaa_marine_find_stations with types=["current"] to obtain a valid current station ID.
noaa_marine_get_monthly_means
Verified monthly means for a CO-OPS water-level station, one row per station-month: the month's highest and lowest water, its tidal datums (MHHW, MHW, MSL, MTL, MLW, MLLW, DTL), tidal ranges (GT, MN, DHQ, DLQ), and lunitidal intervals (HWI, LWI) — the record a sea-level or tidal-range trend over years to decades is read from. Heights are relative to the requested datum in the requested units. A value CO-OPS publishes no figure for is omitted rather than reported as zero; a Great Lakes station carries only highest, msl, and lowest. A range may span up to 73,000 days, checked before the call, and CO-OPS verifies this product monthly, for the prior month, so a window ending on or after the first day of the prior month can fail with verified_data_lag. Each call returns up to limit months from offset; a range of at most limit months returns whole, and a longer one reports rows_matched, rows_returned, and next_offset, the offset that reaches the rest — raise limit to read a decades-long record in one call. Use noaa_marine_find_stations with types=["water_level"] first to resolve a station name or location to a station ID.
noaa_marine_get_ocean_observations
Live sub-surface oceanographic observations from an NDBC station's water-quality sensors: at each reported depth, water temperature, conductivity, salinity, dissolved oxygen as both saturation percent and concentration in ppm, chlorophyll, turbidity, pH, and redox potential. This is the water-column counterpart to noaa_marine_get_conditions, which returns surface meteorological and wave data — use this tool for what the water is doing below the surface, that one for weather and sea state at the buoy. It returns the most recent observation as one reading per reported depth, and most stations report a single depth while some report several at the same time; sensor coverage is sparse, most stations populating only water temperature and salinity, and any value the station did not report comes back null rather than a fabricated zero, as do latitude and longitude for a station absent from the NDBC active-stations list. Sub-surface sensors are on only a subset of NDBC stations, so find one with noaa_marine_find_stations using source="ndbc" and types=["water_quality"], which filters on NDBC's own water-quality catalog flag — the flag and actual .ocean availability drift, so this tool reads any station that serves the file and returns observations_not_found for one that does not.
noaa_marine_get_tide_predictions
High and low tide predictions for a CO-OPS tide station over a date range. The default hilo interval returns the time, height, and tide type (H for high, L for low) of each event, while the 6-minute interval returns the detailed tide curve. Most tide stations are subordinate — CO-OPS derives their high and low events as offsets from a reference station and publishes no 6-minute curve for them — so interval="6min" reaches only a reference station, and a subordinate station comes back as subordinate_no_6min naming the reference station to ask instead; the prediction_class on a noaa_marine_find_stations tide row says which kind a station is before the call. Datum defaults to MLLW, mean lower low water, the standard for US nautical charts, and the date range is limited to 1 year per request. Each call returns up to limit predictions starting at offset; when the range matched more, rows_matched, rows_returned, and next_offset report how much matched and which offset reaches the rest, so a year of events is read by walking offset rather than by splitting the range. Use noaa_marine_find_stations first to resolve a station name or location to a numeric station ID.
noaa_marine_get_water_level
Observed water level, real-time or historical, for a CO-OPS water-level station, paired with tide predictions for the same period so the residual (observed − predicted) shows storm surge when positive and anomalous drawdown when negative. The interval selects the cadence: 6min (default) is the full curve, hourly and high_low cover months to a year of the same series at far fewer rows, and daily_mean serves Great Lakes stations only. Each interval carries its own CO-OPS range ceiling — 31 days for 6min, 365 for hourly and high_low, 3655 for daily_mean — rejected locally before the call, and only 6min and hourly report a residual. Observations and predictions are fetched independently, so when the prediction series is empty, predictions_status says whether CO-OPS has none for this station and range or the prediction fetch failed — the observed series returns either way, and residual_summary is present only when both series are and the cadence supports the join. A sensor outage leaves slots with no reading; those slots are dropped and counted in gaps_dropped, so the observed series is continuous across the range only when that count is absent. Each call returns up to limit observations from offset, with the predictions in their time span; a range of at most limit observations returns whole, and a longer one reports rows_matched, rows_returned, and next_offset, the offset that reaches the rest. Use noaa_marine_find_stations first to resolve a station name or location to a valid station ID.

Endpoints

URLTransportStateLatencyChecked
https://noaa-marine.caseyjhand.com/mcp streamable-http answering 540 ms 2 min ago

Alternatives to Noaa Marine MCP Server

same job, measured the same way
Tides MCP
by mrfentmen

MCP server for NOAA tides and currents predictions and water levels.

692 installs/wk local only
Ndbc MCP
by mrfentmen

NDBC ocean buoys and coastal stations: latest wind, wave and water temperatures, plus recent history

654 installs/wk local only
NOAA WW3 MCP Server
by oceanmodeling

GFS-Wave (WAVEWATCH III) forecasts and NDBC buoy wave observations

112 installs/wk local only
NOAA WW3 MCP Server
by mansurjisan

GFS-Wave (WAVEWATCH III) forecasts and NDBC buoy wave observations

local only
OndaCast
by ondacast

Find live radio stations, podcasts, free audiobooks, song charts and the radio guide on OndaCast.

9 tools answering
Noaa Tides
by pipeworx-io

NOAA Tides & Currents MCP.

346 installs/wk 51 tools answering
Batru — Competitive Game Intelligence for AI Agents
by batru

Live competitive-game predictions, meta data and decision tools for AI agents.

356 installs/wk 17 tools answering
NOAA NDBC MCP Server
by mansurjisan

NOAA National Data Buoy Center observations: waves, SST, wind, pressure from 1,300+ stations

92 installs/wk local only

Noaa Marine MCP Server — questions

Answers built from our own checks of this server.

What can Noaa Marine MCP Server do?
It exposes 8 tools, read directly from the server on our last check. Among them: noaa_marine_find_stations, noaa_marine_get_conditions, noaa_marine_get_current_profile, noaa_marine_get_currents, noaa_marine_get_monthly_means, noaa_marine_get_ocean_observations and 2 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Noaa Marine MCP Server working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 529 ms. The bar chart above shows every period we have measured.
How do I connect Noaa Marine MCP Server?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Noaa Marine MCP Server need an API key?
No. Noaa Marine MCP Server completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 8 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Noaa Marine MCP Server?
It answers our handshake in 529 ms on average, which is faster than 23% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Noaa Marine MCP Server?
The npm package @cyanheads/noaa-marine-mcp-server was installed 908 times in the last week. Week over week that is +704%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Noaa Marine MCP Server open source?
The code is open source: it is published under the Apache-2.0 licence, written in TypeScript, 3 stars on GitHub and 1 open issue. The licence covers the code in the repository, not the hosted service at noaa-marine.caseyjhand.com, which runs on its operator's own terms.