π NOAA Tides & Currents MCP Server
MCP serverDev toolsThis app gives your AI access to NOAA's tides and currents data. Once added, your AI can answer questions about water levels, tide predictions, currents, weather readings, flooding, and sun and moon information. It is useful for anyone who needs reliable coastal conditions on demand.
Use π NOAA Tides & Currents MCP Server in Claude, ChatGPT or Ahel Desktop
Free. Sign in, add π NOAA Tides & Currents MCP Server and connect your AI. About a minute.
Also: Claude Code Β· Cursor Β· Codex
Then ask your AI: use the noaa get water levels tool from π NOAA Tides & Currents MCP Server
No key or account is asked for. Not verified by us yet: Ahel has not run a call through it.
Details
Available today. Use it from your connected AI after setup.
No key or account is asked for. Not verified by us yet: Ahel has not run a call through it.
After adding it, ask your AI about tides, water levels, or conditions for a location you care about. It will pull the matching NOAA data for your question.
What your AI can do with it
- Look up water levels for a location
- Get tide predictions for high and low tides
- Check current coastal conditions
- Pull local weather readings
- Find flooding information for coastal areas
- Look up sun and moon data
Install π NOAA Tides & Currents MCP Server
The serverβs own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each clientβs config.
Claude Code
claude mcp add --transport http --scope user noaa-tides-currents-mcp-server 'https://perigeetides.com/mcp'Run it once in your project, then open /mcp to approve any sign-in the server asks for.
Claude Desktop
https://perigeetides.com/mcpAdd a custom connector in Settings, paste this address, and approve the sign-in.
Cursor
cursor://anysphere.cursor-deeplink/mcp/install?name=noaa-tides-currents-mcp-server&config=eyJ1cmwiOiJodHRwczovL3BlcmlnZWV0aWRlcy5jb20vbWNwIn0=Open the link and Cursor adds the server at that address.
ChatGPT
https://perigeetides.com/mcpIn Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.
Codex
codex mcp add noaa-tides-currents-mcp-server --url 'https://perigeetides.com/mcp'Run it once, then sign in with codex mcp login noaa-tides-currents-mcp-server if the server asks for an account.
From the project's README
As published by ryancardin15/perigee-tides in README.md.
A Model Context Protocol server for NOAA CO-OPS Tides and Currents data
Built by Cardin Labs Β· Hosted at Perigee
Water levels Β· tide predictions Β· currents Β· marine weather Β· station metadata Β· tidal datums Β· harmonic constituents Β· sea level trends & projections Β· high tide flooding Β· sun & moon calculations
Quick Start
# Run immediately with npx
npx @ryancardin/noaa-tides-currents-mcp-server
# Or the short alias
npx noaa-mcp
Claude Desktop / Claude Code configuration
{
"mcpServers": {
"noaa": {
"command": "npx",
"args": ["-y", "@ryancardin/noaa-tides-currents-mcp-server"]
}
}
}
Claude Code one-liner:
claude mcp add noaa -- npx -y @ryancardin/noaa-tides-currents-mcp-server
HTTP mode (optional)
npx noaa-mcp --http --port 3000 # stateless streamable HTTP at http://localhost:3000/mcp
No API key is required β NOAA's CO-OPS APIs are open.
Tools (25)
Observations & Predictions (Data API)
| Tool | What it does |
|---|---|
noaa_get_water_levels | Observed water levels: 1-minute, 6-minute, or hourly series, preliminary/verified quality flags decoded |
noaa_get_water_level_summaries | high_low (HH/H/L/LL daily extremes), daily_mean (Great Lakes), daily_max_min, monthly_mean datum tables |
noaa_get_tide_predictions | Harmonic tide predictions β hilo high/low events (up to 10 years) or interval series |
noaa_get_currents | Observed current speed/direction by depth bin (ADCP), optional beam diagnostics |
noaa_get_current_predictions | Predicted currents β max_slack flood/ebb/slack events or interval series |
noaa_get_meteorological_data | Wind, air/water temperature, pressure, air gap (bridge clearance), conductivity, visibility, humidity, salinity |
Station Discovery & Metadata (Metadata API)
| Tool | What it does |
|---|---|
noaa_search_stations | Search the station directory by capability type, name substring, state β paginated |
noaa_find_nearest_stations | Nearest stations to any lat/lon (great-circle, cached directory), filterable by type |
noaa_get_station_info | Full station record with expandable sensors, flood levels, benchmarks, bins, deployments... |
noaa_get_station_datums | Tidal datum elevations (MLLW, MSL, MHHW, NAVD88...), HAT/LAT, historic extremes, current or superseded epoch |
noaa_get_harmonic_constituents | The M2/S2/K1/... constituents behind a station's predictions (water level or current ellipse form) |
noaa_get_prediction_offsets | Subordinate-station time/height offsets from their reference stations (tide or current) |
Climate & Derived Products (DPAPI)
| Tool | What it does |
|---|---|
noaa_get_sea_level_trends | Long-term relative sea level trend with error bars and observation period |
noaa_get_sea_level_rise_projections | 2022 Interagency SLR scenario projections per decade through 2150 |
noaa_get_extreme_water_levels | Annual exceedance probability levels (e.g. the "100-year" water level) |
noaa_get_top_ten_water_levels | Highest water levels ever recorded, with causal events (hurricanes, nor'easters) |
noaa_get_high_tide_flooding | HTF flood-day counts (daily/monthly/seasonal/annual), outlooks, decadal projections, likelihoods |
Astronomy (computed locally)
| Tool | What it does |
|---|---|
astro_get_moon_phase | Phase, illumination, age, distance for a date or range (spring/neap tide context) |
astro_get_next_moon_phase | Next new/full/quarter moon date(s) |
astro_get_sun_times | Sunrise/sunset, twilights, golden hour, day length for any location/date |
astro_get_sun_position | Azimuth/altitude (+ approximate declination/RA) |
astro_get_next_sun_event | Next occurrence(s) of any sun event |
Wind & Marine Forecasts (NWS Weather API)
| Tool | What it does |
|---|---|
nws_get_wind_forecast | Hourly numeric wind forecast (speed/gust/direction, wave height where gridded) for any US lat/lon, up to ~7 days |
nws_get_marine_forecast | Official Coastal Waters Forecast narrative for the marine zone covering a lat/lon, incl. Small Craft Advisories |
Reference
| Tool | What it does |
|---|---|
noaa_get_reference_guide | Curated NOAA reference: products, datums, units, time zones, intervals, station types, data limits, quality flags, date formats, marine forecasts |
Every tool supports response_format: "markdown" (readable tables with units spelled out β the default) or "json" (complete structured payload), and attaches structured content for MCP clients that consume it.
Resources
noaa://guide/getting-startedβ workflow recipes and common pitfallsnoaa://reference/{topic}β the ten reference topics above as pinnable resources
Prompts
tide_reportβ tide report for a place/station and dateboating_conditionsβ pre-departure briefing: tides, currents, wind, daylightstation_flood_riskβ flood risk profile: HTF history, extremes, trends, projectionsstation_overviewβ everything a station offers
The Nuances (handled for you)
These are the things that make NOAA's API tricky β this server encodes them:
- Datums matter. Heights are meaningless without a vertical reference. MLLW (chart datum) is the default; stations differ in which datums they support (Great Lakes use IGLD/LWD and have no tide predictions).
noaa_get_station_datumsgives the conversion table. - Units are asymmetric.
metricmeans m/s for wind but cm/s for currents; air pressure is millibars and salinity PSU in both systems. Every response labels its units. - Per-product request-span limits (4 days for 1-minute data, 31 days for 6-minute, 1 year hourly, 10 years for hilo predictions...) are validated client-side with actionable messages before hitting NOAA.
- Two station ID schemes. Water-level/met stations are 7-digit numeric (
9414290); current stations are alphanumeric (cb0102). - Reference vs subordinate stations. Subordinate (S) prediction stations only support
hilopredictions, derived by offsets from a reference (R) station. daily_meanrequires local standard time and only exists for Great Lakes stations β enforced automatically.- Quality flags decoded. Preliminary vs verified data, sigma, flag alphabets (which differ between preliminary and verified!), and HH/H/L/LL tide types are explained inline.
- Predictions are astronomical β storm surge is not included; compare with observed water levels.
- Station directory is cached (6 h) so nearest-station searches don't refetch thousands of records.
Usage Examples
"When is high tide in Boston tomorrow?"
noaa_find_nearest_stations(typetidepredictions) β8443970 BOSTONnoaa_get_tide_predictions(intervalhilo) β high/low times & heights above MLLW
"How strong will the current be in the Cape Cod Canal this afternoon?"
noaa_find_nearest_stations(typecurrentpredictions)noaa_get_current_predictions(intervalmax_slack) β max flood/ebb (knots) and slack times
"How often does Providence flood now vs 20 years ago, and what's projected for 2050?"
noaa_get_high_tide_flooding(reportannual, range 25)noaa_get_high_tide_flooding(reportprojections, decade 2050)noaa_get_sea_level_trends+noaa_get_sea_level_rise_projections
Development
npm install
npm run build # tsc β dist/
npm test # vitest unit tests (validation, formatting, astronomy)
npm run test:live # end-to-end smoke test against the live NOAA API
npm run inspector # MCP Inspector against dist/index.js
npm run dev # tsx src/index.ts
Architecture
src/
βββ index.ts # entry point: stdio (default) or --http streamable HTTP
βββ constants.ts # API base URLs, timeouts, cache TTLs, response limits
βββ client/ # shared HTTP layer (retry/backoff, error mapping) + TTL cache
βββ validation/ # date normalization + per-product span limit enforcement
βββ format/ # unit labeling, flag legends, markdown/json response shaping
βββ schemas/ # shared Zod field schemas with nuance-carrying descriptions
βββ services/ # Data API, Metadata API, DPAPI, moon & sun services
βββ tools/ # 25 tool registrations grouped by domain
βββ resources/ # noaa:// reference resources
βββ prompts/ # workflow prompt templates
βββ reference/ # curated NOAA reference content
Data sources:
- Data API β
api.tidesandcurrents.noaa.gov/api/prod/datagetter - Metadata API β
api.tidesandcurrents.noaa.gov/mdapi/prod/webapi - Derived Product API β
api.tidesandcurrents.noaa.gov/dpapi/prod/webapi - Astronomy β suncalc, computed locally
License
MIT Β© Cardin LLC (Cardin Labs)
NOAA data is provided by the NOAA Center for Operational Oceanographic Products and Services (CO-OPS). This project is not affiliated with or endorsed by NOAA.
2.1.0 tool delivery contract
Every raw tool advertises an output schema. Successful provider payloads retain their fields and add _response: { contractVersion: "2026-09-29.1", status: "complete" }. Reference guides have a separate typed topic/guide result. Both text and structured payloads are bounded: an oversized result returns an explicit response_too_large error with narrowing guidance instead of truncated text alongside an unbounded structured response. Error metadata states whether retry may help. Chained provider reads share a 45-second cancellation deadline and each request has an 18-second total retry budget. No fishing, navigation or catch probability is inferred from raw data.
Tools it offers (26)
What this server listed when Ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the serverβs own.
noaa_get_water_levelsnoaa_get_water_level_summariesnoaa_get_tide_predictionsnoaa_get_currentsnoaa_get_current_predictionsnoaa_get_meteorological_datanoaa_search_stationsnoaa_find_nearest_stationsnoaa_get_station_infonoaa_get_station_datumsnoaa_get_harmonic_constituentsnoaa_get_prediction_offsetsnoaa_get_sea_level_trendsnoaa_get_sea_level_rise_projectionsnoaa_get_extreme_water_levelsnoaa_get_top_ten_water_levelsnoaa_get_high_tide_floodingastro_get_moon_phaseastro_get_next_moon_phaseastro_get_sun_timesastro_get_sun_positionastro_get_next_sun_eventnws_get_wind_forecastnws_get_marine_forecastnoaa_get_reference_guideperigee_whoami
Signals
- GitHub stars
- 6
- Forks
- 2
- Last commit
- Sep 2026
Advanced
- Delivery
- noaa-tides-and-currents-mcp MCP server β your Ahel connector (mcp.ahel.ai) β your AI.
- Item type
- mcp-server
- Key
io-github-ryancardin15-noaa-tides-and-currents-mcp- Source
- github.com/ryancardin15/perigee-tides
- Hosted endpoint
https://perigeetides.com/mcp
github.com/ryancardin15/perigee-tides
More in Dev tools
MCP server Β· adarsh4052
More in Dev toolsdraw.io
MCP server Β· jgraph
More in Dev toolsairtreks-mcp
MCP server Β· airtreks
More in Dev tools0nMCP
MCP server Β· 0nork
More in Dev toolssportwizzard
MCP server Β· adamruehle
More in Dev toolsgithub-mcp-server
MCP server Β· github
More in Dev tools