noaa-tidesandcurrents-mcp

by RyanCardin15
Verified

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.

<a href="https://glama.ai/mcp/servers/ro2rz2c734"> <img width="380" height="200" src="https://glama.ai/mcp/servers/ro2rz2c734/badge" />

NOAA Tides and Currents MCP Server

This is an MCP (Model Context Protocol) server that provides tools for interacting with the NOAA Tides and Currents API using the FastMCP framework.

Features

  • Water Level data retrieval (real-time and historical)
  • Tide Predictions (high/low or interval-based)
  • Currents data (real-time and historical)
  • Current predictions
  • Station metadata retrieval
  • Wind, air temperature, water temperature, and other meteorological data

Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn

Setup

  1. Clone this repository
  2. Install dependencies
npm install
  1. Create a .env file based on the .env.example file:
# Server Configuration PORT=3000 # Transport type (stdio or sse) TRANSPORT_TYPE=stdio # NOAA API application name for identification (recommended) APPLICATION_NAME=YourAppName
  1. Build the TypeScript code
npm run build
  1. Start the server
npm start

Usage

This MCP server can be used with any MCP host such as Claude Desktop, which allows you to use the NOAA Tides and Currents API through the MCP protocol.

You can also test it directly using the fastmcp command-line tool:

npx fastmcp dev dist/index.js

Or, you can use the MCP Inspector:

npx fastmcp inspect dist/index.js

Available Tools

Water Levels

  • get_water_levels - Get water level data for a station
    • Parameters:
      • station (string) - Station ID
      • date (string, optional) - Date to retrieve data for ("today", "latest", "recent", or specific date)
      • begin_date (string, optional) - Start date (YYYYMMDD or MM/DD/YYYY)
      • end_date (string, optional) - End date (YYYYMMDD or MM/DD/YYYY)
      • range (number, optional) - Number of hours to retrieve data for
      • datum (string, optional) - Datum to use (MLLW, MSL, etc.)
      • units (string, optional) - Units to use ("english" or "metric")
      • time_zone (string, optional) - Time zone (gmt, lst, lst_ldt)
      • format (string, optional) - Output format (json, xml, csv)

Tide Predictions

  • get_tide_predictions - Get tide prediction data
    • Parameters:
      • station (string) - Station ID
      • begin_date (string) - Start date (YYYYMMDD or MM/DD/YYYY)
      • end_date (string) - End date (YYYYMMDD or MM/DD/YYYY)
      • datum (string, optional) - Datum to use (MLLW, MSL, etc.)
      • units (string, optional) - Units to use ("english" or "metric")
      • time_zone (string, optional) - Time zone (gmt, lst, lst_ldt)
      • interval (string, optional) - Interval (hilo, hl, h, or a number for minutes)
      • format (string, optional) - Output format (json, xml, csv)

Currents

  • get_currents - Get currents data for a station
    • Parameters:
      • station (string) - Station ID
      • date (string, optional) - Date to retrieve data for ("today", "latest", "recent", or specific date)
      • begin_date (string, optional) - Start date (YYYYMMDD or MM/DD/YYYY)
      • end_date (string, optional) - End date (YYYYMMDD or MM/DD/YYYY)
      • bin (number, optional) - Bin number
      • units (string, optional) - Units to use ("english" or "metric")
      • time_zone (string, optional) - Time zone (gmt, lst, lst_ldt)
      • format (string, optional) - Output format (json, xml, csv)

Current Predictions

  • get_current_predictions - Get current predictions
    • Parameters:
      • station (string) - Station ID
      • date (string, optional) - Date to retrieve data for ("today", "latest", "recent", or specific date)
      • begin_date (string, optional) - Start date (YYYYMMDD or MM/DD/YYYY)
      • end_date (string, optional) - End date (YYYYMMDD or MM/DD/YYYY)
      • bin (number, optional) - Bin number
      • interval (string, optional) - Interval (MAX_SLACK or a number for minutes)
      • vel_type (string, optional) - Velocity type (speed_dir or default)
      • units (string, optional) - Units to use ("english" or "metric")
      • time_zone (string, optional) - Time zone (gmt, lst, lst_ldt)
      • format (string, optional) - Output format (json, xml, csv)

Meteorological Data

  • get_meteorological_data - Get meteorological data
    • Parameters:
      • station (string) - Station ID
      • product (string) - Product (air_temperature, wind, etc.)
      • date (string, optional) - Date to retrieve data for ("today", "latest", "recent", or specific date)
      • begin_date (string, optional) - Start date (YYYYMMDD or MM/DD/YYYY)
      • end_date (string, optional) - End date (YYYYMMDD or MM/DD/YYYY)
      • units (string, optional) - Units to use ("english" or "metric")
      • time_zone (string, optional) - Time zone (gmt, lst, lst_ldt)
      • format (string, optional) - Output format (json, xml, csv)

Station Information

  • get_stations - Get list of stations
    • Parameters:
      • type (string, optional) - Station type (waterlevels, currents, etc.)
      • units (string, optional) - Units to use ("english" or "metric")
      • format (string, optional) - Output format (json, xml)
  • get_station_details - Get detailed information about a station
    • Parameters:
      • station (string) - Station ID
      • units (string, optional) - Units to use ("english" or "metric")
      • format (string, optional) - Output format (json, xml)

API Documentation

NOAA Tides and Currents API documentation can be found at:

About FastMCP

FastMCP is a TypeScript framework for building MCP servers capable of handling client sessions. It provides:

  • Simple Tool, Resource, Prompt definition
  • Sessions
  • Image content
  • Logging
  • Error handling
  • SSE
  • Progress notifications
  • Typed server events
  • And more

Learn more at: https://github.com/punkpeye/fastmcp

License

MIT

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

This is an MCP (Model Context Protocol) server that provides tools for interacting with the NOAA Tides and Currents API.

  1. Features
    1. Prerequisites
      1. Setup
        1. Usage
          1. Available Tools
            1. Water Levels
              1. Tide Predictions
                1. Currents
                  1. Current Predictions
                    1. Meteorological Data
                      1. Station Information
                    2. API Documentation
                      1. About FastMCP
                        1. License