Skip to main content
Glama
RyanCardin15

noaa-tidesandcurrents-mcp

by RyanCardin15

Get Harmonic Constituents

noaa_get_harmonic_constituents
Read-onlyIdempotent

Fetch a NOAA station's harmonic constituents—amplitudes, phases, and speeds—to build custom tide or current predictions and check if it is harmonically predicted.

Instructions

Get the harmonic constituents NOAA uses to compute tide or current predictions at a station — the amplitude, phase, and angular speed of each tidal constituent (M2, S2, N2, K1, O1, ...).

For water-level stations: amplitude (feet/meters), phase_GMT and phase_local (degrees), speed (degrees/hour). For current stations (alphanumeric IDs) constituents are current ellipses (major/minor amplitudes and phases per depth bin — pass bin to filter).

Use for: building custom tide computations, checking a station's dominant constituents (M2 amplitude indicates semidiurnal range), verifying whether a station is harmonically predicted at all. Only reference (R) stations have constituents — subordinate stations use offsets (noaa_get_prediction_offsets).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
binNoFor current stations: restrict to one depth bin.
unitsNoUnit system. english: feet, °F, knots (wind AND currents), nautical miles. metric: meters, °C, m/s for wind but cm/s for currents, kilometers. Air pressure is millibars and salinity is PSU in BOTH systems.english
stationYesStation ID. Water-level/met stations use 7-digit numeric IDs (e.g. "9414290" San Francisco); current stations use alphanumeric IDs (e.g. "cb0102"). Find stations with noaa_search_stations or noaa_find_nearest_stations.
response_formatNoOutput format: "markdown" for a readable summary table, "json" for the complete structured payload.markdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
_responseYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.1

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context: that constituent availability depends on station type (only R stations), that current stations require bin filtering, and what the returned quantities mean physically (current ellipses, degrees/hour speed).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and the constituent list, then the station-specific data shapes, then usage. Three short paragraphs, each earning its place; minor redundancy with schema-documented unit and format details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value documentation is not required, and annotations cover safety. The description supplies the remaining decision-relevant context: station-type dependence, the R-vs-subordinate distinction, and the alternative tool for subordinate stations. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, and the description marginally exceeds it by explaining that bin only applies to current stations and that station IDs split into numeric water-level IDs versus alphanumeric current IDs. Most of the units/station/format detail is duplicated from the schema, keeping it below a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb+resource (get harmonic constituents) and immediately scopes the result: amplitude, phase, and angular speed of each tidal constituent. It distinguishes the two station flavors (water-level vs. current stations, with current ellipses per depth bin), so an agent can tell what it will get before opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit 'Use for:' list (custom tide computations, dominant-constituent checks, verifying harmonic prediction status) and an explicit exclusion: only reference (R) stations have constituents, while subordinate stations must use noaa_get_prediction_offsets. That is a direct when-to-use / when-to-use-something-else routing statement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.