Navigation
Surf MCP Server: Dual-Realm Dominance, 24/7 Power - MCP Implementation

Surf MCP Server: Dual-Realm Dominance, 24/7 Power

Surf MCP Server: Ride ocean waves by day, conquer the web by night—Built for the adrenaline of both realms, seamlessly.

Research And Data
4.1(153 reviews)
229 saves
107 comments

Users create an average of 31 projects per month with this tool

About Surf MCP Server

What is Surf MCP Server: Dual-Realm Dominance, 24/7 Power?

Surf MCP Server is a next-gen tool designed for surfers and coastal analysts, delivering real-time tidal insights and seamless API integration. Its "Dual-Realm Dominance" enables simultaneous analysis of environmental data and geographic coordinates, while "24/7 Power" ensures uninterrupted service through robust cloud architecture. It bridges the gap between raw oceanographic data and actionable intelligence for professional surfers and maritime operations.

Key Features of Surf MCP Server: Dual-Realm Dominance, 24/7 Power?

  • Hyper-Precise Tidal Forecasting: Provides sub-meter accuracy in tidal height predictions with UTC timestamp validation
  • Multi-Station Comparison: Compares up to 5 nearest measurement stations highlighting distance-based reliability metrics
  • Auto-Adaptive Time Zones: Converts tidal events to local time zones while maintaining UTC reference benchmarks
  • API Resiliency: Built-in circuit-breaker logic for uninterrupted service during API outages
  • Geospatial Validation: Real-time coordinate verification using NMEA 0183 standards

Surf MCP Server Features

How to Use Surf MCP Server: Dual-Realm Dominance, 24/7 Power?

  1. API Onboarding: Register at Storm Glass to obtain API credentials
  2. Integration Setup: Configure server parameters using our YAML-based config tool
  3. Data Querying: Deploy pre-built CLI commands or use REST endpoints for real-time requests
  4. Output Analysis: Visualize data through our interactive dashboard or raw JSON exports

Use Cases of Surf MCP Server: Dual-Realm Dominance, 24/7 Power?

Peak Surf Window Optimization

Calculate optimal surf times by analyzing tide phase transitions and swell correlations

Coastal Infrastructure Monitoring

Track tidal margins for erosion prediction and marine construction planning

Scientific Research Support

Provide validated tidal datasets for climate change impact studies

Surf MCP Server FAQ

FAQ from Surf MCP Server: Dual-Realm Dominance, 24/7 Power?

How does the 24/7 uptime guarantee work?

Our multi-region Kubernetes clusters ensure automatic failover with <99.99% SLA

Can I customize tidal parameters?

Yes - configure salinity, turbidity, and barometric pressure thresholds via advanced settings

What's the data refresh interval?

15-minute resolution with optional 5-minute premium tier availability

How is data validated?

Triple-checked against NOAA, Copernicus, and local buoy networks for consistency

Content

Surf MCP Server

MCP server for people who surf waves and the web.

Diagram

Letter Dot Grid - 5 dpi

Video Demo

https://github.com/user-attachments/assets/0a4453e2-66df-4bf5-8366-8538cda366ed

Features

  • Fetch tide information for any location using latitude and longitude
  • Support for date-specific tide queries
  • Detailed tide data including high/low tides and station information
  • Automatic time zone handling (UTC)

Prerequisites

  • Python 3.x
  • Storm Glass API key

Getting Your Storm Glass API Key

  1. Visit Storm Glass
  2. Click "Try for Free" or "Sign In" to create an account
  3. Once registered, you'll receive your API key

Note on API Usage Limits:

  • Free tier: 10 requests per day
  • Paid plans available:
    • Small: 500 requests/day (€19/month)
    • Medium: 5000 requests/day (€49/month)
    • Large: 25,000 requests/day (€129/month)
    • Enterprise: Custom plans available

Choose a plan based on your usage requirements. The free tier is suitable for testing and personal use.

Installation

  1. Clone the repository:
git clone https://github.com/ravinahp/surf-mcp.git
cd surf-mcp
  1. Install dependencies using uv:
uv sync

Note: We use uv instead of pip since the project uses pyproject.toml for dependency management.

Configure as MCP Server

To add this tool as an MCP server, you'll need to modify your Claude desktop configuration file. This configuration includes your Storm Glass API key, so you won't need to set it up separately.

The configuration file location depends on your operating system:

  • MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json

Add the following configuration to your JSON file:

{
    "surf-mcp": {
        "command": "uv",
        "args": [
            "--directory",
            "/Users/YOUR_USERNAME/Code/surf-mcp",
            "run",
            "surf-mcp"
        ],
        "env": {
            "STORMGLASS_API_KEY": "your_api_key_here"
        }
    }
}

⚠️ IMPORTANT:

  1. Replace YOUR_USERNAME with your actual system username
  2. Replace your_api_key_here with your actual Storm Glass API key
  3. Make sure the directory path matches your local installation

Deployment

Building

To prepare the package:

  1. Sync dependencies and update lockfile:
uv sync
  1. Build package:
uv build

This will create distributions in the dist/ directory.

Debugging

Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.

You can launch the MCP Inspector with this command:

npx @modelcontextprotocol/inspector uv --directory /path/to/surf-mcp run surf-mcp

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

The Inspector provides:

  • Real-time request/response monitoring
  • Input/output validation
  • Error tracking
  • Performance metrics

Usage

The service provides a FastMCP tool for getting tide information:

@mcp.tool()
async def get_tides(latitude: float, longitude: float, date: str) -> str:
    """Get tide information for a specific location and date."""

Parameters:

  • latitude: Float value representing the location's latitude
  • longitude: Float value representing the location's longitude
  • date: Date string in YYYY-MM-DD format

Example Response:

Tide Times:
Time: 2024-01-20T00:30:00+00:00 (UTC)
Type: HIGH tide
Height: 1.52m

Time: 2024-01-20T06:45:00+00:00 (UTC)
Type: LOW tide
Height: 0.25m

Station Information:
Name: Sample Station
Distance: 20.5km from requested location

Use Cases

Example #1: Finding the Best Surf Time

You can use this tool to determine the optimal surfing time at your favorite beach & the closest station. Generally, the best surfing conditions are during incoming (rising) tides, about 2 hours before high tide.

Example prompt to Claude:

Screenshot 2025-01-07 at 12 55 47 PM

Note: Different beaches may have different optimal tide conditions based on their specific geography and break type. This tool also provides station distance information which should be considered alongside tide information. (ie. longer station distance means higher change of innacuracy - you can ask Claude for this as well when prompting).

Error Handling

The service includes robust error handling for:

  • API request failures
  • Invalid coordinates
  • Missing or invalid API keys
  • Network timeouts

Related MCP Servers & Clients