Data source: NOAA CO-OPS Tides & Currents
https://context.gnist.ai/mcp/noaa-tides/
AuthenticationAll requests require a Gnist-API-Key header (or api_key query parameter).
Free tier: 100 calls/day. Get your API key.
Tools (5)
get_tide_predictionsGet tide predictions for a NOAA CO-OPS station.
Returns predicted high/low tide times and heights, or water level predictions
at regular intervals. Use 'hilo' interval for high/low tide times, or a numeric
interval for evenly-spaced predictions.
Args:
station: NOAA station identifier.
begin_date: Start date (yyyyMMdd).
end_date: End date (yyyyMMdd).
datum: Tidal datum reference level.
interval: Prediction granularity.
units: Measurement units.
Returns:
Predictions with time, value (water level), and type (high/low if hilo).
| Parameter | Type | Required | Description |
|---|---|---|---|
station | string | required | NOAA station ID (e.g. '9414290' for San Francisco, '8518750' for The Battery NYC). |
begin_date | string | required | Start date in yyyyMMdd format (e.g. '20260320'). |
end_date | string | required | End date in yyyyMMdd format (e.g. '20260321'). Max 1 year for high/low. |
datum | string | optional | Tidal datum reference. Common: MLLW (default), MSL, NAVD, MHHW. (default: "MLLW") |
interval | string | optional | Prediction interval: 'hilo' for high/low only, 'h' for hourly, or minutes (1,5,6,10,15,30,60). (default: "hilo") |
units | string | optional | Units: 'metric' (meters, Celsius) or 'english' (feet, Fahrenheit). (default: "metric") |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_tide_predictions",
"arguments": {
"station": "example",
"begin_date": "example",
"end_date": "example"
}
}
}get_water_levelsGet observed (actual) water level data from a NOAA tide station.
Returns real-time or historical water level observations at 6-minute intervals.
Compare with predictions to see storm surge, wind effects, or other anomalies.
Args:
station: NOAA station identifier.
begin_date: Start date (yyyyMMdd).
end_date: End date (yyyyMMdd).
datum: Tidal datum reference level.
units: Measurement units.
Returns:
Observations with time, value (water level), sigma (std dev), and quality flag.
| Parameter | Type | Required | Description |
|---|---|---|---|
station | string | required | NOAA station ID (e.g. '9414290' for San Francisco). |
begin_date | string | required | Start date in yyyyMMdd format. |
end_date | string | required | End date in yyyyMMdd format. Max 1 month for 6-minute data. |
datum | string | optional | Tidal datum reference. Common: MLLW (default), MSL, NAVD. (default: "MLLW") |
units | string | optional | Units: 'metric' or 'english'. (default: "metric") |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_water_levels",
"arguments": {
"station": "example",
"begin_date": "example",
"end_date": "example"
}
}
}get_station_dataGet meteorological observations from a NOAA coastal station.
Retrieves current or recent readings for water temperature, air temperature,
wind speed/direction, barometric pressure, and other environmental parameters.
Args:
station: NOAA station identifier.
product: Type of meteorological data.
date: Time filter.
units: Measurement units.
Returns:
Readings with time and measured values (varies by product).
| Parameter | Type | Required | Description |
|---|---|---|---|
station | string | required | NOAA station ID (e.g. '9414290'). |
product | string | required | Data product: 'water_temperature', 'air_temperature', 'wind', 'air_pressure', 'humidity'. |
date | string | optional | Date filter: 'latest' for most recent, 'today', 'recent' (last 72h). (default: "latest") |
units | string | optional | Units: 'metric' or 'english'. (default: "metric") |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_station_data",
"arguments": {
"station": "example",
"product": "example"
}
}
}search_stationsSearch for NOAA tide prediction stations.
Find stations by US state. Returns station IDs, names, and coordinates
that can be used with other tide tools.
Args:
state: US state abbreviation to filter by.
max_results: Maximum results.
Returns:
List of stations with id, name, state, latitude, longitude.
| Parameter | Type | Required | Description |
|---|---|---|---|
state | any | optional | Filter by US state abbreviation (e.g. 'CA', 'NY', 'FL'). |
max_results | integer | optional | Maximum number of stations to return (1-500). (default: 50) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_stations",
"arguments": {}
}
}report_feedbackReport a bug, feature request, or general feedback for this data source.
Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.
Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: "general") |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "report_feedback",
"arguments": {
"feedback": "example"
}
}
}Quick Start
curl -X POST "https://context.gnist.ai/mcp/noaa-tides/" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_tide_predictions", "arguments": {"station": "example", "begin_date": "example", "end_date": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/noaa-tides/",
headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_tide_predictions",
"arguments": {
"station": "example",
"begin_date": "example",
"end_date": "example"
}
}
},
)
print(resp.json())