Sponsored by Deepsite.site

Surf MCP Server

Created By
ravinahpa year ago
An MCP server for people who surf waves and the web.
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
Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
Serper MCP ServerA Serper MCP Server
ChatWiseThe second fastest AI chatbot™
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
RedisA Model Context Protocol server that provides access to Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Tavily Mcp
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
WindsurfThe new purpose-built IDE to harness magic
CursorThe AI Code Editor
Amap Maps高德地图官方 MCP Server
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
DeepChatYour AI Partner on Desktop
Playwright McpPlaywright MCP server