Labsco
robertdcurrier logo

ERDDAP MCP Server

β˜… 17

from robertdcurrier

Access ERDDAP servers worldwide to search, discover, and retrieve oceanographic and environmental scientific datasets.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeQuick setup

ERDDAP MCP Servers - Local & Remote

Access oceanographic and environmental data from ERDDAP servers worldwide through Claude Desktop via two complete MCP implementations: local stdio and remote HTTP.

πŸš€ Now with dynamic server loading from erddaps.json - 63+ ERDDAP servers available!

🌊 Two Servers, All Possibilities

This repository provides both local and remote MCP server implementations:

πŸ“ Local MCP Server (erddapy_mcp_server.py)

  • Traditional stdio-based MCP server for local Claude Desktop use
  • 4 comprehensive ERDDAP tools for data discovery and access
  • Easy setup via claude_desktop_config.json
  • No network dependencies - runs completely locally

☁️ Remote MCP Server (erddap_remote_mcp_oauth.py)

  • HTTP-based MCP server for cloud deployment
  • Production-ready with fly.io deployment configuration
  • mcp-remote proxy compatible for Claude Desktop integration
  • Same 4 core tools optimized for remote performance

What is ERDDAP?

ERDDAP (Environmental Research Division's Data Access Program) is a data server that provides simple, consistent access to scientific datasets in common file formats. These MCP servers make ERDDAP's powerful oceanographic data accessible to AI assistants through natural language queries.

Available Tools

Available Tools (Both Servers)

ToolDescriptionExample Use
list_serversShow well-known ERDDAP servers worldwide"Show me available ERDDAP servers"
search_datasetsSearch for datasets by keyword"Find temperature datasets on IOOS ERDDAP"
get_dataset_infoGet detailed metadata about a dataset"Tell me about dataset jplMURSST41"
to_pandasDownload and preview data"Show me temperature data from January 2024"

Architecture Comparison

Local Server

  • Communication: stdio (standard input/output)
  • Deployment: Runs on your local machine
  • Tools: 4 comprehensive data access tools
  • Setup: Single config file entry
  • Dependencies: Python + MCP library

Remote Server

  • Communication: HTTP with JSON-RPC 2.0
  • Deployment: Cloud platforms (fly.io, AWS, etc.)
  • Tools: Same 4 data access tools
  • Setup: Requires mcp-remote proxy
  • Dependencies: FastAPI + Docker + HTTPS

Common Tool Parameters

Both servers accept these parameters:

  • server_url: ERDDAP server URL (defaults to NOAA CoastWatch)
  • protocol: Either "tabledap" (tabular data) or "griddap" (gridded data)
  • dataset_id: The dataset identifier
  • variables: List of variables to retrieve
  • constraints: Dictionary of constraints (e.g., time/space bounds)

Tips for Best Results

  1. Start with local: Local server has easier setup and no proxy requirement
  2. Use remote for sharing: Remote server can be accessed by multiple users
  3. Check metadata first: Use get_dataset_info before downloading data
  4. Use constraints: Limit data requests to avoid timeouts
  5. Choose correct protocol: tabledap for tabular, griddap for gridded data

The Remote MCP Discovery Journey

This remote implementation represents months of debugging the Remote MCP mystery:

Failed Approaches:

  1. Direct SSE connections - Claude Desktop doesn't support this
  2. Config file remote URLs - Only works for local stdio servers
  3. Connector UI attempts - Also doesn't support direct connections

The Breakthrough:

The mcp-remote proxy requirement was buried in third-party documentation. This critical piece enables Claude Desktop to talk to remote MCP servers via HTTP.

Credits

  • ERDDAP was developed by Bob Simons at NOAA's Environmental Research Division. Learn more at the ERDDAP website.
  • erddapy is the official Python client for ERDDAP, developed by Filipe Fernandes and the IOOS community. Visit the erddapy documentation.
  • mcp-remote proxy enables remote MCP connections to Claude Desktop

Common Use Cases

  • Climate Research: Access historical temperature, salinity, and current data
  • Marine Biology: Find chlorophyll concentrations and ocean color data
  • Coastal Management: Monitor sea level, wave heights, and coastal conditions
  • Fisheries: Access environmental data for fisheries management
  • Education: Explore real oceanographic data for teaching and learning

Server List Management

ERDDAP servers are now loaded dynamically from erddaps.json:

  • 63 ERDDAP servers pre-configured (worldwide coverage)
  • Easy to add/remove servers by editing JSON file
  • Automatic fallback if file is missing
  • Servers grouped by public/private access
  • Each server entry includes name, short_name, url, and public flag

To add new servers, simply edit erddaps.json:

{
  "name": "Your ERDDAP Server",
  "short_name": "YES",
  "url": "https://your-erddap.org/erddap/",
  "public": true
}

Contributing

Contributions welcome! This project demonstrates how to build both local and remote MCP servers. Key areas for improvement:

  • Additional ERDDAP tools and data processing capabilities
  • Enhanced error handling and performance optimization
  • Multi-server load balancing and caching strategies
  • Adding more ERDDAP servers to erddaps.json

License

This project is open source and available under the MIT License.