Beach Safety MCP
Resolves beach names to geographic coordinates using OpenStreetMap data (via the Photons geocoder).
šļø Beach Safety MCP
Get comprehensive beach and surf conditions for any beach in the world ā just say the name. No API keys needed for most data.
"How's the surf at Waikiki?" ā instant full report
ā If you find this useful, please star the repo ā it helps others discover it.
What You Get
š Waves ā height, period, direction
š«ļø Swell ā swell height, period, direction
šØ Wind ā speed and direction
š”ļø Temperature ā air and water
āļø UV Index ā current UV + daily max, day/night aware (free, no API key)
ā ļø Rip Current Risk ā Low / Moderate / High
š”ļø Safety Score ā 1-10 with recommendations
Related MCP server: Surf Forecast MCP
Data Sources (all free ā no API keys)
Source | Data |
OpenStreetMap / Photons | Beach name ā coordinates |
Open-Meteo Marine | Wave height, swell, ocean currents |
Open-Meteo Weather | Air temp, wind, precipitation, UV index |
NOAA NWS | Rip current risk, surf zone forecast |
UV index data comes from Open-Meteo at no cost ā no API key needed.
Installation
1. Clone / copy the project
git clone <repo-url>
cd beach-safety-mcpOr just copy the src/server.py file to wherever you want it.
2. Add to mcporter
mcporter config add beach-safety \
--command python3 \
--args "path/to/beach-safety-mcp/src/server.py" \
--cwd "path/to/beach-safety-mcp/config"Add to mcporter manually
Or manually add to ~/.openclaw/workspace/config/mcporter.json:
{
"beach-safety": {
"command": "python3",
"args": ["/full/path/to/beach-safety-mcp/src/server.py"]
}
}3. Test it
mcporter call beach-safety.get_beach_json beach_name="Waikiki"Usage
From any AI assistant (via mcporter)
get_beach_report(beach_name="Waikiki")
get_beach_report(beach_name="Bondi Beach, Sydney")
get_beach_report(beach_name="Cocoa Beach, FL")Just say the beach name ā coordinates are auto-resolved.
From the CLI
python3 beach_lookup.py "Waikiki"
python3 beach_lookup.py "Praia da Rocha, Portugal"
python3 beach_lookup.py "Bondi Beach, Sydney"Surf forecast only
mcporter call beach-safety.get_surf_forecast lat=21.27 lon=-157.82Example Output
š Bondi Beach, Sydney Beach Conditions
Lat/Lon: -33.8907, 151.2724
Updated: 2026-03-23T10:30:00Z UTC
š”ļø SAFETY (Score: 8/10)
Rip Current Risk: Moderate
Safety: Moderate rip current risk
š WAVES
Wave Height: 2.8 ft (0.84m)
Wave Period: 6.7 sec
Swell: 2.4 ft @ 4.8 sec from E
šØ WIND
Speed: 4.0 mph from NE
š”ļø TEMPERATURE
Air: 68°F | Water: 75°F
āļø UV INDEX: current=6 (daily max=9) (Very High) ā sunscreen recommended
*(at night shows current=0 with daily max, UV risk based on max)*
š RECOMMENDATIONS:
ā ļø Swim near a lifeguard. Be aware of rip currents.Safety Score Guide
Score | Meaning | Action |
9-10 | Generally safe | Enjoy with normal precautions |
7-8 | Minor concerns | Caution advised |
4-6 | Caution | Swim near lifeguard |
1-3 | Dangerous | Stay out of the water |
Notes
Works for any beach worldwide ā just name it
NOAA surf zone data is most detailed for US coasts
Open-Meteo marine data covers global oceans
Some less-famous beaches may not resolve ā try adding country/state (e.g., "Kuta Beach, Bali, Indonesia")
Beach name ā coordinates powered by OpenStreetMap + Photons (free)
Project Structure
beach-safety-mcp/
āāā src/
ā āāā server.py # MCP server (Python, stdio)
āāā beach_lookup.py # CLI tool
āāā LICENSE # MIT License
āāā README.mdAvailable Tools
4 toolsget_beach_jsonA
Get beach conditions as structured JSON for programmatic use. Same as get_beach_report but in JSON format. Auto-geocodes any beach name.
Inputs: beach_name (required), latitude, longitude.
get_beach_reportA
Get comprehensive beach safety conditions including rip current risk, waves, swell, wind, temperature, UV, and safety score for any beach location. Automatically geocodes any beach name worldwide ā just say 'Waikiki' or 'Bondi Beach'.
Inputs: beach_name (required), latitude, longitude.
get_surf_forecastA
Get a focused surf forecast for any beach: wave height, wave period and direction, swell height/period/direction, rip current risk, and safety score. Accepts a beach name (auto-geocoded worldwide ā just say 'Waikiki' or 'Bondi Beach') or raw coordinates. Use this when only surf conditions are needed; use get_beach_report for the full safety report including wind, temperature, and UV.
Inputs: latitude, longitude, beach_name.
get_uv_forecastA
Get the UV index forecast for any beach: current and max UV index, risk level, and sun-protection recommendations. Accepts a beach name (auto-geocoded worldwide ā just say 'Waikiki' or 'Bondi Beach') or raw coordinates. Use this when only sun-exposure info is needed; use get_beach_report for the full safety report.
Inputs: latitude, longitude, beach_name.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogā¦
TDQS
Scored across 4 tools
get_beach_json is explicitly 'the same as get_beach_report but in JSON format,' a pure output-format variant that creates real selection ambiguity, and get_surf_forecast/get_uv_forecast are just filtered slices of get_beach_report. The descriptions do explain when to prefer each one, which keeps it readable but the boundaries are functional rather than distinct.
All four tools follow the same get_<subject> snake_case pattern with no style mixing. The only inconsistency is in the subject convention: two use '<condition>_forecast' while the other two use 'beach_<format/output>'.
Four tools is a reasonable, well-scoped size for a beach-conditions service and nothing feels like filler. It is slightly thin, however, since the surf and UV tools mostly duplicate subsets of the comprehensive report.
The surface covers the core beach-safety read concerns: waves, swell, rip current risk, wind, temperature, UV, and an aggregate safety score, with geocoding handled. Minor gaps remain, such as tide times and water-quality or hazard alerts, which matter for beach safety but are not strictly required.
Maintenance
Related MCP Connectors
Weather MCP ā wraps Open-Meteo API (free, no auth)
Open-Meteo MCP ā weather forecast + historical reanalysis + sister APIs
Flood MCP ā wraps Open-Meteo Flood API (free, no auth)
WeatherAPI.com MCP ā wraps WeatherAPI.com (api.weatherapi.com)
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides weather forecasts and active alerts for US locations using the National Weather Service API. It supports both local stdio and remote HTTP/SSE transport modes for flexible integration with MCP clients.95 npmGPL 3.0
- FlicenseNot gradedqualityDmaintenanceProvides surf forecast data including swell height, period, direction, and wind conditions for any location worldwide using the Open-Meteo Marine API. It also includes tools to find the best day to surf and integrates with MCP clients via a Python server.21-
- FlicenseNot gradedqualityDmaintenanceMinimal MCP server exposing tools for kitesurfing forecasts (wind and waves via Open-Meteo) and tide predictions (via NOAA CO-OPS).-
- AlicenseNot gradedqualityDmaintenanceMCP server for real-time surf conditions at 5,000+ beaches worldwide. Enables checking surf conditions, finding nearest spots, and listing spots via natural language.53 npm1MIT