# NOAA Tides & Currents MCP

> NOAA Tides & Currents API provides authoritative access to US coastal data, letting you monitor real-time water levels and predict tides via your AI agent. It gives you structured tools to check water levels (`get_water_levels`), audit high/low tide predictions (`get_tide_predictions`), and retrieve both air and water temperature metadata for any specific NOAA station ID.

## Overview
- **Category:** industry-titans
- **Price:** Free
- **Tags:** oceanography, tidal-data, water-levels, maritime-research, environmental-monitoring

## Description

Listen up. This isn't another glorified data dashboard; it’s your direct pipe to NOAA Tides & Currents. Your AI client connects straight into the official U.S. coastal data sources, meaning you get verified numbers for anything that moves or changes depth along the coast. You won't waste time hopping between complicated government websites just to check if a dock is flooded—your agent handles all of it.

Before you run any critical job, you can **check the API status** using `check_api_status` to confirm the whole NOAA service is actually up and running. It’s smart to verify that first; otherwise, your whole workflow stalls out for no reason.

When you need to know how deep the water really is, use `get_water_levels`. This calls for real-time measurements of the current water depth at any specific NOAA station ID. You get those accurate readings instantly—it’s essential if you're coordinating port logistics or just trying to figure out if your boat can make it through the harbor entrance today.

For a deeper read on the environment, there are two other core metrics. First, `get_water_temperature` pulls the actual water temperature reading from that monitoring station. Knowing this helps you plan anything involving marine life or equipment deployment. You'll also want to grab real-time air context by calling `get_air_temperature`, which gives you the current atmospheric temp for the same NOAA station ID.

When you're planning ahead, not just reacting to what’s happening right now, use `get_tide_predictions`. This tool pulls a schedule of high and low tide predictions for specific dates and stations. You get the full cycle data so you know exactly when the water will peak and when it drops—critical info for everything from construction timing to fishing charters.

All these capabilities work together. If you're doing environmental research, your agent can pull the current water levels with `get_water_levels`, grab the corresponding air temperature using `get_air_temperature`, then check out the full tide schedule with `get_tide_predictions`—all in one go. You don't need to write five different scripts; you just tell your agent what you want, and it handles the complexity of pulling all that structured oceanographic data.

## Tools

### check_api_status
Confirms the NOAA Tides & Currents API is currently running and available for use.

### get_air_temperature
Retrieves real-time air temperature data from a specific NOAA station ID.

### get_tide_predictions
Gets scheduled high and low tide predictions for a specific date and station.

### get_water_levels
Retrieves the current, real-time water level measurement (depth) at a specified NOAA station.

### get_water_temperature
Gets the actual water temperature reading from a specific NOAA monitoring station.

## Prompt Examples

**Prompt:** 
```
Get tide predictions for station '9414290' (San Francisco) for '20240510' using NOAA Tides.
```

**Response:** 
```
I've retrieved the tide predictions for San Francisco! Notable entries include a High Tide at 10:30 AM (5.2 ft) and a Low Tide at 4:45 PM (0.5 ft). Would you like the real-time water level or air temperature for this station?
```

**Prompt:** 
```
What is the current water temperature at station '8443970' (Boston)?
```

**Response:** 
```
I've checked the sensors for Boston. The water temperature is currently 52°F. I can provide the historical temperature metadata for the last 24 hours if you'd like to identify trends.
```

**Prompt:** 
```
Show real-time water levels for station '9410660' (Los Angeles).
```

**Response:** 
```
I've retrieved the real-time water levels for Los Angeles! The current value is identified as 3.2 ft above MLLW. I can assist you with an audit of predicted vs actual water level metadata if you'd like.
```

## Capabilities

### Check Service Status
Runs `check_api_status` to confirm the NOAA Tides & Currents service is currently operational.

### Get Current Water Levels
Calls `get_water_levels` to retrieve real-time water depth measurements for a given station ID.

### Predict Tide Cycles
Uses `get_tide_predictions` to pull scheduled high and low tide data for specific dates.

### Measure Water Temperature
Executes `get_water_temperature` to get the current temperature of the water column at a station.

### Measure Air Temperature
Retrieves `get_air_temperature` data for a specified NOAA station's air environment.

## Use Cases

### Planning an offshore construction lift
A project manager needs to know if a large crane can operate safely. They ask their agent: 'What are the water levels at Station X on Friday?' The agent runs `get_water_levels` and compares it against historical data, confirming the predicted minimum depth is acceptable for the lift.

### Assessing environmental impact
A research team needs to understand if a spill has affected the local ecosystem. They prompt their agent: 'What are the current water temperature and air temperature at Station Y?' The agent executes both `get_water_temperature` and `get_air_temperature`, giving the researchers immediate metrics for their report.

### Vessel arrival coordination
A port operations lead needs to schedule a large freighter. They ask: 'What are the high tide predictions for Port Z over the next three days?' The agent runs `get_tide_predictions`, showing the optimal windows when water depth will be highest, allowing them to reschedule docking.

### Quick audit of a coastal zone
A field scientist needs an immediate overview. They ask for 'the status and current water levels at Station A.' The agent first runs `check_api_status` (for assurance) and then executes `get_water_levels`, providing the most critical data point immediately.

## Benefits

- Real-time depth checks. Need to know the current depth at a dock? Running `get_water_levels` gives you an immediate reading, eliminating manual dashboard refreshes.
- Full environmental picture. You can run both `get_air_temperature` and `get_water_temperature` in one sequence to compare surface air conditions against water column data.
- Tide scheduling is automated. Instead of cross-referencing tide tables, just call `get_tide_predictions` with a date, and you get the full high/low cycle breakdown.
- Operational reliability check. Always run `check_api_status` first. It ensures your entire maritime workflow doesn't break because the underlying API is down.
- Deep station data access. Use the server to pull specialized metadata for a specific NOAA ID, getting more context than general searches allow.

## How It Works

The bottom line is that you use natural language prompts to trigger specific, verified calls to NOAA's established oceanographic databases.

1. Start by connecting your AI agent to the server; no API key is required because NOAA CO-OPS uses an open service model.
2. Tell your agent exactly what you need—for example, 'Get tide predictions for Station X on Date Y' or 'What are the real-time water levels at Station Z.'
3. The agent selects and executes the correct tool (`get_tide_predictions`, `get_water_levels`, etc.), returning structured, usable data directly to your chat interface.

## Frequently Asked Questions

**How do I check real-time water levels using get_water_levels?**
You ask your agent to use `get_water_levels` for a specific station ID. It returns the current depth reading, usually measured relative to MLLW (Mean Lower Low Water).

**Does get_tide_predictions give me real-time data?**
No; `get_tide_predictions` provides scheduled high and low tide times for a specific date. For current depth, you must use `get_water_levels`.

**Can I compare air and water temperatures at one station?**
Yes. You run both `get_air_temperature` and `get_water_temperature`, providing the same station ID for both calls to get a side-by-side comparison.

**What is the first thing I should run when starting work?**
You should always use `check_api_status` first. This confirms the connection and data service are online before you waste time running other, more complex queries.

**Do I need an API key when using `get_water_levels`?**
No, you don't. NOAA CO-OPS is a free and open service that doesn't require user authentication or an API key to run the tools.

**How do I get tide predictions for multiple stations using `get_tide_predictions`?**
Your AI client handles this by iterating over station IDs. You can pass a list of NOAA station IDs, and the agent will run the prediction tool for each one automatically.

**If I use `get_water_temperature` and get an error response, what does that mean?**
It usually means the sensor at that specific NOAA station is currently offline or hasn't logged temperature data for the time requested. Check the API status first.

**What type of metadata can I retrieve using `get_air_temperature`?**
Beyond just the current reading, this tool provides air and water temperature metadata that helps you identify regional environmental trends for planning purposes.

**Is an API Key required for NOAA Tides API?**
No. The NOAA CO-OPS API is a free and open service provided by the United States government. This server works out of the box without any static credentials required.

**Can the agent show air temperature at stations?**
Yes. Use the `get_air_temperature` tool providing a station ID. Your agent will return real-time temperature metadata alongside the timestamp.

**What data datum is used for predictions?**
This server uses the Mean Lower Low Water (MLLW) datum for all water level and tide prediction requests to maintain consistency with nautical charts.