🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

stofs-mcp

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

stofs-mcp

MCP server for NOAA STOFS storm surge forecast access and validation against CO-OPS observations

pipPyPI
Version
0.1.0
Weekly downloads
219
38.61%
Maintainers
1
Weekly downloads
 

STOFS MCP Server

MCP server providing AI assistants with access to NOAA's Storm Tide Operational Forecast System (STOFS) — operational storm surge and water level forecasts, and validation against CO-OPS observations.

Status: Ready

Tools

ToolDescription
stofs_list_cyclesList available STOFS forecast cycles on AWS S3
stofs_get_station_forecastGet water level forecast time series at a CO-OPS station
stofs_get_point_forecastGet forecast at arbitrary lat/lon (nearest STOFS station)
stofs_get_gridded_forecastForecast at any lat/lon via OPeNDAP (regular grid, no download)
stofs_compare_with_observationsCompare STOFS forecast vs CO-OPS observations (bias, RMSE, correlation)
stofs_get_max_water_levelGet top stations by peak predicted water level in a cycle
stofs_get_system_infoSTOFS model specifications, datums, cycle schedule
stofs_list_stationsList STOFS output stations, filter by state/region/proximity

STOFS Models

STOFS-2D-Global (ADCIRC)

  • Domain: Global unstructured mesh (~12.8M nodes)
  • Cycles: 4x daily — 00, 06, 12, 18 UTC
  • Forecast: 180 hours (7.5 days)
  • Stations: ~385 output points at 6-minute resolution
  • Datum: LMSL (Local Mean Sea Level)
  • Data: s3://noaa-gestofs-pds

STOFS-3D-Atlantic (SCHISM)

  • Domain: US East Coast + Gulf of Mexico + Puerto Rico (~2.9M nodes)
  • Cycles: 1x daily — 12 UTC
  • Forecast: 96 hours (4 days)
  • Stations: ~108 output points at 6-minute resolution
  • Datum: NAVD88
  • Data: s3://noaa-nos-stofs3d-pds

Vertical Datums

⚠️ Datum differences matter when comparing models and observations:

  • STOFS-2D station files: LMSL (Local Mean Sea Level)
  • STOFS-3D station files: NAVD88
  • CO-OPS API: Use datum=MSL for 2D comparison, datum=NAVD for 3D comparison
  • Small systematic offsets (1–5 cm) between LMSL and MSL are expected

Quick Start

git clone https://github.com/mansurjisan/ocean-mcp.git
cd ocean-mcp/servers/stofs-mcp
uv sync

Configure your MCP client

{
  "mcpServers": {
    "stofs": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/ocean-mcp/servers/stofs-mcp", "python", "-m", "stofs_mcp"]
    }
  }
}

Example Queries

  • "What is the latest STOFS-2D-Global forecast cycle?"
  • "Get the water level forecast for The Battery, NY (station 8518750)"
  • "Compare STOFS forecast vs observations at Boston for the past 24 hours"
  • "Find STOFS stations within 50 km of New Orleans"
  • "What are the top 10 stations with highest predicted water levels?"
  • "Get the surge-only forecast at Charleston, SC"
  • "Show me the STOFS forecast near lat 29.95, lon -90.07"
  • "Get the STOFS forecast at lat 36.85, lon -75.98 (Virginia Beach) using the gridded product"

Running Tests

# Unit tests (fast, no network)
uv run pytest tests/test_utils.py -v

# Live integration tests (requires internet, downloads ~5–10 MB)
uv run pytest tests/test_live.py -v -s

Data Sources

  • AWS S3 (primary): noaa-gestofs-pds (2D-Global), noaa-nos-stofs3d-pds (3D-Atlantic)
  • NOMADS OPeNDAP: nomads.ncep.noaa.gov/dods/stofs_2d_glo/ (remote slice of regular-grid data, ~2-day window)
  • CO-OPS API: api.tidesandcurrents.noaa.gov (for observation validation)

License

MIT

Keywords

adcirc

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts