Noaa Marine Mcp Server

io.github.cyanheads由 GitHub 账号 cyanheads 发布v0.7.1更新于 Oct 29, 2026

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

已验证Streamable HTTP可网页运行位置与生活数据与分析

概览

AI 生成的概览

NOAA 海洋数据服务器:查找美国潮汐站与 NDBC 浮标,获取潮汐预报、海流、水位和实时浮标观测。

可以做什么
  • 按坐标、名称、站点 ID、州或能力查找 CO-OPS 潮汐站、水位站、海流站以及 NDBC 浮标
  • 获取潮汐预报(高低潮事件或 6 分钟曲线)与潮流预报(涨潮、落潮和憩流事件)
  • 读取实测水位并与预报配对给出风暴增水残差,以及经核实的月度潮汐基准面与极值
  • 读取 NDBC 浮标的实时海况:波浪、风、海面与气温、气压
  • 获取实测海流深度剖面和次表层水体读数,如盐度、溶解氧、叶绿素
  • 通过站点资源查询站点元数据
适用场景
当助手需要美国沿海或五大湖的潮汐、海流、水位或浮标数据时适用,例如出海与行程规划、海岸分析、海平面与潮差趋势研究,无需自行编写 NOAA 接口调用。
运行要求
可使用公开托管的 HTTP 端点,或通过 npx(需 Node.js)或 Docker 在本地运行;CO-OPS 与 NDBC 为开放数据,无需 API 密钥。可选配置包括 NOAA_APPLICATION_ID、NOAA_CLAMP_LIMITS,以及 MCP_TRANSPORT_TYPE、MCP_HTTP_PORT、MCP_AUTH_MODE 等 HTTP 与认证变量。需要能访问 NOAA 服务的网络。
安装前请注意
仅做只读数据获取,不写入数据、不涉及付款。请求会发往 NOAA CO-OPS 与 NDBC,NOAA_APPLICATION_ID 会作为礼节性标识随 CO-OPS 请求发送。若自托管并将 MCP_AUTH_MODE 设为 jwt 或 oauth,需自行提供相应认证配置,默认值为 none。开启 LOG_TOOL_FAILURE_PAYLOADS 会记录失败工具调用的参数与结果。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Noaa Marine Mcp Server,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.cyanheads%2Fnoaa-marine-mcp-server/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "noaa-marine": {
      "type": "http",
      "url": "https://noaa-marine.caseyjhand.com/mcp"
    }
  }
}

README

@cyanheads/noaa-marine-mcp-server

Find NOAA tide stations and NDBC buoys, fetch tide predictions, water levels, tidal currents, and live buoy conditions via MCP. STDIO or Streamable HTTP.

8 Tools • 1 Resource • 1 Skill


Overview

US tides, currents, water levels, and buoy observations from NOAA CO-OPS and NDBC. Find coastal stations and buoys, then fetch tide and tidal-current predictions, observed and monthly-mean water levels, and live buoy conditions, current profiles, and water-column readings.

Tools

ToolDescription
noaa_marine_find_stationsFind CO-OPS tide, water-level, and current stations and NDBC buoys by location, name, ID, state, or capability
noaa_marine_get_tide_predictionsHigh/low tide predictions or a 6-minute curve for a CO-OPS tide station
noaa_marine_get_water_levelObserved water level at four cadences, paired with predictions and a storm-surge residual
noaa_marine_get_monthly_meansVerified monthly tidal datums and extremes for a CO-OPS water-level station
noaa_marine_get_currentsCO-OPS tidal-current predictions: max flood, max ebb, and slack events, or a 6-minute curve
noaa_marine_get_conditionsLive NDBC buoy conditions: waves, wind, sea-surface and air temperature, pressure
noaa_marine_get_current_profileObserved ocean-current depth profile from an NDBC ADCP buoy
noaa_marine_get_ocean_observationsSub-surface water-column readings (temperature, salinity, oxygen, and more) from an NDBC station

Resources

ResourceDescription
noaa-marine://station/{station_id}Metadata for a CO-OPS or NDBC station: name, coordinates, source, capabilities, prediction class, platform

Everything in the resource except NDBC owner is also on noaa_marine_find_stations rows, for clients that only call tools.

Agent skill

The published noaa-marine-guide skill carries the gates and conventions the tool descriptions don't: which station serves which tool, why a place-name search misses, the clock and direction differences between CO-OPS and NDBC, and what the server can't answer (forecasts, warnings, past buoy readings). MCP clients read it as skill://noaa-marine-guide/SKILL.md through the Skills extension. Plugin installs include it too.

Capability reference

noaa_marine_find_stations tool

  • Filters combine: latitude + longitude with radius_km (default 100, max 1000), query (name or ID substring on both sources; an exact ID leads unless sorting by distance), state (CO-OPS only), source (coops / ndbc / all), and types (tide, current, water_level, met, current_profile, water_quality, or the platform class buoy); limit defaults to 20, and a larger value is clamped to 200 with a notice (rejected when NOAA_CLAMP_LIMITS=false); offset pages past one page
  • Each station carries source, capabilities, type, and for NDBC a platform; CO-OPS rows add state (state_derived: true when borrowed from the nearest state-bearing station within 25 km), a tide prediction_class (reference, or subordinate with reference_id), and current bins[] giving each bin's number, depth in feet, and class
  • total_found counts every match across pages; truncated and next_offset appear while matches remain past the page; zero matches is a success with applied_search, a partial catalog read is flagged in sources, and total catalog failure is sources_unavailable; only one of latitude/longitude is incomplete_coordinates

noaa_marine_get_tide_predictions tool

  • interval hilo (default) or 6min, up to 365 days; ten datums (MLLW, MHHW, MHW, MTL, MSL, MLW, DTL, NAVD, STND, CRD), time_zone (lst_ldt, gmt, lst), and units (english feet, metric meters)
  • 6min works at reference stations only: a subordinate station fails as subordinate_no_6min naming its reference station, and a Great Lakes station is no_predictions, pointing to noaa_marine_get_water_level
  • Other failures: invalid_date_range, date_range_exceeded, station_not_found, datum_unavailable (its hint names a datum to retry with, never the one just rejected), and upstream_throttled, a retryable CO-OPS HTTP 403 that clears in a couple of minutes

noaa_marine_get_water_level tool

  • interval 6min (default, 31 days), hourly or high_low (365 days), or daily_mean (3,655 days, Great Lakes only, always in LST; a coastal station is great_lakes_only); thirteen datums (MLLW, MHHW, MHW, MTL, MSL, MLW, NAVD, STND, IGLD, LWD, CRD, LWI, HWI)
  • Observations carry quality (p / v, 6min only), sigma (6min and hourly), and type (H / HH / L / LL, high_low only); slots with no reading are dropped and counted in gaps_dropped
  • Paired predictions at the matching cadence (none on daily_mean), with predictions_status (empty / unavailable) explaining an empty series; residual_summary (max_surge, max_drawdown) covers the whole matched range, on 6min and hourly only. Failures: invalid_date_range, date_range_exceeded, station_not_found, datum_unavailable, no_gauge, future_window (begin_date after the station's current date in the requested time_zone), no_data, verified_data_lag (a coarser-cadence window ending on or after the first day of the prior month, which CO-OPS may not have verified yet), and upstream_throttled

noaa_marine_get_monthly_means tool

  • Up to 73,000 days per request; eleven datums (MLLW, MHHW, MHW, MTL, MSL, MLW, NAVD, STND, IGLD, LWD, CRD) in english feet or metric meters; the first and last months returned are those begin_date and end_date fall in
  • One row per month: highest, lowest, the tidal datums (mhhw, mhw, msl, mtl, mlw, mllw, dtl), ranges (gt, mn, dhq, dlq), lunitidal intervals in hours (hwi, lwi), and the inferred code verbatim; values CO-OPS leaves blank are omitted, so a Great Lakes station carries only highest, msl, and lowest
  • Failures: invalid_date_range, date_range_exceeded, station_not_found, datum_unavailable, no_gauge, upstream_throttled, and for an empty window verified_data_lag when it ends on or after the first day of the prior month, no_data otherwise

noaa_marine_get_currents tool

  • interval MAX_SLACK (default: max flood, max ebb, and slack events) or 6min, up to 365 days; bin picks a depth bin from bins[] (default the shallowest); units english (knots, feet) or metric (cm/s, meters)
  • Every response echoes bin and depth; rows carry a flood / ebb / slack type, a non-negative speed, and as direction the station's mean bearing for that flow
  • A bin the station lacks is bin_unavailable listing the ones it has; a station CO-OPS won't predict as events returns an empty list with its statement in notice, and one with no published predictions is predictions_unavailable; also invalid_date_range, date_range_exceeded, station_not_found, no_predictions, and upstream_throttled

noaa_marine_get_conditions tool

  • One NDBC station_id; returns wind, waves, sea-surface and air temperature, dew point, and pressure in SI units, except tide_ft and visibility_nmi
  • A 7-digit CO-OPS station ID also works when NDBC relays that gauge's met sensors under a station of its own: station_id is then the NDBC station read, the requested ID comes back as coops_station_id, and notice names both
  • Every sensor field is nullable; each column block comes from the newest row within 90 minutes that carried it, waves reporting their own waves_observed_at and any other older block named in notice. Failures: buoy_not_found (no observation file and no relay, a relay with no file, or several relays the met flag doesn't settle), no_sensor_data

noaa_marine_get_current_profile tool

  • One NDBC station_id, found with types: ["current_profile"]; bins[] runs shallowest first with depth_m, direction_deg (true, flow-toward), and speed_cm_s, the last two null when unreported
  • Observed ADCP measurements, not the CO-OPS predictions noaa_marine_get_currents returns; failures are profile_not_found (no ADCP file) and no_current_data

noaa_marine_get_ocean_observations tool

  • One NDBC station_id, found with types: ["water_quality"], a catalog flag rather than a guarantee; readings[] holds one row per depth with temperature, conductivity, salinity, dissolved oxygen (% and ppm), chlorophyll, turbidity, pH, and redox potential
  • Most stations report only temperature and salinity, and unreported values are null; failures are observations_not_found (no .ocean file) and no_ocean_data

noaa-marine://station/{station_id} resource

  • station_id from noaa_marine_find_stations; returns that tool's station record as application/json, plus owner for NDBC stations, with a 6-hour cacheHint
  • station_not_found only when both catalogs were read; source_unavailable when one could not be

Features

Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.

CO-OPS / NDBC-specific:

  • CO-OPS data and metadata APIs plus the NDBC active-stations catalog and realtime2 feeds (.txt, .adcp, .ocean), with station catalogs cached in memory for 6 hours; CO-OPS requests carry application= from NOAA_APPLICATION_ID
  • Station IDs belong to one source, with one exception: CO-OPS tide and water-level IDs are numeric (9447130), CO-OPS current IDs alphanumeric (ACT4176), NDBC IDs mostly 5-character codes (46041) with some 7-digit numbers, and only noaa_marine_get_conditions reads a CO-OPS ID, through its NDBC relay
  • CO-OPS tools take begin_date / end_date as YYYYMMDD or YYYY-MM-DD and check the calendar and each tool's range ceiling before calling (invalid_date_range, date_range_exceeded); heights default to MLLW, a datum a station lacks is datum_unavailable with a hint naming a datum to retry with, never the rejected one, and a station that has never had a water-level gauge is no_gauge
  • CO-OPS verifies hourly, high_low, daily_mean, and monthly means once a month, for the prior month: an empty window ending on or after the first of the prior month is verified_data_lag, an earlier one no_data
  • CO-OPS answers a burst of requests with HTTP 403 for about two minutes; the CO-OPS data tools report it as a retryable upstream_throttled whose recovery names the wait

Agent-friendly output:

  • Count paging on the four CO-OPS series tools: a page is limit rows from offset, defaulting to 50 (24 for monthly means) with a larger value clamped to 1,000 and a notice; a range of at most limit rows returns whole, and a longer one adds rows_matched, rows_returned, page_offset, and next_offset
  • Missing means null or omitted, never fabricated: NDBC MM markers become null, blank CO-OPS values are dropped, and quality is left out rather than defaulted
  • Discriminated fields: station source (coops | ndbc), capability type, NDBC platform, and prediction_class, with datum and units echoed on every CO-OPS height response, so callers branch on data, not string parsing

Getting started

Connect to the hosted instance, no install:

sh
claude mcp add --transport http noaa-marine-mcp-server https://noaa-marine.caseyjhand.com/mcp

Or run it locally:

sh
claude mcp add noaa-marine-mcp-server -- npx -y @cyanheads/noaa-marine-mcp-server

For other clients, add this to the MCP config file:

json
{  "mcpServers": {    "noaa-marine-mcp-server": {      "command": "npx",      "args": ["-y", "@cyanheads/noaa-marine-mcp-server"]    }  }}

No API key: NOAA CO-OPS and NDBC are open data sources. For Docker or a source build, see Running the server.

Configuration

VariableDescriptionDefault
NOAA_APPLICATION_IDCourtesy identifier sent as application= on CO-OPS requests.noaa-marine-mcp-server
NOAA_CLAMP_LIMITSClamp a limit above its cap (1,000 series rows, 200 stations) to the cap with a notice. false enforces each cap as a schema maximum.true
MCP_TRANSPORT_TYPETransport: stdio or http.stdio
MCP_HTTP_PORTHTTP server port.3010
MCP_HTTP_HOSTHTTP bind address.127.0.0.1
MCP_SESSION_MODEHTTP session mode: stateless, stateful, or auto.stateless
MCP_AUTH_MODEAuthentication: none, jwt, or oauth.none
MCP_LOG_LEVELLog level (debug, info, warning, error, etc.).info
LOGS_DIRDirectory for log files (Node.js only).<project-root>/logs
LOG_TOOL_FAILURE_PAYLOADSLog each failed tool call's arguments and result (redacted by key name only), capped by LOG_TOOL_FAILURE_PAYLOAD_MAX_BYTES.false
OTEL_ENABLEDEnable OpenTelemetry.false
OTEL_EXPORTER_OTLP_ENDPOINTOTLP base URL; traces and metrics export to /v1/traces and /v1/metrics under it.—
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTOpt-in OTLP log export endpoint; the base URL never enables it.—

See .env.example for the full list of optional overrides.

Running the server

Local development

Requires Bun v1.4.0 or higher (or Node.js v24+).

  • Clone and install:

    sh
    git clone https://github.com/cyanheads/noaa-marine-mcp-server.gitcd noaa-marine-mcp-server && bun installcp .env.example .env   # all vars optional
  • Build and run:

    sh
    bun run rebuild
    bun run start:stdio# orbun run start:http
  • Run checks and tests:

    sh
    bun run devcheck   # Lint, format, typecheck, securitybun run test       # Vitest test suitebun run lint:mcp   # Validate MCP definitions against spec

Docker

sh
docker run --rm -p 3010:3010 ghcr.io/cyanheads/noaa-marine-mcp-server:latest

The image defaults to HTTP transport, stateless session mode, and logs to /var/log/noaa-marine-mcp-server. To run it over stdio from an MCP client, use "command": "docker" with "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT_TYPE=stdio", "ghcr.io/cyanheads/noaa-marine-mcp-server:latest"]. To build locally, docker build -t noaa-marine-mcp-server .; OpenTelemetry peer dependencies are installed by default — build with --build-arg OTEL_ENABLED=false to omit them.

Project structure

PathPurpose
src/index.tscreateApp() entry point: registers the tools and resource, initializes services.
src/config/NOAA_APPLICATION_ID and NOAA_CLAMP_LIMITS env var parsing with Zod.
src/services/coops/CO-OPS client: station catalog cache, data fetch, error classification, date-range validation, row paging, state resolution.
src/services/ndbc/NDBC service: active-stations XML and realtime2 feed parsers.
src/services/geo.tsHaversine distance for proximity search and state resolution.
src/mcp-server/tools/definitions/Eight tool definitions (*.tool.ts).
src/mcp-server/resources/definitions/Station metadata resource (noaa-marine-station.resource.ts).
tests/Vitest tests mirroring src/.
docs/Design doc and directory tree.

Development guide

See CLAUDE.md/AGENTS.md for development guidelines and architectural rules. The short version:

  • Handlers throw, framework catches — no try/catch in tool logic
  • Use ctx.log for request-scoped logging
  • Register tools and resources in src/index.ts directly (no barrels for this server)
  • Wrap external API calls: validate raw → normalize to domain type → return output schema; never fabricate missing fields
  • NDBC MM values must normalize to null, not be passed through as strings

Contributing

Issues are welcome. Run checks and tests before submitting:

sh
bun run devcheckbun run test

License

Apache-2.0 — see LICENSE for details.

来源:README.md,提交 f252edb

工具

8

noaa_marine_find_stations

Find Marine 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 re

输入参数limitquerystatetypesoffsetsourcelatitudelongituderadius_km

noaa_marine_get_tide_predictions

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.

输入参数datumlimitunitsoffsetend_date必填intervaltime_zonebegin_date必填station_id必填

noaa_marine_get_water_level

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.

输入参数datumlimitunitsoffsetend_date必填intervaltime_zonebegin_date必填station_id必填

noaa_marine_get_monthly_means

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.

输入参数datumlimitunitsoffsetend_date必填begin_date必填station_id必填

noaa_marine_get_currents

Get Tidal 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.

输入参数binlimitunitsoffsetend_date必填intervaltime_zonebegin_date必填station_id必填

noaa_marine_get_conditions

Get Marine 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.

输入参数station_id必填

noaa_marine_get_current_profile

Get Ocean 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.

输入参数station_id必填

noaa_marine_get_ocean_observations

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.

输入参数station_id必填

版本历史

8
  1. v0.7.1最新Oct 29, 2026
  2. v0.6.2Oct 25, 2026
  3. v0.6.1Oct 9, 2026
  4. v0.6.0Sep 23, 2026
  5. v0.5.2Sep 23, 2026
  6. v0.5.0Sep 18, 2026
  7. v0.4.0Sep 17, 2026
  8. v0.3.2Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分