MCP server exposing the Clairwave ocean-acoustics platform to AI assistants: physically grounded, reproducible, cited. Provides bathymetry, seasonal sound-speed profiles, seabed parameters, transmission-loss simulations (RAM parabolic equation, Bellhop), vessel source levels, detection ranges, and live AIS vessels with 3D hull models.
Strong foundation with 11 well-named tools following verb_noun convention (resolve_, get_, run_, estimate_, search_, vessel_). All tools have descriptions (avg 150 chars, within 10-1024 baseline). Input schemas present with type definitions and parameter descriptions. Output schemas declared via TypedDict (LocationInfo, BathymetryResult, SoundSpeedResult, TransmissionLossResult). Key gaps: no tool annotations (readOnlyHint/destructiveHint/idempotentHint), limited error guidance in descriptions, and some parameter descriptions lack format/range constraints. Composition is clean, each tool has single responsibility. Naming is consistent and action-oriented.
Estimate detection range for a source given source level, receiver noise level, and detection threshold. Combines transmission loss with signal excess (SL - TL - NL - DT) to find continuous and furthest detectable ranges.
Get bathymetry (water depth) at a point or along a transect bearing. Returns depth at point or profile along bearing with min/max depths.
Get seasonal sound-speed profile (SSP) and seabed acoustic parameters at a location. Returns depth/sound-speed arrays, bottom parameters (compressional/shear wave speeds, density, attenuation), and replication bundle.
Get detailed information about a specific vessel by MMSI. Returns AIS record with position, course, speed, type, dimensions, and 3D hull model link.
Retrieve a pre-computed 3D transmission-loss volume (cube) for a location and frequency. Returns metadata, SSP, and download URLs for the TL cube and bathymetry.
Estimate received noise levels at a location from all nearby vessels. Returns top N vessels by contribution and total received level.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared. All tools are READ_ONLY but this is not signaled via ToolAnnotations in the MCP response.
Parameter descriptions lack explicit format/range constraints. E.g., 'bearing_deg' should state '0-360 degrees', 'month' should state '1-12', 'frequency_hz' should state 'positive Hz'. LLMs cannot infer numeric bounds from names alone.
Error handling guidance missing from tool descriptions. No recovery hints (e.g., 'If place not found, try lat/lon instead'). Descriptions state WHAT but not WHEN or HOW TO RECOVER.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Resolve a place name (port, strait, sea, or coordinate) to a water point with depth and seaward bearing. Accepts lat/lon OR a place name; names resolve to a water point and the coordinates used are echoed back.
Run transmission-loss simulation (RAM parabolic equation or Bellhop) from a source to receivers at various ranges and depths. Returns TL vs range/depth, solver metadata, and replication bundle for reproducibility.
Search for vessels by name or MMSI. Returns AIS records with position, course, speed, type, dimensions, and link to visualize in Clairwave platform.
Compute radiated-noise source level for a vessel given ship type, speed, and dimensions. Returns broadband SL and third-octave band spectrum with cavitation, machinery, flow, and tonal contributions.
Find vessels near a location within a radius. Returns nearest vessels first with distance and link to visualize each in Clairwave platform.
Output schema documentation incomplete. SoundSpeedResult, TransmissionLossResult, and others declare fields but lack descriptions for nested objects (e.g., 'bottom' object structure, 'grid' object structure, 'replication' bundle contents).
Mutually exclusive parameters not documented. E.g., 'lat/lon' vs 'place' in multiple tools, descriptions should state 'Provide either lat/lon OR place, not both'.