Skip to main content
Glama
ivoytov

surfline-mcp

by ivoytov
README.md
# surfline-mcp

Minimal Python MCP server with one tool: `get_surf_forecast`.

It fetches both Surfline forecast endpoints:
- `conditions`
- `rating`

The spot is fixed by environment variable (`SURFLINE_SPOT_ID`) so this server is effectively single-spot.

## Setup

```bash
cd surfline-mcp
uv sync
```

## Run (stdio MCP server)

```bash
cd surfline-mcp
export SURFLINE_SPOT_ID=5842041f4e65fad6a7708852
uv run surfline-mcp
```

## Run via uvx (from GitHub)

```bash
export SURFLINE_SPOT_ID=5842041f4e65fad6a7708852
uvx --from git+https://github.com/ivoytov/surfline-mcp surfline-mcp
```

## Nanobot MCP config (uvx)

```json
{
  "tools": {
    "mcpServers": {
      "surfline": {
        "command": "uvx",
        "args": ["--from", "git+https://github.com/ivoytov/surfline-mcp", "surfline-mcp"],
        "env": {
          "SURFLINE_SPOT_ID": "5842041f4e65fad6a7708852"
        }
      }
    }
  }
}
```

## Tool

`get_surf_forecast(days=3)`

Returns:
- `spot_id`
- `days`
- `daily_forecast[]` with:
  - `forecastDay`
  - `dayToWatch`
  - `headline`
  - `observation`
  - `rating_summary.dominant_key`
  - `rating_summary.min_value`
  - `rating_summary.max_value`
  - `rating_summary.avg_value`
  - `rating_windows[]` as compact 3-hour snapshots:
    - `local_hour`
    - `key`
    - `value`

TDQS

B3/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool's purpose is clearly defined and distinct by default.

Naming Consistency5/5

The single tool name 'get_surf_forecast' follows a clear verb_noun pattern. With only one tool, consistency is inherently perfect as there are no other tools to compare against.

Tool Count2/5

A single tool is too few for a surf forecast server's apparent scope, which typically involves multiple operations like listing spots, getting forecasts for different locations, or accessing different data types. This minimal set limits functionality.

Completeness2/5

The tool surface is severely incomplete for a surf forecasting domain. It only fetches forecast data for one pre-configured spot, lacking operations to list spots, get forecasts for multiple locations, or access other surf-related data like tides or reports.

Maintenance

ActivityInactive
ResponsivenessNo issues