RyanCardin15/NOAA-TidesAndCurrents-MCP
If you are the rightful owner of NOAA-TidesAndCurrents-MCP and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
LocalTides MCP Server provides tools for interacting with the NOAA Tides and Currents API using the FastMCP framework.
π 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)
# Install and run immediately - no setup required!
npx @ryancardin/noaa-tides-currents-mcp-server
# Or use the shorter alias
npx noaa-mcp
π Transport Modes
STDIO Mode (Default - MCP Protocol)
# Standard MCP server for Claude Desktop integration
npx @ryancardin/noaa-tides-currents-mcp-server
# Or use the shorter alias
npx noaa-mcp
HTTP Streamable Mode (Web Integration)
# Start HTTP server on default port 3000
npx @ryancardin/noaa-tides-currents-mcp-server --http
# Specify custom port
npx @ryancardin/noaa-tides-currents-mcp-server --http --port 8080
# Using shorter alias
npx noaa-mcp --http --port 8080
# Access via Server-Sent Events
curl http://localhost:3000/sse
π― Claude Desktop Integration
Install directly to Claude Desktop via Smithery:
npx -y @smithery/cli install @RyanCardin15/tidesandcurrents --client claude
π§ Manual Development Setup
# Clone and build
git clone https://github.com/RyanCardin15/NOAA-Tides-And-Currents-MCP.git
cd NOAA-Tides-And-Currents-MCP
npm install && npm run build
# Start the server
npm start
# Test with FastMCP
npx fastmcp dev dist/index.js
π οΈ Available Tools
π Water Data Tools (6 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
π¬ Climate & Research Tools (9 tools)
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
π Astronomy Tools (7 tools)
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
βοΈ Configuration Tools (1 tool)
API Parameters
get_parameter_definitions
- Valid values for all API parameters
π Usage Examples
π Get Current Tide Conditions
# Get latest water levels for Boston Harbor
get_water_levels station="8443970" date="latest"
# Get today's tide predictions for Miami
get_tide_predictions station="8723214" begin_date="today" end_date="today" interval="hilo"
π Hurricane Preparedness
# Get extreme water level statistics for storm planning
get_extreme_water_levels station="8518750" units="english"
# Check flooding likelihood for tomorrow
get_high_tide_flooding_likelihoods station="8518750" date="2024-12-16" threshold="minor"
π¬ Climate Research
# Analyze 30-year sea level trends
get_sea_level_trends station="8518750" affiliation="US"
# Get high tide flooding projections for 2050s under intermediate sea level rise
get_high_tide_flooding_projections station="8518750" scenario="intermediate" decade="2050s"
π Astronomy & Navigation
# Get tonight's moon phase for navigation
get_moon_phase date="2024-12-15" latitude="42.3601" longitude="-71.0589"
# Calculate sunrise/sunset for sailing
get_sun_times date="2024-12-15" latitude="25.7617" longitude="-80.1918" timezone="America/New_York"
π£ Fishing & Recreation
# Best fishing times with current predictions
get_current_predictions station="ACT0446" date="today" interval="MAX_SLACK"
# Wind and weather conditions
get_meteorological_data station="8443970" product="wind" date="today"
ποΈ Advanced Usage
π§ Development & Testing
# Run in development mode (stdio)
npm run dev
# Development with HTTP transport
npm run dev:http
# Production builds with different transports
npm start # STDIO mode (default)
npm run start:http # HTTP on port 3000
npm run start:http:3001 # HTTP on port 3001
npm run start:http:8080 # HTTP on port 8080
# Inspect server capabilities
npx fastmcp inspect dist/index.js
π HTTP Stream Integration
When running in HTTP mode, the server provides Server-Sent Events (SSE) at /sse
:
# Start HTTP server
npx @ryancardin/noaa-tides-currents-mcp-server --http --port 3000
# Test the endpoint
curl -N http://localhost:3000/sse
# Or integrate with web applications
fetch('http://localhost:3000/sse')
.then(response => response.body.getReader())
.then(reader => {
// Handle streaming MCP responses
});
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
Common Issues & Solutions
Server Won't Start
# Check Node.js version
node --version # Should be 18+
# Rebuild TypeScript
npm run build
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
npm run build # Build TypeScript
npm run dev # Development mode
npm run test # Run test suite
npm run format # Format with Prettier
π License
MIT License - see 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 π