Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

NOAA Tides and Currents

NPM · @RYANCARDIN/NOAA-TIDES-CURRENTS-MCP-SERVER · 2 COMPONENTS · SCANNED SEP 21

NOAA tides and currents: water levels, tide predictions, currents, met data, flooding, sun and moon

+1 this week 84 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 34 of 110 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability78
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 8684 tokens (~263/item across 33 items; 23 tools + 10 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 23 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the NOAA Tides and Currents MCP server?

NOAA Tides and Currents runs locally as an npm package, launched with npx -y @ryancardin/noaa-tides-currents-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @ryancardin/noaa-tides-currents-mcp-server

# add to Claude Code
claude mcp add ryancardin15-noaa-tides-and-currents-mcp -- npx -y @ryancardin/noaa-tides-currents-mcp-server
// .cursor/mcp.json
{
  "mcpServers": {
    "ryancardin15-noaa-tides-and-currents-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ryancardin/noaa-tides-currents-mcp-server"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "ryancardin15-noaa-tides-and-currents-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ryancardin/noaa-tides-currents-mcp-server"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add ryancardin15-noaa-tides-and-currents-mcp -- npx -y @ryancardin/noaa-tides-currents-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ryancardin15-noaa-tides-and-currents-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@ryancardin/noaa-tides-currents-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ryancardin15-noaa-tides-and-currents-mcp --command npx --arg -y --arg @ryancardin/noaa-tides-currents-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  ryancardin15-noaa-tides-and-currents-mcp:
    command: "npx"
    args: ["-y", "@ryancardin/noaa-tides-currents-mcp-server"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "ryancardin15-noaa-tides-and-currents-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@ryancardin/noaa-tides-currents-mcp-server"
      ]
    }
  }
}
# add to Vellum
assistant mcp add ryancardin15-noaa-tides-and-currents-mcp -t stdio -c npx -a -y @ryancardin/noaa-tides-currents-mcp-server
// mcp.json
{
  "mcpServers": {
    "ryancardin15-noaa-tides-and-currents-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ryancardin/noaa-tides-currents-mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 21 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 −2
    • Stability: pass → 0.83 functional
  • 16 Sept 26 0
    • Stability: 0.97 → pass security
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 −2
    • Stability: pass → 0.80 functional
  • 9 Sept 26 0
    • Stability: 0.97 → pass security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed npm/@ryancardin/noaa-tides-currents-mcp-server@2.0.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 110 packages
Packages resolved 110
Stale 34
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 23 exposed · ~8,495 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
astro_get_moon_phase ~208

Get the moon phase for a date (or each day of a date range if end_date is given): phase name (New Moon, Waxing Crescent, ...), illuminated fraction, age in days within the 29.53-day cycle, distance (km), apparent diameter (degrees), and waxing/waning. Tide context: spring tides (largest range) occur just after new and full moons; neap tides after quarter moons. Computed locally — no NOAA data involved.

NameTypeReqDescription
datestringDate in YYYY-MM-DD format. Defaults to today.
end_dateOptional range end (YYYY-MM-DD): returns one entry per day from date through end_date.
latitudenumberOptional latitude for distance/diameter precision.
longitudenumberLongitude in decimal degrees (-180 to 180).
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.

No output schema declared.

No examples provided.

astro_get_next_moon_phase ~144

Find the date(s) of the next occurrence(s) of a principal moon phase (New Moon, First Quarter, Full Moon, Last Quarter) from a starting date. Use for: "when is the next full moon?", planning around spring tides (which follow new/full moons by 1–2 days).

NameTypeReqDescription
countintegerHow many occurrences to return.
datestringSearch start date (YYYY-MM-DD). Defaults to today.
phasestringyesWhich principal phase to find.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.

No output schema declared.

No examples provided.

astro_get_next_sun_event ~218

Find the next occurrence(s) of a sun event (sunrise, sunset, dawn, dusk, solarNoon, night, nightEnd, goldenHourStart, goldenHourEnd, nauticalDawn, nauticalDusk, astronomicalDawn, astronomicalDusk) at a location from a starting date. Use for: "when is sunset today?", planning golden-hour photography or dawn fishing around tide windows.

NameTypeReqDescription
countintegerHow many occurrences to return.
datestringSearch start date. Defaults to today.
eventstringyesSun event to find.
latitudenumberyesLatitude in decimal degrees (-90 to 90).
longitudenumberyesLongitude in decimal degrees (-180 to 180).
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
timezonestringIANA timezone for output times (e.g. "America/New_York"). Defaults to UTC ISO timestamps.

No output schema declared.

No examples provided.

astro_get_sun_position ~182

Get the sun's position for a date, time, and location: azimuth (degrees clockwise from north as rendered here), altitude above the horizon (degrees), plus approximate declination and right ascension. Use for: shadow/lighting analysis, solar exposure. Computed locally with suncalc; declination/RA are approximate.

NameTypeReqDescription
datestringDate in YYYY-MM-DD format. Defaults to today.
latitudenumberyesLatitude in decimal degrees (-90 to 90).
longitudenumberyesLongitude in decimal degrees (-180 to 180).
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
timestringTime of day (HH:MM[:SS], interpreted in the local runtime timezone). Defaults to now.

No output schema declared.

No examples provided.

astro_get_sun_times ~213

Get sunrise, sunset, solar noon, dawn/dusk (civil), nautical dawn/dusk, astronomical dawn/dusk, golden hour, and day length for a location and date (or each day of a range if end_date is given). Times are ISO UTC unless an IANA timezone is provided. At high latitudes some events may be null (e.g. no astronomical night in summer). Computed locally.

NameTypeReqDescription
datestringDate in YYYY-MM-DD format. Defaults to today.
end_dateOptional range end: one entry per day.
latitudenumberyesLatitude in decimal degrees (-90 to 90).
longitudenumberyesLongitude in decimal degrees (-180 to 180).
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
timezonestringIANA timezone for output times (e.g. "America/New_York"). Defaults to UTC ISO timestamps.

No output schema declared.

No examples provided.

noaa_find_nearest_stations ~293

Find the NOAA stations closest to a latitude/longitude point, sorted by distance. Use this to answer "what's the tide station near <place>?" — geocode the place to coordinates first, then call this. Filter by type to match the data you need (e.g. type "tidepredictions" before calling noaa_get_tide_predictions, "currents" before noaa_get_currents — current stations have different IDs than water-level stations). Distance is computed great-circle (Haversine) and reported in both km and miles. (NOAA's API has no native coordinate search; this tool maintains a cached station directory.)

NameTypeReqDescription
latitudenumberyesLatitude in decimal degrees (-90 to 90).
limitintegerNumber of stations to return.
longitudenumberyesLongitude in decimal degrees (-180 to 180).
max_distance_kmnumberOptional cutoff radius in kilometers.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
typestringStation capability filter. Common: "waterlevels" (active water level), "tidepredictions", "currents" (observed currents), "currentpredictions", "met" (weather sensors). Full list via noaa_get_referen…

No output schema declared.

No examples provided.

noaa_get_current_predictions ~635

Get predicted tidal currents for a NOAA current prediction station. interval="max_slack" (recommended for navigation) returns the tidal-current events — maximum flood, maximum ebb, and slack water times — up to 1 year per request. Other intervals (h, 1, 6, 10, 30, 60 minutes) return a velocity time series — up to 31 days. UNITS WARNING: english = knots; metric = cm/s. vel_type="speed_dir" returns Speed/Direction pairs; "default" returns velocities projected on the flood/ebb axis (Velocity_Major: positive = flood direction, negative = ebb) with meanFloodDir/meanEbbDir. Subordinate (type "S") prediction stations derive from a reference station — see noaa_get_prediction_offsets.

NameTypeReqDescription
begin_datestringStart date/time. Formats: yyyyMMdd, "yyyyMMdd HH:mm", MM/dd/yyyy, or ISO yyyy-MM-dd[THH:mm].
binintegerDepth bin number (current meters measure at multiple depths). Find valid bins with noaa_get_station_info (expand ["bins"]). bin=0 returns ALL bins but caps the request at 7 days. Omit at single-bin s…
datestringShortcut window: "today" = midnight to now, "latest" = single most recent reading, "recent" = last 72 hours. Mutually exclusive with begin_date/end_date/range.
end_datestringEnd date/time. Same formats as begin_date.
intervalstring"max_slack" = max flood/ebb + slack events (1-year max span); h/1/6/10/30/60 = time series (31-day max span).
rangeintegerNumber of hours. With begin_date: hours forward. With end_date: hours back. Alone: hours back from now.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
time_zonestringTime zone for timestamps: gmt = UTC, lst = station local standard time (no DST), lst_ldt = station local time with DST. Note: daily_mean data requires lst.
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…
vel_typestring"default" = flood/ebb-axis velocity (Velocity_Major signed: + flood, - ebb); "speed_dir" = speed and compass direction.

No output schema declared.

No examples provided.

noaa_get_currents ~558

Get observed current speed and direction from a NOAA current meter station. Current stations use alphanumeric IDs (e.g. "cb0102" Chesapeake, "bh0101" Boston Harbor) — NOT the 7-digit water-level station IDs. Find them with noaa_search_stations (type "currents") or noaa_find_nearest_stations. UNITS WARNING: english = knots, but metric = cm/s (centimeters/second, not m/s). Returns per record: t (time), s (speed), d (direction, degrees true), b (bin number). Max 7 days per request. Set expand_detailed=true to include per-beam echo intensity and correlation diagnostics.

NameTypeReqDescription
begin_datestringStart date/time. Formats: yyyyMMdd, "yyyyMMdd HH:mm", MM/dd/yyyy, or ISO yyyy-MM-dd[THH:mm].
binintegerDepth bin number (current meters measure at multiple depths). Find valid bins with noaa_get_station_info (expand ["bins"]). bin=0 returns ALL bins but caps the request at 7 days. Omit at single-bin s…
datestringShortcut window: "today" = midnight to now, "latest" = single most recent reading, "recent" = last 72 hours. Mutually exclusive with begin_date/end_date/range.
end_datestringEnd date/time. Same formats as begin_date.
expand_detailedbooleanInclude ADCP beam diagnostics (echo1-4, corr1-4) per record.
rangeintegerNumber of hours. With begin_date: hours forward. With end_date: hours back. Alone: hours back from now.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
time_zonestringTime zone for timestamps: gmt = UTC, lst = station local standard time (no DST), lst_ldt = station local time with DST. Note: daily_mean data requires lst.
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…

No output schema declared.

No examples provided.

noaa_get_extreme_water_levels ~294

Get NOAA's extreme water level exceedance statistics for a station: the annual exceedance probability levels (e.g. the 1%-annual-chance "100-year" level) and historical extreme events, computed from the station's verified record. Use for flood risk questions ("what water level has a 1% chance per year at X?"). Levels are relative to the station's datums for the 1983–2001 epoch. Only long-record stations have this product.

NameTypeReqDescription
extremeTypestringExtreme statistics basis: annual (default) or monthly extremes.
levelTypestringHigh extremes (default) or low.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…

No output schema declared.

No examples provided.

noaa_get_harmonic_constituents ~338

Get the harmonic constituents NOAA uses to compute tide or current predictions at a station — the amplitude, phase, and angular speed of each tidal constituent (M2, S2, N2, K1, O1, ...). For water-level stations: amplitude (feet/meters), phase_GMT and phase_local (degrees), speed (degrees/hour). For current stations (alphanumeric IDs) constituents are current ellipses (major/minor amplitudes and phases per depth bin — pass bin to filter). Use for: building custom tide computations, checking a station's dominant constituents (M2 amplitude indicates semidiurnal range), verifying whether a station is harmonically predicted at all. Only reference (R) stations have constituents — subordinate stations use offsets (noaa_get_prediction_offsets).

NameTypeReqDescription
binintegerFor current stations: restrict to one depth bin.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…

No output schema declared.

No examples provided.

noaa_get_high_tide_flooding ~527

Get NOAA high tide flooding (HTF, "nuisance"/"sunny day" flooding) statistics for a station. Reports: - daily: flood occurrence per day (REQUIRES start_date and end_date, YYYYMMDD) - monthly / seasonal / annual: counts of minor/moderate/major flood days per period (filter with year/month/season_months, or range = last N periods) - met_year_annual: counts by meteorological year (May–April) - annual_outlook: NOAA's projected flood-day outlook for the coming met year - projections: decadal flood-day projections through 2100 (filter by decade, flood_threshold) - record_days: record flood-day counts - likely_scenarios: likely decadal flooding scenarios - daily_likelihoods: day-by-day flood likelihood forecasts Use for: "how often does X flood?", trends in nuisance flooding, future flooding projections. Not all stations have HTF products — check the HTFhistorical flag via noaa_get_station_info.

NameTypeReqDescription
decadeintegerDecade for projections/likely_scenarios (e.g. 2050).
end_datestringYYYYMMDD — required for report "daily".
flood_thresholdstringFlood severity threshold for projections/likely_scenarios.
met_yearintegerMeteorological year (met_year_annual / annual_outlook).
monthintegerFilter to a month (monthly report).
rangeintegerNumber of years to cover: with year (or met_year) set, returns year..year+range; without, returns the last N years.
reportstringWhich HTF report to retrieve (see tool description).
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
season_monthsstringSeason for the seasonal report (Dec-Jan-Feb, Mar-Apr-May, ...).
start_datestringYYYYMMDD — required for report "daily".
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
yearintegerFilter to a calendar year (monthly/seasonal/annual/record_days).

No output schema declared.

No examples provided.

noaa_get_meteorological_data ~532

Get observed meteorological/oceanographic sensor data from a NOAA station. Products: air_temperature, water_temperature, wind (speed/gust/direction), air_pressure, air_gap (bridge clearance to water surface), conductivity, visibility, humidity, salinity. Units by system: temps °F/°C; wind knots (english) or m/s (metric); air_gap feet/meters; visibility nautical miles/kilometers; air_pressure always millibars; salinity always PSU. Max span ~31 days per request; interval "6" (6-minute, default) or "h" (hourly). Not every station has every sensor — check with noaa_get_station_info (expand ["sensors"]). Water-level data is served by noaa_get_water_levels, not this tool.

NameTypeReqDescription
begin_datestringStart date/time. Formats: yyyyMMdd, "yyyyMMdd HH:mm", MM/dd/yyyy, or ISO yyyy-MM-dd[THH:mm].
datestringShortcut window: "today" = midnight to now, "latest" = single most recent reading, "recent" = last 72 hours. Mutually exclusive with begin_date/end_date/range.
end_datestringEnd date/time. Same formats as begin_date.
intervalstring"6" = 6-minute observations (default), "h" = hourly.
productstringyesSensor product to retrieve.
rangeintegerNumber of hours. With begin_date: hours forward. With end_date: hours back. Alone: hours back from now.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
time_zonestringTime zone for timestamps: gmt = UTC, lst = station local standard time (no DST), lst_ldt = station local time with DST. Note: daily_mean data requires lst.
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…

No output schema declared.

No examples provided.

noaa_get_prediction_offsets ~300

Get the offsets a subordinate (type "S") prediction station applies to its reference station's predictions. kind "tide": returns refStationId, time offsets for high/low tide (minutes), height offsets for high/low tide, and whether the height adjustment is a ratio (multiplied) or fixed value — this is how NOAA derives subordinate-station tide times from the reference harmonic station. kind "current": returns refStationId/bin, mean flood/ebb directions, and time adjustments (minutes) for max flood, slack-before-ebb, max ebb, slack-before-flood plus amplitude ratios. Note: current prediction offsets are indexed per bin — pass the station_bin_suffix ID form (e.g. "ACT0091_1") if the plain ID returns nothing. Reference (R) stations return empty/null offsets — they don't need any.

NameTypeReqDescription
kindstring"tide" = tidepredoffsets; "current" = currentpredictionoffsets.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…

No output schema declared.

No examples provided.

noaa_get_reference_guide ~226

Get curated reference documentation for NOAA CO-OPS concepts and parameters. Topics: - products: Every NOAA CO-OPS data product and which tool serves it - datums: Vertical datums (MLLW, MSL, IGLD...) and station applicability - units: What english vs metric means per measurement (incl. cm/s currents) - time_zones: gmt / lst / lst_ldt semantics and restrictions - intervals: Valid interval values per product family - station_types: Station type filters and station ID formats - data_limits: Maximum date-range span per product - quality_flags: Data quality fields (v/s/f/q), flag letters, HH/H/L/LL - date_formats: Accepted date formats and parameter combinations Consult this before constructing unusual requests — especially "datums" (which vertical reference to use and station applicability), "units" (english/metric asymmetries like cm/s current speeds), and "data_limits" (maximum date spans per product).

NameTypeReqDescription
topicstringyesReference topic to retrieve.

No output schema declared.

No examples provided.

noaa_get_sea_level_rise_projections ~324

Get NOAA's Interagency Sea Level Rise Scenario projections for a station (from the 2022 technical report): projected relative sea level (meters or feet, see units field) per decade through 2150 under the chosen scenario. Scenarios: low, intermediate-low, intermediate, intermediate-high, high, extreme, or all. Use for coastal planning questions ("how much sea level rise is projected at X by 2050?"). Pair with noaa_get_sea_level_trends (observed) and noaa_get_high_tide_flooding (flooding impact).

NameTypeReqDescription
projection_yearintegerFilter to a single decade year (e.g. 2050).
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
scenariostringEmissions/rise scenario from the 2022 Interagency report.
stationstringStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…

No output schema declared.

No examples provided.

noaa_get_sea_level_trends ~238

Get the long-term relative sea level trend at a NOAA station: trend and error (reported by NOAA in mm/yr or inches/decade — the payload's trendUnits field says which), the observation period (startDate/endDate), and seasonal amplitude. Relative sea level combines ocean rise AND local land movement (subsidence/uplift), so trends vary widely by station (e.g. strongly positive on the Gulf Coast, negative in Alaska). Requires a station with a long water-level record; omit station to list all (affil "US" or "Global" filters the network).

NameTypeReqDescription
affilstringNetwork filter when listing multiple stations.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…

No output schema declared.

No examples provided.

noaa_get_station_datums ~388

Get the accepted tidal datum values for a station: the elevations of MHHW, MHW, MTL, MSL, DTL, MLW, MLLW, STND, NAVD88 (where computed), plus GT (great diurnal range), MN (mean range), LAT/HAT (lowest/highest astronomical tide), and the station's historical extreme min/max water levels with dates. epoch "current" returns the present National Tidal Datum Epoch (1983–2001) values; "superseded" returns the prior epoch's values (useful for historical comparisons — not all stations have one). All values share one reference zero (the station datum), so datum-to-datum conversion is subtraction: height_above_MLLW = height_above_MSL + (MSL − MLLW). Use this tool to (1) check which datums a station supports before requesting data, and (2) convert heights between datums.

NameTypeReqDescription
epochstring"current" = present NTDE (1983–2001); "superseded" = prior epoch values.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…

No output schema declared.

No examples provided.

noaa_get_station_info ~334

Get a NOAA station's full metadata record: location, state, time zone, tide type, Great Lakes flag, capability flags, and links to available sub-resources. Optionally expand sub-resources inline via the "expand" list: - details (established/removed dates), sensors (installed instruments + elevations), floodlevels (NOS/NWS minor/moderate/major flood thresholds), benchmarks, products (available data page links), notices, disclaimers — for water-level stations - bins (ADCP depth bins), deployments — for current stations (alphanumeric IDs) Use this before requesting data to confirm what the station actually collects. For datum values use noaa_get_station_datums; for harmonic constituents use noaa_get_harmonic_constituents.

NameTypeReqDescription
expandarraySub-resources to embed inline (availability varies by station type).
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…

No output schema declared.

No examples provided.

noaa_get_tide_predictions ~630

Get NOAA harmonic tide predictions (future or past) for a station. interval="hilo" (recommended for "when is high/low tide") returns the daily tide events with type H/L — up to 10 years per request. Other intervals (h, 1, 5, 6, 10, 15, 30, 60 minutes) return a height time series — up to 1 year per request. Heights are relative to the requested datum (MLLW default). Notes: - Great Lakes stations have NO tide predictions (lake levels are not tidal). - Subordinate stations (type "S") only support interval=hilo; use the station's reference (R) station for interval series. - Predictions are astronomical only — they exclude weather effects (storm surge, wind setup). Compare with noaa_get_water_levels for actual conditions.

NameTypeReqDescription
begin_datestringStart date/time. Formats: yyyyMMdd, "yyyyMMdd HH:mm", MM/dd/yyyy, or ISO yyyy-MM-dd[THH:mm].
datestringShortcut window: "today" = midnight to now, "latest" = single most recent reading, "recent" = last 72 hours. Mutually exclusive with begin_date/end_date/range.
datumstringVertical reference datum for heights. MLLW is the standard chart datum for coastal stations. IGLD and LWD apply to Great Lakes stations ONLY; NAVD/CRD exist only at stations where computed. Check a s…
end_datestringEnd date/time. Same formats as begin_date.
intervalstring"hilo" = high/low tide events only (max 10-year span). "h" = hourly, or 1/5/6/10/15/30/60-minute series (max 1-year span).
rangeintegerNumber of hours. With begin_date: hours forward. With end_date: hours back. Alone: hours back from now.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
time_zonestringTime zone for timestamps: gmt = UTC, lst = station local standard time (no DST), lst_ldt = station local time with DST. Note: daily_mean data requires lst.
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…

No output schema declared.

No examples provided.

noaa_get_top_ten_water_levels ~319

Get a station's highest recorded water levels: analysis "toptenwaterlevels" returns the ten highest events on record (with date, height, causal event name like "Great New England Hurricane", and category); "peakwaterlevels" returns peak event records (optionally filtered by year). Heights are relative to the requested datum (MHHW is typical for flood comparisons). Use for "what's the worst flooding ever recorded at X?".

NameTypeReqDescription
analysisstring"toptenwaterlevels" = ten highest on record; "peakwaterlevels" = peak event records.
datumstringReference datum for reported heights (MHHW is standard for flood context).
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…
yearintegerFor peakwaterlevels: filter to one year.

No output schema declared.

No examples provided.

noaa_get_water_level_summaries ~660

Get verified summary water-level products from a NOAA station: - high_low: each day's observed highs/lows with ty = HH (higher high), H, L, LL (lower low). Max 1 year per request. - daily_mean: daily mean levels — GREAT LAKES STATIONS ONLY; NOAA requires local standard time, which this tool applies automatically. Max 10 years. - daily_max_min: daily maxima/minima from hourly and 6-minute data with completeness percentages. Max 10 years. - monthly_mean: monthly tidal datum means (columns MHHW, MHW, MSL, MTL, MLW, MLLW, DTL, GT, MN, DHQ, DLQ, HWI, LWI, highest, lowest). Max 200 years — ideal for long-term climatology. Use for: historical extremes, mixed-tide analysis (HH vs H), long-term averages. For raw time series use noaa_get_water_levels; for future tides use noaa_get_tide_predictions.

NameTypeReqDescription
begin_datestringStart date/time. Formats: yyyyMMdd, "yyyyMMdd HH:mm", MM/dd/yyyy, or ISO yyyy-MM-dd[THH:mm].
datestringShortcut window: "today" = midnight to now, "latest" = single most recent reading, "recent" = last 72 hours. Mutually exclusive with begin_date/end_date/range.
datumstringVertical reference datum for heights. MLLW is the standard chart datum for coastal stations. IGLD and LWD apply to Great Lakes stations ONLY; NAVD/CRD exist only at stations where computed. Check a s…
end_datestringEnd date/time. Same formats as begin_date.
productstringyesSummary product: high_low (daily tide extremes, 1yr max), daily_mean (Great Lakes only, 10yr), daily_max_min (10yr), monthly_mean (datum means, 200yr).
rangeintegerNumber of hours. With begin_date: hours forward. With end_date: hours back. Alone: hours back from now.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
time_zonestringTime zone for timestamps: gmt = UTC, lst = station local standard time (no DST), lst_ldt = station local time with DST. Note: daily_mean data requires lst.
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…

No output schema declared.

No examples provided.

noaa_get_water_levels ~631

Get observed water levels from a NOAA tide station as a time series. Choose the interval: "6" = standard 6-minute observations (preliminary or verified, max 31 days per request), "1" = 1-minute preliminary data (max 4 days), "hourly" = verified hourly heights (max 1 year). Heights are relative to the requested datum (MLLW by default — the US nautical chart zero). Returns per record: t (timestamp in requested time zone), v (height), s (sigma), f (quality flags, decoded in output), q (p=preliminary, v=verified). Recent data is preliminary; verification takes days to weeks. Use for: "what is the water level right now" (date=latest), storm surge analysis, comparing observed vs predicted tide. Do NOT use for future tides — use noaa_get_tide_predictions.

NameTypeReqDescription
begin_datestringStart date/time. Formats: yyyyMMdd, "yyyyMMdd HH:mm", MM/dd/yyyy, or ISO yyyy-MM-dd[THH:mm].
datestringShortcut window: "today" = midnight to now, "latest" = single most recent reading, "recent" = last 72 hours. Mutually exclusive with begin_date/end_date/range.
datumstringVertical reference datum for heights. MLLW is the standard chart datum for coastal stations. IGLD and LWD apply to Great Lakes stations ONLY; NAVD/CRD exist only at stations where computed. Check a s…
end_datestringEnd date/time. Same formats as begin_date.
intervalstringObservation interval: "6" = 6-minute (standard, 31-day max), "1" = 1-minute preliminary (4-day max), "hourly" = verified hourly heights (1-year max).
rangeintegerNumber of hours. With begin_date: hours forward. With end_date: hours back. Alone: hours back from now.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
stationstringyesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_fin…
time_zonestringTime zone for timestamps: gmt = UTC, lst = station local standard time (no DST), lst_ldt = station local time with DST. Note: daily_mean data requires lst.
unitsstringUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH sy…

No output schema declared.

No examples provided.

noaa_search_stations ~303

Search the NOAA CO-OPS station directory by capability type, name, and/or state. Filter with: - type: what the station does (waterlevels, tidepredictions, currents, currentpredictions, met, ...) — pick the type matching the data you plan to request. - name: case-insensitive substring ("San Francisco", "Boston"). - state: two-letter code ("CA", "MA"). Returns id, name, location, tide type, Great Lakes flag, and for prediction stations whether they are reference (R, harmonic) or subordinate (S, offset-based — hilo predictions only). Results are paginated (limit/offset). For proximity search by coordinates use noaa_find_nearest_stations instead.

NameTypeReqDescription
limitintegerMaximum stations to return.
namestringCase-insensitive substring of the station name.
offsetintegerPagination offset.
response_formatstringOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.
statestringTwo-letter US state/territory code, e.g. "CA".
typestringStation capability filter. Common: "waterlevels" (active water level), "tidepredictions", "currents" (observed currents), "currentpredictions", "met" (weather sensors). Full list via noaa_get_referen…

No output schema declared.

No examples provided.

Common questions

What is the NOAA Tides and Currents MCP server?

NOAA Tides and Currents is an MCP server listed in the public MCP registry as io.github.RyanCardin15/noaa-tides-and-currents-mcp. NOAA tides and currents: water levels, tide predictions, currents, met data, flooding, sun and moon. This page covers its npm package (@ryancardin/noaa-tides-currents-mcp-server).

Is the NOAA Tides and Currents MCP server safe to use?

NOAA Tides and Currents scores 84 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the NOAA Tides and Currents MCP server expose?

NOAA Tides and Currents exposes 23 tools: noaa_get_water_levels, noaa_get_water_level_summaries, noaa_get_tide_predictions, noaa_get_currents, noaa_get_current_predictions, and 18 more. Their descriptions and schemas cost roughly 8,495 tokens of context every time the server is loaded.

Is the NOAA Tides and Currents MCP server still maintained?

NOAA Tides and Currents is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the NOAA Tides and Currents MCP server under?

NOAA Tides and Currents declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.