MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

Comprehensive beach and surf conditions for any beach in the world — rip current risk, waves, swell, wind, temperature, UV, and safety scores. MCP server + CLI.

Created 3/23/2026
Updated about 4 hours ago
Repository documentation and setup instructions

🏖️ 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

What You Get

  • 🌊 Waves — height, period, direction
  • 🌫️ Swell — swell height, period, direction
  • 💨 Wind — speed and direction
  • 🌡️ Temperature — air and water
  • ☀️ UV Index — sun protection guidance (requires free OpenUV API key)
  • ⚠️ Rip Current Risk — Low / Moderate / High
  • 🛡️ Safety Score — 1-10 with recommendations

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 | | NOAA NWS | Rip current risk, surf zone forecast |

Optional: Add a free OpenUV API key (openuv.io) for UV index — 50 requests/day free.

export OPENUV_API_KEY="your-free-key-from-openuv.io"

Set it once in your shell profile and UV data will be included automatically. Or pass it directly to the tool.

Installation

1. Clone / copy the project

git clone <repo-url>
cd beach-safety-mcp

Or 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"

Set OpenUV API key (for UV index)

UV data requires a free API key from openuv.io (50 requests/day free):

export OPENUV_API_KEY="your-free-key"

Add this to your shell profile (~/.zshrc) to have it available always.

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.82

Example 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
   UV: 6 — Moderate — Protection needed 10am-4pm

📋 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.md
Quick Setup
Installation guide for this server

Install Package (if required)

uvx beach-safety-mcp

Cursor configuration (mcp.json)

{ "mcpServers": { "evanfoglia-beach-safety-mcp": { "command": "uvx", "args": [ "beach-safety-mcp" ] } } }