Skip to content

Releases: cyanheads/noaa-marine-mcp-server

v0.3.0: NDBC ocean observations

Choose a tag to compare

@cyanheads cyanheads released this 16 Jul 19:00
v0.3.0
ed29b7b

NDBC ocean observations

Added: noaa_marine_get_ocean_observations — NDBC .ocean sub-surface water-column data (temperature, conductivity, salinity, dissolved oxygen, chlorophyll, turbidity, pH, redox per reported depth); latest observation, one reading per depth; best-effort with a typed observations_not_found error (#16).

Changed: tsc-alias ^1.8.17 -> ^1.9.1 (dev).

Gates: devcheck clean (zero warnings), 117 tests, docker build+run verified, live field-tested against real NDBC.

v0.2.0: NDBC current profiles, platform axis

Choose a tag to compare

@cyanheads cyanheads released this 16 Jul 10:10
v0.2.0
4652d78

NDBC current profiles, platform axis

New tool for NDBC observed depth-binned currents; station type now splits into a data-capability axis and a new NDBC platform-class field — breaking output changes on find_stations and the station resource.

Added:

  • noaa_marine_get_current_profile — NDBC ADCP observed current profile by depth bin (#15)
  • current_profile types filter value reaching NDBC observed-currents stations (#15)

Changed:

  • platform field carries the NDBC physical class (buoy/fixed/oilrig/dart/tao/usv/other); type is now purely the data-capability axis and optional on both find_stations and the station resource (#14)
  • NDBC currents capability renamed currentscurrent_profile, ending its collision with CO-OPS current (#15)

Fixed:

  • Fabricated buoy capability/type removed — a station with no reported data capability now reports an empty capabilities list instead of an invented buoy value; the buoy types filter now matches platform class (#13)

104 tests pass; bun run devcheck clean.

CHANGELOG v0.2.0

v0.1.7: Station discovery filter fixes and supply-chain hardening

Choose a tag to compare

@cyanheads cyanheads released this 16 Jul 05:59
v0.1.7
d05ad4c

Station discovery filter fixes and supply-chain hardening

Four noaa_marine_find_stations/get_conditions bugs fixed; mcp-ts-core bumped to 0.10.14 alongside new install and Docker build hardening.

Fixed:

  • noaa_marine_find_stations rejects a lone latitude/longitude as incomplete_coordinates instead of returning the full station list sorted by name; blank queries are trimmed and treated as omitted (#9)
  • NDBC types filter now matches computed capabilities instead of a type-string heuristic — met no longer admits stations NDBC flags met="n" (#10)
  • noaa_marine_get_conditions guidance now points at find_stations with types=["met"] instead of an unfiltered search that could return the same non-conditions-capable station (#11)
  • The type field find_stations returns now reflects the matched filter capability, falling back to the first computed capability when unfiltered, instead of always the first CO-OPS capability or a hardcoded "buoy" for NDBC rows (#12)

Security:

  • bunfig.toml gains a 3-day install.minimumReleaseAge guard (framework excluded) and @socketsecurity/bun-security-scanner as the install scanner
  • Dockerfile build-stage install now runs with --ignore-scripts; base images pinned to oven/bun:1.3.14 instead of the floating 1.3 tag

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.9 → ^0.10.14
  • @types/node ^26.0.1 → ^26.1.1
  • ignore ^7.0.5 → ^7.0.6
  • vitest ^4.1.9 → ^4.1.10

88 tests pass; bun run devcheck clean.

CHANGELOG v0.1.7

v0.1.6: CO-OPS date validation and NDBC classification fixes

Choose a tag to compare

@cyanheads cyanheads released this 01 Jul 00:57
v0.1.6
880fd6b

CO-OPS date validation and NDBC classification fixes

Local date-range validation, preserved no_sensor_data, state-scoped NDBC exclusion, and blank-name labels.

Fixed:

  • CO-OPS date tools reject invalid or reversed ranges locally as invalid_date_range instead of a mislabeled station_not_found (#7)
  • get_conditions preserves no_sensor_data for sensorless buoys instead of remapping to buoy_not_found (#6)
  • find_stations excludes state-less NDBC buoys when a state filter is set (#5)
  • Blank or whitespace NDBC station names normalized to an NDBC <id> label (#8)

Dependencies:

  • @biomejs/biome ^2.5.0 → ^2.5.1
  • @types/node ^26.0.0 → ^26.0.1

73 tests pass; bun run devcheck clean.

v0.1.5: mcp-ts-core ^0.10.9 maintenance

Choose a tag to compare

@cyanheads cyanheads released this 20 Jun 12:16
v0.1.5
4746812

mcp-ts-core ^0.10.9 maintenance

Framework-maintenance release — no source or behavior changes.

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.10.6 → ^0.10.9
  • @types/node ^25.9.3 → ^26.0.0
  • vitest ^4.1.8 → ^4.1.9

Added:

  • check-dependency-specifiers devcheck step — fails on floating specifiers in package.json and bun.lock workspaces (cyanheads/mcp-ts-core#246)
  • Plugin-manifest packaging checks in lint:packaging, gated by devcheck.config.json packaging.pluginManifests (cyanheads/mcp-ts-core#240)
  • ctx.content collector available via the framework dep — image/audio blocks ride content[] only (cyanheads/mcp-ts-core#239)

Changed:

  • Fresh-scaffold devcheck guards synced from 0.10.7 (build-changelog --check empty-tree, not-a-git-repo self-guards, worktree-deletion guard)
  • Vendored skills/ re-synced to mcp-ts-core 0.10.9

50 tests pass; bun run devcheck clean.

v0.1.4: mcp-ts-core ^0.10.6, sharper CO-OPS error codes, bundle agent-doc stripping

Choose a tag to compare

@cyanheads cyanheads released this 13 Jun 04:10
v0.1.4
7de9eeb

mcp-ts-core ^0.10.6, sharper CO-OPS error codes, bundle agent-doc stripping

Framework adoption pass plus three definition refinements and MCPB bundle hardening.

Added:

  • noaa_marine_find_stations: optional truncated flag when total_found exceeds limit
  • Explicit name/title in createApp()

Changed:

  • CO-OPS errors: station_not_found → NotFound, date_range_exceeded → ValidationError (tide, water-level, currents)
  • bundle script strips dependency-shipped agent docs (skills/, .claude/, .agents/, SKILL.md) from the .mcpb
  • Dockerfile: APP_VERSION OCI label arg + HTTP-mode healthcheck

Dependency bumps:

  • @cyanheads/mcp-ts-core ^0.9.21 → ^0.10.6
  • @biomejs/biome ^2.4.16 → ^2.5.0
  • @types/node ^25.9.2 → ^25.9.3

50 tests pass; bun run devcheck clean.

v0.1.3: CO-OPS error typing, interval fix, and null current direction

Choose a tag to compare

@cyanheads cyanheads released this 07 Jun 06:32
v0.1.3
3155e78

CO-OPS error typing, interval fix, and null current direction

Four bug fixes addressing CO-OPS API correctness and error-handling fidelity.

Fixed:

  • CO-OPS body errors now map to typed CoopsBodyError (retryable: false) with a coopsReason discriminator; tools surface typed contract reasons via ctx.fail() instead of generic ServiceUnavailable (#1)
  • Tide predictions interval=6min now translates to interval=6 before hitting the CO-OPS API; previously returned 'No Predictions data was found' for every 6-min request (#3)

Changed:

  • noaa_marine_get_currents directiondirection is now number | null; absent CO-OPS Direction maps to null instead of 0° (#4)
  • noaa_marine_find_stations — description clarifies CO-OPS current stations are cataloged by capability, not prediction availability (#2)

50 tests pass; bun run devcheck clean.

v0.1.2: Public hosted endpoint

Choose a tag to compare

@cyanheads cyanheads released this 06 Jun 22:03
v0.1.2
be6a2cb

Public hosted endpoint

Server is now available at https://noaa-marine.caseyjhand.com/mcp.

Added:

  • server.json remotes entry (streamable-http, noaa-marine.caseyjhand.com/mcp)
  • README hosted-server link block and Public Hosted Instance client config

Changed:

  • @types/node ^25.9.1 → ^25.9.2

bun run devcheck clean; build passes.

v0.1.1: Initial public release — 5 tools, 1 resource over NOAA CO-OPS and NDBC

Choose a tag to compare

@cyanheads cyanheads released this 05 Jun 12:26
v0.1.1
f4a7a0e

Initial public release — 5 tools, 1 resource over NOAA CO-OPS and NDBC

Keyless MCP server wrapping NOAA CO-OPS Tides & Currents and NDBC buoy APIs. No API key required.

Added:

  • noaa_marine_find_stations — discover CO-OPS/NDBC stations by lat/lon proximity or name/state
  • noaa_marine_get_tide_predictions — high/low tide predictions (hilo or 6-min intervals, configurable datum)
  • noaa_marine_get_water_level — observed water levels + paired predictions for storm surge/drawdown residual
  • noaa_marine_get_currents — tidal current predictions (MAX_SLACK or 6-min continuous)
  • noaa_marine_get_conditions — live NDBC buoy conditions: waves, wind, SST, pressure, temperature
  • noaa-marine://station/{station_id} resource — unified station metadata for CO-OPS and NDBC

Security:

  • Station ID regex /^[A-Za-z0-9_-]{1,20}$/ on all station_id inputs (5 tools + 1 resource)
  • Stripped raw upstream URL from CO-OPS error messages to prevent log injection

45 tests pass; bun run devcheck clean.