io.github.aybeeare/water-conditions
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@io.github.aybeeare/water-conditionswater temperature at Lake Tahoe"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Get real-time water temperature and tide prediction data for any lake, river, ocean, bay, or beach by name or latitude/longitude coordinates. Data sourced live from NOAA CO-OPS, USGS, and seatemperature.info, with automatic nearest-station matching for coordinate inputs. Coverage includes 8,000+ named locations across North America and major international bodies, with string to coordinate geocoding for fallback.
mcp-name: io.github.aybeeare/water-conditions
Roadmap: national sensor network expansion
Today's accuracy hierarchy is USGS/NOAA (real government sensors, ground-truth for the exact station) > seatemperature.info (best-guess aggregator, no known dedicated sensor network, used for everywhere else via geocoding). The plan is to extend the first tier — real sensor networks, wired in the same way as USGS/NOAA — country by country, rather than leaning on the aggregator fallback long-term. Goal: a genuine "super API" blending national sensor networks the way this project already blends USGS + NOAA.
Confirmed and ready to integrate (free, open, no API key required):
UK Environment Agency — best next candidate. Hydrology API (river flows/levels/groundwater, ~8,000 stations, 15-min resolution) + Flood Monitoring API (river/tide levels) — same openness and simplicity as USGS/NOAA, Open Government Licence.
France SHOM/REFMAR — ~100 real-time tide gauges, Licence Etalab 2.0.
Investigated, more complex integration:
Copernicus Marine Service (EU/global sea surface temperature, satellite + in-situ) — free and authoritative, but the bulk data products are scientific-grade (NetCDF via a Python toolbox) rather than simple per-station JSON. Has a REST "In Situ Dashboard" worth a closer look.
Investigated, unclear near-term path:
East Asia (Japan JMA/JODC, Korea KMA) — both have relevant agencies, but access looked more fragmented/licensed than the UK case in an initial search (Japan's tide data appears to route through an authorized distributor, not a clean open endpoint). Needs real investigation before committing — not a near-term target.
North America (USGS/NOAA) + Europe (UK EA, France SHOM) covers the current priority footprint well. Everything else stays on the geocoding + seatemperature.info fallback until/unless a specific region's sensor network turns out to be worth the integration effort.
Related MCP server: mcp-usgs-water-data
Query log (owner only)
Every /fishing-guide request is logged with its channel (alexa, mcp-http,
mcp-stdio or rest), the MCP client name when known, what was asked, what it
resolved to, the outcome and the latency. The log is a separate SQLite file
(api/query_log.py), not fishing.db, because fishing.db is rebuilt from git
on every deploy.
1. One-time setup on Railway
Attach a volume to the service (any mount path, e.g.
/data). The log goes to$RAILWAY_VOLUME_MOUNT_PATH/query_log.dbautomatically. Without a volume the log is wiped on every deploy and the server logs a warning at startup.ACTIVITY_API_KEYis already set. Note the value somewhere safe.
2. Read it — open a terminal in this project folder:
$env:ACTIVITY_API_KEY="your-secret-here"
python scripts/activity.py # last 7 days: counts + last 50 calls
python scripts/activity.py --days 30 --channel alexa
python scripts/activity.py --days 3650 --csv query_log.csv # download every rowThe $env: line only needs to be run once per terminal session.
Available Tools
1 toolget_water_conditionsWater ConditionsARead-onlyIdempotent
Get real-time water temperature and tide prediction data for any lake, river, ocean, bay, or beach by name or latitude/longitude coordinates. Data sourced live from NOAA CO-OPS, USGS, and seatemperature.info — not from training data — with automatic nearest-station matching for coordinate inputs. Coverage includes 8,000+ named locations across North America and major international bodies, with string to coordinate geocoding for fallback. Use this whenever a user asks about current water temperature, beach or swimming conditions, boating, surfing, fishing, tide times, or any question requiring real-time water data. If the name is ambiguous the result has needs_clarification=true and a list of options: ask the user, then call again with the chosen option as location.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | No | Latitude in decimal degrees, for nearest-station lookup when no location name is available. Requires longitude. | |
| location | No | Water body name as natural language. Examples: 'Lake Michigan', 'Revere Beach', 'Chesapeake Bay', 'Cape Cod', 'Galveston Island', 'Puget Sound', 'Florida Keys', 'Potomac River', 'Waikiki Beach'. Provide this OR latitude+longitude. | |
| longitude | No | Longitude in decimal degrees, for nearest-station lookup when no location name is available. Requires latitude. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | Why there is no temperature, when temp_f is absent |
| tides | No | Today's high/low tide predictions; empty for non-tidal water |
| source | No | Where the temperature came from |
| temp_c | No | Water temperature, °C |
| temp_f | No | Water temperature, °F. Absent when no current reading exists (see note) |
| message | No | What to do next when needs_clarification is true |
| options | No | Place names to choose from; call again with one as location |
| location | No | Name of the station or place the reading is for |
| temp_f_max | No | High end of today's range across the water body, °F |
| temp_f_min | No | Low end of today's range across the water body, °F |
| distance_km | No | Distance from the requested coordinates to the station |
| observed_at | No | ISO-8601 UTC time the reading was taken |
| coverage_note | No | Present when temp_f_min/temp_f_max describe a whole water body |
| data_freshness | No | ISO-8601 UTC time the reading was fetched |
| needs_clarification | No | True when the name matched several places; see options |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.3.0- First observed
get_water_conditions
TDQS
Scored across 1 tool
There is only one tool, so there is no possibility of misselection between tools. The single tool's purpose — fetching real-time water temperature and tide data by name or coordinates — is stated unambiguously in its description.
The name get_water_conditions follows a clear verb_noun snake_case convention. With a single tool there is no inconsistency, and the name is readable and predictive of behavior.
A single tool is thin for a server, though this one is a rich, well-described data endpoint rather than a trivial wrapper. The narrow domain (one live-data lookup) makes one tool defensible, but it sits at the borderline of the 1-2 tool range.
The tool covers the core domain: current water temperature plus tide predictions for arbitrary locations, with geocoding and nearest-station fallback handled internally, so agents won't hit dead ends for the primary use case. Minor gaps remain — no multi-day forecast, water quality, or explicit station-listing operation — but these are workarounds or out of stated scope.
Maintenance
Related MCP Connectors
Find NOAA tide stations and NDBC buoys, fetch tide predictions, currents, and live conditions.
Real-time water levels and flow rates from USGS stream gauges
Tides, currents, marine forecasts and warnings for paddlers, anglers and small boats, 26 countries.
Worldwide tide times and heights, marine weather, sea temperature, sun and moon for 13,000+ ports.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides real-time weather data and multi-day forecasts for any location worldwide.49 npmMIT
- AlicenseAqualityCmaintenanceEnables querying USGS water data including real-time and historical streamflow, gage height, and water temperature from USGS gauges across the United States.3MIT
- AlicenseNot gradedqualityFmaintenanceProvides NOAA tide predictions and observed water levels, allowing AI agents to query tide stations and current water level data.7 npmMIT
- AlicenseNot gradedqualityCmaintenanceProvides lake conditions, fish-stocking records, fishing-favorability scoring, and live weather for outdoor recreation AI agents, powering trip-planning and fishing apps with 72,000+ US lakes and 293,000+ stocking events.MIT