Clairwave MCP server
online · 75% uptimeio.github.clairwave/clairwave·v0.4.0Ocean acoustics: propagation models, bathymetry, sound speed, vessel noise, live AIS. Open.
0 stars
Reviews
Write oneNobody has reviewed Clairwave yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Clairwave tools (13, 2 write)
write = sends, deletes, buys or postsaboutFreeWhat Clairwave provides, which models/data back each tool, and limits.
estimate_detection_rangeFreeSonar detection range along a bearing from a location (lat/lon or `place`). Transmission loss (TL) is ALWAYS computed: RAM parabolic equation with the location's bathymetry, seasonal sound speed (`month`, default: current month) and seabed. Every other sonar-equation term is optional — anything not given gets a stated, typical default listed in `assumptions` with its source. Tell the user which values were assumed. Detection threshold DT is derived from processing gain (unless given): detection index d from `pd`/`pfa` (default 0.5 / 1e-4 → d ≈ 13.8), then passive (incoherent energy detector): DT = 5·log10(d / (B·T)), B = analysis band, T = `integration_time_s` (default 1 s); active (matched filter): DT = 10·log10(d / (2·B·τ)), B = `bandwidth_hz` (default 100 Hz LFM), τ = `pulse_length_s` (default 0.5 s). DT is in-band SNR, so it can be negative — that IS the processing gain. mode="passive": SE = SL − TL − (NL − DI) − DT. Default target = merchant ship (bulk carrier, AIS 70, 200 m @ 12 kn, JOMOPANS-ECHO decidecade band level) at 6 m; receiver ½ water depth (≤ 30 m), omni (DI 0 — give directivity_index_db for an array). `frequency_hz` is optional: the tool always also evaluates the target's MOST DETECTABLE 1/3-octave band in 50–2000 Hz (`best_band`) — ships are loudest there; a user frequency is reported as asked. If you give `source_level_db` without `frequency_hz`, the range is evaluated at 50 Hz. mode="active" (monostatic, `frequency_hz` required): SE = SL − 2·TL + TS − (NL − DI) − DT, TL from the sonar to the target depth. Defaults: hull sonar at 7 m, SL 220 dB, TS 10 dB (large underwater object, beam aspect), target ½ water depth (≤ 50 m), DI 20 dB (hull array). Noise-limited only: reverberation is NOT included (often the limit in shallow water). NL (unless given) = Wenz ambient noise at the CURRENT forecast wind at the point (Clairwave weather), moderate shipping, in the analysis band. Units: dB re 1 µPa (SL @ 1 m).
get_bathymetryFreeSeafloor depth from Clairwave-served global bathymetry (~450 m resolution). Location: lat/lon or `place` (name resolved to a water point, echoed in `location`). Without a bearing: depth at the point. With a bearing (compass degrees, 0 = north): a depth profile along that transect out to range_km.
get_sound_speed_profileFreeSeasonal sound-speed profile c(z) at a location (lat/lon or `place` name, e.g. "Halifax approaches") for a calendar month (1-12), from Clairwave-served seasonal temperature/salinity climatology, plus the seabed parameters (compressional/shear speed, density ratio, attenuation, sediment type) at the same point. Cached per 0.1 degree.
get_vesselFreeEverything about one vessel: live AIS position/track and static particulars, plus its 3D model (unique photo-derived model if generated, else the class archetype) with GLB URL (bow=+Z, up=+Y) and platform links.
get_vessel_photoFreePhotograph of a vessel from Wikimedia Commons, with attribution.
habitat_received_levelFreeBroadband received level (dB re 1 uPa) at a fixed site — a fish farm, reef, hydrophone or marine protected area — from the ships around it, power-summed. Each vessel's source level comes from its AIS class, speed and size; transmission loss is a fast broadband model, so this is a screening estimate (use run_transmission_loss for exact site physics). hours_back = 0 uses the live snapshot; > 0 reconstructs a time series from the AIS archive in 10-minute bins (max/median/quiet levels). Location: lat/lon or `place`. Show `open_url` to the user as a clickable link.
resolve_placeFreeTurn a place name ('outside Halifax', 'Strait of Hormuz', 'Bergen, Norway') into water coordinates. Maritime gazetteer first (ports resolve to their approaches, straits/seas to a representative point), then OpenStreetMap. Points on land or shallower than min_depth_m are walked seaward along the gazetteer bearing (or the nearest direction) until deep enough; the original point and the snap are reported. offshore_km pushes the point further out along seaward_bearing_deg. All location tools also accept `place` directly, so a separate call is only needed to inspect.
run_bellhop_volumewrite actionFreeFull 3D transmission-loss volume around a source (lat/lon or `place`) with Bellhop (all bearings), stored on the platform under a run id. Show `open_url` to the user as a clickable link: it opens this run visualized. Returns the run id, the replication metadata (SSP, seabed, bounding box) and file links (uint8 TL cube .npy + JSON sidecar). Any frequency and radius (keep radius <= ~50 km for reasonable run times).
run_transmission_losswrite actionFreeRun a physically grounded transmission-loss simulation (RAM parabolic equation) from a source at (lat, lon or `place`, depth) along a compass bearing. Bathymetry, the seasonal sound-speed profile (`month`) and seabed parameters are fetched for the location automatically. Returns TL vs range at the receiver depths (default: source depth, 10 m, 100 m, mid-water), grid statistics, and the full replication bundle. Show `open_url` to the user as a clickable link.
search_vesselsFreeSearch live AIS vessels by name or MMSI prefix (global feed).
vessel_source_levelFreeUnderwater radiated-noise source level of a ship (monopole, dB re 1 uPa m, 6 m reference source depth): decidecade spectrum (10 Hz - 100 kHz; model bands to 31.5 kHz, validated 20 Hz - 20 kHz) and broadband level, from the JOMOPANS-ECHO reference spectrum model (MacGillivray & de Jong 2021, J. Mar. Sci. Eng. 9:369), fitted to 1862 measured ship passes. Individual ships scatter about +/-6 dB rms per band. Give an MMSI (live AIS type/speed/length are used) or explicit AIS ship_type / speed / length. vessel_class overrides the AIS mapping (e.g. "vehicle_carrier", which has no AIS type). Missing speed = the class reference speed; missing length = the class mean length of the measured ships. The spectrum is usable directly as `sl_spectrum`.
vessels_nearFreeLive AIS vessels within radius_km of a point (lat/lon or `place`), nearest first, with position, course/speed, type, dimensions and last-update time.
Public scan report
scanner v0.1.10 · 2026-10-29 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 1202ms20/20
- Tool poisoning13 tool descriptions checked13/15
- Auth qualityopen endpoint exposes 2 write-action tools with no auth3/15
- Maintenancelast push 32 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (2)
- highWrite-action tools reachable without authentication
auth.open-write - lowUnusually long tool description (over 2,000 characters)
poison.long-descriptiontool estimate_detection_range: …Sonar detection range along a bearing from a location (lat/lon or `place`). Transmission loss (TL) is ALWAYS computed: RAM parabolic equation with the location's bathymetry, seasonal sound speed (`month`, default: current month) and seabed. Every other sonar-equation term is optional — anything not given gets a stated, typical default listed in `assumptions` with its source. Tell the user which values were assumed. Detection threshold DT is derived from processing gain (unless given): detection index d from `pd`/`pfa` (default 0.5 / 1e-4 → d ≈ 13.8), then passive (incoherent energy detector): DT = 5·log10(d / (B·T)), B = analysis band, T = `integration_time_s` (default 1 s); active (matched filter): DT = 10·log10(d / (2·B·τ)), B = `bandwidth_hz` (default 100 Hz LFM), τ = `pulse_length_s` (default 0.5 s). DT is in-band SNR, so it can be negative — that IS the processing gain. mode="passive": SE = SL − TL − (NL − DI) − DT. Default target = merchant ship (bulk carrier, AIS 70, 200 m @ 12 kn, JOMOPANS-ECHO decidecade band level) at 6 m; receiver ½ water depth (≤ 30 m), omni (DI 0 — give directivity_index_db for an array). `frequency_hz` is optional: the tool always also evaluates the target's MOST DETECTABLE 1/3-octave band in 50–2000 Hz (`best_band`) — ships are loudest there; a user frequency is reported as asked. If you give `source_level_db` without `frequency_hz`, the range is evaluated at 50 Hz. mode="active" (monostatic, `frequency_hz` required): SE = SL − 2·TL + TS − (NL − DI) − DT, TL from the sonar to the target depth. Defaults: hull sonar at 7 m, SL 220 dB, TS 10 dB (large underwater object, beam aspect), target ½ water depth (≤ 50 m), DI 20 dB (hull array). Noise-limited only: reverberation is NOT included (often the limit in shallow water). NL (unless given) = Wenz ambient noise at the CURRENT forecast wind at the point (Clairwave weather), moderate shipping, in the analysis band. Units: dB re 1 µPa (SL @ 1 m).…
How Clairwave compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 75/100
- higher than 45% of 48,243 servers
- Tools
- 13
- the typical server has 7
- Tools that change things
- 15%
- typical: 0%. Fewer write tools means less an agent can break
- Uptime
- 75%
- of our recent checks; the typical remote server answers 100%
- Response time
- 805 ms
- faster than 18% of 30,027 servers
What its tools let an agent do: 11 read · 2 run or deploy
Install Clairwave in Claude Code, Cursor or VS Code
claude mcp add --transport http clairwave https://www.clairwave.com/mcp
What the publisher says
From the Clairwave repository's README, as published. We do not edit it. Read it on GitHub
clairwave-mcp
An open MCP server that gives AI assistants physically grounded ocean acoustics.
Clairwave runs validated propagation models (Bellhop, RAM/parabolic equation) on global bathymetry and seasonal sound-speed profiles, tracks live AIS vessels, and serves 3D hull models for them (shipshape). This server exposes that to Claude, ChatGPT, Gemini and any other MCP client — so an assistant reasoning about the ocean can run the physics instead of guessing.
Every result carries provenance (model, data source, runid) and an openurl that opens the exact result in the platform. Simulation results include the bathymetry, sound-speed profile and bottom parameters that were used, so a researcher can replicate the run in MATLAB, Python or anything else.
Endpoint (no auth, no key): https://www.clairwave.com/mcp — Streamable HTTP.
Connect
- Claude Code: claude mcp add --transport http clairwave https://www.clairwave.com/mcp
- Claude.ai / Claude Desktop: Settings → Connectors → Add custom connector → the URL above
- ChatGPT: Settings → Connectors → Create (developer mode) → the URL above
- Any MCP client: point it at the URL; the server is stateless and JSON-response capable
Tools
Typical latency against the live platform: bathymetry 0.5 s, SSP 6 s first time per 0.1° cell then cached, RAM transmission loss 1–3 s, detection range 1–3 s.
Run locally
pip install "mcp[cli]<2" httpx
python server.py # streamable HTTP on :8890 (/mcp)
python server.py --stdio # stdio for local clients
python tests/smoke_client.pyEnvironment: CLAIRWAVEAPI, CLAIRWAVEFLEET, CLAIRWAVESITE, MCPPORT.
Where to find it
- Official MCP Registry: io.github.clairwave/clairwave (https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.clairwave/clairwave)
- Claude: Settings > Connectors > Add custom connector, URL https://www.clairwave.com/mcp, no auth.
- ChatGPT (developer mode) and Grok (grok.com/connectors > New > Custom): paste the same URL.
- xAI / OpenAI APIs: {"type": "mcp", "serverurl": "https://www.clairwave.com/mcp", "serverlabel": "clairwave"}.
Place names
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Grade history
- 2026-10-29restoreD → Bscore 75: Write-action tools reachable without authentication; Unusually long tool description (over 2,000 characters)
- 2026-10-27downgradeA → Dscore 42: Remote endpoint did not respond
Clairwave: common questions
- Is Clairwave MCP server safe?
- Mostly: it is graded B (75/100). Read the Clairwave safety report
- How do I install Clairwave?
- It runs remotely at www.clairwave.com. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does Clairwave need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Clairwave maintained?
- The last commit was 39 days ago (2026-09-27). The latest release is v0.4.0.
- Is Clairwave up?
- 75% of our last 28 checks got an answer. We check remote servers about four times a day.
- How does Clairwave compare with other MCP servers?
- safety score 75/100 (higher than 45% of 48,243 servers); tools 13 (the typical server has 7); tools that change things 15% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.