MCP Hub
Back to servers

NOAA CO-OPS MCP Server

NOAA CO-OPS tides, water levels, currents, and meteorological data

Updated
Feb 22, 2026

Quick Install

uvx coops-mcp

OceanMCP

A monorepo of independently installable MCP servers for ocean and coastal data workflows.

PyPI MCP Registry License: MIT

Servers

ServerPyPIDescription
coops-mcpPyPINOAA CO-OPS tides, water levels, currents, meteorological data
erddap-mcpPyPIUniversal ERDDAP data access across 80+ public servers
nhc-mcpPyPINHC storm tracks, advisories, HURDAT2 best track data
stofs-mcpPyPINOAA STOFS storm surge forecasts and observation validation
ofs-mcpPyPINOAA OFS regional ocean model forecasts (water level, temperature, salinity)

No API keys required — all servers use free, publicly available datasets.

Quick Start

Install from PyPI

# uvx (recommended) — runs without permanent install, like npx for Python
uvx coops-mcp

# pip — install into current environment
pip install coops-mcp

# pipx — install in isolated environment with CLI entry point
pipx install coops-mcp

Replace coops-mcp with any server: erddap-mcp, nhc-mcp, stofs-mcp, ofs-mcp.

Install from source

git clone https://github.com/mansurjisan/ocean-mcp.git
cd ocean-mcp/servers/coops-mcp  # or erddap-mcp, nhc-mcp, stofs-mcp, ofs-mcp
uv sync

Configure your MCP client

Add to your MCP settings (e.g., project .mcp.json):

Using PyPI packages (recommended):

{
  "mcpServers": {
    "coops": {
      "command": "uvx",
      "args": ["coops-mcp"]
    },
    "erddap": {
      "command": "uvx",
      "args": ["erddap-mcp"]
    },
    "nhc": {
      "command": "uvx",
      "args": ["nhc-mcp"]
    },
    "stofs": {
      "command": "uvx",
      "args": ["stofs-mcp"]
    },
    "ofs": {
      "command": "uvx",
      "args": ["ofs-mcp"]
    }
  }
}
Using local source checkout
{
  "mcpServers": {
    "coops": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/ocean-mcp/servers/coops-mcp", "python", "-m", "coops_mcp"]
    },
    "erddap": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/ocean-mcp/servers/erddap-mcp", "python", "-m", "erddap_mcp"]
    },
    "nhc": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/ocean-mcp/servers/nhc-mcp", "python", "-m", "nhc_mcp"]
    },
    "stofs": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/ocean-mcp/servers/stofs-mcp", "python", "-m", "stofs_mcp"]
    },
    "ofs": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/ocean-mcp/servers/ofs-mcp", "python", "-m", "ofs_mcp"]
    }
  }
}

Example Queries

With servers configured, you can ask your AI assistant naturally:

CO-OPS queries:

  • "Get current water levels at The Battery, NY"
  • "Find tide stations near Miami Beach"
  • "What are the flood statistics for Charleston, SC?"
  • "Show me the sea level trend at San Francisco"

ERDDAP queries:

  • "Search for sea surface temperature datasets on CoastWatch"
  • "Get chlorophyll data off the California coast for January 2024"
  • "What ERDDAP servers cover the US East Coast?"
  • "List all glider datasets on IOOS Gliders ERDDAP"

NHC queries:

  • "Are there any active tropical cyclones right now?"
  • "Show me Hurricane Katrina's track"
  • "Search for Category 5 hurricanes in the Atlantic"
  • "What is the forecast track for the active storm?"

STOFS queries:

  • "Get the STOFS water level forecast for The Battery, NY"
  • "Compare STOFS forecast vs observations at Boston for the past 24 hours"
  • "What are the top stations with highest predicted water levels?"
  • "Find STOFS stations within 50 km of New Orleans"

OFS queries:

  • "What OFS models cover the Chesapeake Bay?"
  • "Get the water level forecast at lat 38.98, lon -76.48 from CBOFS"
  • "Compare CBOFS water level with CO-OPS observations at station 8571892"
  • "List available NGOFS2 forecast cycles for today"

Cross-server queries:

  • "Find CO-OPS stations near this ERDDAP buoy location"
  • "Compare tide station data with nearby ERDDAP satellite SST"
  • "Is there an active hurricane threatening the Gulf Coast? If so, show me the STOFS surge forecast for New Orleans"
  • "Get the CBOFS water level forecast at Chesapeake Bay and compare it with the CO-OPS tide prediction for the same station"
  • "Show me sea surface temperature from ERDDAP near The Battery and the current water level from CO-OPS"
  • "Which NHC storms have hit the Gulf Coast historically? Show the CO-OPS flood statistics for impacted stations"
  • "Get the STOFS gridded forecast and the OFS water level forecast at the same location and compare them"

Architecture

Each server is fully self-contained with its own pyproject.toml, dependencies, and tests. See docs/architecture.md for details on shared conventions.

Shared patterns across servers:

  • FastMCP for MCP server framework
  • httpx for async HTTP clients
  • Pydantic for parameter validation
  • Read-only tools (no data modification)
  • Dual markdown/JSON output formats
  • Actionable error messages with suggestions

Citation

If you use this project in your research or work, please cite:

@software{jisan2025oceanmcp,
  author    = {Jisan, Mansur Ali},
  title     = {Ocean MCP: Real-Time Marine Data, MCP-Native},
  year      = {2025},
  url       = {https://github.com/mansurjisan/ocean-mcp},
  note      = {MCP servers for NOAA CO-OPS, ERDDAP, NHC, STOFS, and OFS data}
}

License

Licensed under the MIT License. You may use, modify, and distribute this software under the MIT terms. See LICENSE for details.

Reviews

No reviews yet

Sign in to write a review