The LocalTides MCP Server enables interaction with the NOAA Tides and Currents API for accessing tidal, current, meteorological, and astronomical data via the MCP protocol.
It allows you to:
Retrieve real-time and historical water level data
Obtain tide predictions (high/low or interval-based)
Access currents data and predictions
Fetch station information and metadata
Get meteorological data (wind, temperature, etc.)
Retrieve moon phase information and predict future phases
Obtain sun rise/set times, positions, and events
Get parameter definitions for NOAA API requests (time zones, datums, units, etc.)
Provides a Node.js-based MCP server implementation for accessing NOAA Tides and Currents API data.
The MCP server is built using TypeScript, providing type-safe access to the NOAA Tides and Currents API.
Supports XML output format for API responses when retrieving NOAA tides, currents, and meteorological data.
🌊 NOAA Tides & Currents MCP Server
🚀 Lightning-fast access to NOAA's oceanic and atmospheric data through MCP
Your one-stop solution for tides, currents, weather, astronomy, and climate data
📦 Quick Start • 🛠️ Tools • 📖 Examples • 🏗️ Advanced
✨ What Makes This Awesome
🌊 25+ Specialized Tools - From basic tide data to advanced climate projections
⚡ Lightning Fast - Built on FastMCP for optimal performance
🎯 Zero Config - Works out of the box with Claude Desktop
🌍 Comprehensive Data - Water levels, currents, weather, moon phases, sun data
📊 Climate Research Ready - Sea level trends, flooding projections, extreme events
🚀 NPX Ready - Install and run with a single command
🚀 Quick Start
⚡ NPX Installation (Recommended)
🔌 Transport Modes
STDIO Mode (Default - MCP Protocol)
HTTP Streamable Mode (Web Integration)
🎯 Claude Desktop Integration
Install directly to Claude Desktop via Smithery:
🔧 Manual Development Setup
🛠️ Available Tools
Water Levels & Tides
get_water_levels
- Real-time and historical water level dataget_tide_predictions
- High/low tide predictions and continuous dataget_currents
- Real-time and historical current measurementsget_current_predictions
- Current speed and direction forecastsget_meteorological_data
- Wind, air temp, water temp, pressure, etc.
Station Information
get_stations
- Search and list monitoring stationsget_station_details
- Detailed station metadata and capabilities
Sea Level Analysis
get_sea_level_trends
- Long-term sea level rise trends and ratesget_extreme_water_levels
- Statistical analysis of extreme events
High Tide Flooding Analysis
get_high_tide_flooding_daily
- Daily flood event countsget_high_tide_flooding_monthly
- Monthly flooding patternsget_high_tide_flooding_seasonal
- Seasonal flood analysisget_high_tide_flooding_annual
- Yearly flooding trendsget_high_tide_flooding_projections
- Future flood risk scenariosget_high_tide_flooding_likelihoods
- Daily flood probability
Historical Extremes
get_top_ten_water_levels
- Highest/lowest water levels on record
Moon Phase Calculations
get_moon_phase
- Current moon phase and illuminationget_moon_phases_range
- Moon phases over date rangesget_next_moon_phase
- Find next new/full/quarter moons
Solar Calculations
get_sun_times
- Sunrise, sunset, dawn, dusk timesget_sun_times_range
- Solar times over date rangesget_sun_position
- Real-time sun azimuth and elevationget_next_sun_event
- Next sunrise, sunset, or solar noon
API Parameters
get_parameter_definitions
- Valid values for all API parameters
📖 Usage Examples
🌊 Get Current Tide Conditions
🌀 Hurricane Preparedness
🔬 Climate Research
🌙 Astronomy & Navigation
🎣 Fishing & Recreation
🏗️ Advanced Usage
🔧 Development & Testing
🌐 HTTP Stream Integration
When running in HTTP mode, the server provides Server-Sent Events (SSE) at /sse
:
Use Cases for HTTP Mode:
- 🌐 Web Applications - Integrate with React, Vue, Angular apps
- 📱 Mobile Apps - REST-like access from mobile applications
- 🔗 API Gateways - Proxy through load balancers or API gateways
- 🧪 Testing - Easy curl-based testing and debugging
📊 Data Formats & Export
All tools support multiple output formats:
- JSON (default) - Perfect for programmatic use
- XML - Legacy system integration
- CSV - Direct spreadsheet import
🌍 Global Station Coverage
- 13,000+ stations worldwide
- Real-time data from NOAA's CO-OPS network
- Historical records dating back decades
- Global tide predictions and current forecasts
🚦 API Endpoints
This server integrates with three NOAA APIs:
API | Purpose | Base URL |
---|---|---|
Data API | Real-time observations & predictions | api.tidesandcurrents.noaa.gov/api/prod/ |
Metadata API | Station information & capabilities | api.tidesandcurrents.noaa.gov/mdapi/prod/ |
Derived Products API | Climate analysis & research data | api.tidesandcurrents.noaa.gov/dpapi/prod/ |
🛠️ Technical Details
Architecture
- 🚀 FastMCP Framework - High-performance MCP server
- 📝 TypeScript - Full type safety and IntelliSense
- 🔧 Zod Validation - Runtime parameter validation
- ⚡ Axios HTTP Client - Reliable API communication
- 🌙 SunCalc Integration - Precise astronomical calculations
Transport Options
- 📡 STDIO Transport - Standard MCP protocol for desktop clients
- 🌐 HTTP Stream Transport - Server-Sent Events for web integration
- 🔄 Dual Mode Support - Switch between transports via command-line flags
System Requirements
- Node.js 18+
- NPM 8+
- MCP Client (Claude Desktop, etc.)
Package Size
- 📦 Bundled: 43.9 KB
- 📂 Installed: 286.2 KB
- ⚡ Load Time: <100ms
🐛 Troubleshooting
Server Won't Start
API Errors
- Invalid Station ID: Use
get_stations
to find valid stations - Date Format Issues: Use YYYYMMDD or MM/DD/YYYY formats
- Rate Limiting: NOAA APIs have usage limits - space out requests
MCP Connection Issues
- Ensure Claude Desktop MCP settings are configured correctly
- Check that the server binary has execute permissions:
chmod +x dist/index.js
📈 Roadmap
- 🌊 Real-time Alerts - Webhook support for tide/weather alerts
- 📱 Mobile SDK - React Native integration
- 🗺️ GIS Integration - Shapefile and KML export
- 🤖 AI Insights - Automated pattern recognition
- ⚡ GraphQL API - Modern query interface
- 🌐 Multi-language - I18n support
🤝 Contributing
We love contributions! Here's how to get started:
- 🍴 Fork the repository
- 🌿 Branch for your feature (
git checkout -b amazing-feature
) - 💻 Code your improvements
- ✅ Test with
npm test
- 📤 Submit a pull request
Development Commands
📄 License
MIT License - see LICENSE file for details.
Built with ❤️ by Ryan Cardin
🔗 Links & Resources
- 📦 NPM Package: @ryancardin/noaa-tides-currents-mcp-server
- 🏪 Smithery: Auto-install for Claude Desktop
- 🌊 NOAA CO-OPS: Official NOAA Data Portal
- 🤖 MCP Protocol: Model Context Protocol Docs
- ⚡ FastMCP: FastMCP Framework
⭐ Star this repo if it helped you!
Made possible by NOAA's commitment to open oceanic data 🌊
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.
Tools
This server provides tools for interacting with the NOAA Tides and Currents API, enabling access to water level data, tide predictions, currents data, station information, and astronomical information like moon phases and sun times.
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityThis is an MCP (Model Context Protocol) server that provides tools for interacting with the NOAA Tides and Currents API.Last updated -2474MIT License
- AsecurityAlicenseAqualityFetches tide information for any location using latitude and longitude, providing detailed tide data including high/low tides and station information with automatic UTC time zone handling.Last updated -113MIT License
- -securityFlicense-qualityA standardized API server that enables AI agents and client applications to fetch current weather information for any location without directly interacting with external weather APIs.Last updated -
- AsecurityFlicenseAqualityProvides tools to fetch real-time weather data from the National Weather Service API, allowing users to retrieve weather alerts by state and detailed forecasts by coordinates.Last updated -256