The Surf MCP Server provides tide information for surfers and ocean enthusiasts.
Fetch Tide Data: Retrieve detailed tide information (high/low tides with heights) for any location using latitude and longitude coordinates.
Date-Specific Queries: Get tide data for a specific date in YYYY-MM-DD format.
Station Details: Includes information about the closest tide station and its distance from the requested location.
Time Zone Handling: All tide times are displayed in UTC.
Optimize Surfing: Use tide data to determine optimal surfing conditions.
Error Handling: Robust error handling for API failures, invalid inputs, and network issues.
Retrieves tide information for specific locations and dates using the Storm Glass API, providing high/low tide times, heights, and nearby station information to help determine optimal surfing conditions.
Surf MCP Server
MCP server for people who surf waves and the web.
Diagram
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
Visit Storm Glass
Click "Try for Free" or "Sign In" to create an account
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
Clone the repository:
Install dependencies using uv:
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:
⚠️ IMPORTANT:
Replace
YOUR_USERNAME
with your actual system usernameReplace
your_api_key_here
with your actual Storm Glass API keyMake sure the directory path matches your local installation
Deployment
Building
To prepare the package:
Sync dependencies and update lockfile:
Build package:
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:
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:
Parameters:
latitude
: Float value representing the location's latitudelongitude
: Float value representing the location's longitudedate
: Date string in YYYY-MM-DD format
Example Response:
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:
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
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Fetches tide information for any location using latitude and longitude, providing detailed tide data including high/low tides and station information with automatic UTC time zone handling.
- Diagram
- Video Demo
- Features
- Prerequisites
- Getting Your Storm Glass API Key
- Installation
- Configure as MCP Server
- Deployment
- Usage
- Use Cases
- Error Handling
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityAccess the time in any timezone and get the current local timeLast updated -139MIT License
- -securityAlicense-qualityReal-time hydrological information retrieval service that provides water level, precipitation, dam discharge data, and observatory location information.Last updated -1Apache 2.0
- AsecurityAlicenseAqualityThis server provides tools for interacting with the NOAA Tides and Currents API, enabling access to water level data, tide predictions, currents data, station information, and astronomical information like moon phases and sun times.Last updated -2424MIT License
- AsecurityFlicenseAqualityProvides time and timezone functionality for LLMs, enabling them to get current time information across different timezones and convert times between zones.Last updated -2