
Water Conditions
io.github.aybeearePublished by GitHub account aybeearev1.3.0Updated Nov 1, 2026
Real-time water temperature and tides for 8,000+ locations, by name or lat/long coordinates.
Overview
Local MCP server that gives an assistant real-time water temperature and tide predictions for 8,000+ lakes, rivers, oceans, bays and beaches by name or…
- What you can do
- Look up water conditions by place name or latitude/longitude, with automatic nearest-station matching for coordinates.
- Retrieve real-time water temperature and tide prediction data for lakes, rivers, oceans, bays and beaches.
- Resolve place names to coordinates through geocoding as a fallback.
- Pull data live from NOAA CO-OPS, USGS and seatemperature.info across North America and major international bodies of water.
- When to use it
- Useful when you want an assistant to answer questions about current water temperature or tide predictions for a specific beach, lake, river or coastal spot, for example for swimming, fishing or trip planning.
- Requirements
- Runs as a local process on the user's machine, installed from the PyPI package water-conditions-mcp over stdio. No accounts, API keys, headers or environment variables are declared. Network access is needed to reach the upstream data sources.
Installation
In SourceWeft
- Open Water Conditions in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
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.
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:
The $env: line only needs to be run once per terminal session.
Source: README.md at commit f2c8c44
Tools
0Version history
2- v1.3.0LatestNov 1, 2026
- v1.1.0Sep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.