ERDDAP MCP Server

by robertdcurrier

Not rated
GitHub

About

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

Details

Author
robertdcurrier
Categories
Database, Other

🚨 CRITICAL: Remote MCP Connection Requirements

Claude Desktop does NOT support direct remote MCP connections!You MUST use themcp-remoteproxy for remote servers.

Claude Desktop (stdio) ↔ mcp-remote proxy ↔ Remote MCP Server (HTTP)

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.

ERDDAP servers may experience severe issues when accessed through VPNs(NordVPN, ExpressVPN, etc.), including:

- 404 errorson valid datasets
- Truncated or incomplete datadownloads
- Connection timeoutsand failed requests

Solution:Disable your VPN before using these tools. ERDDAP servers often block or rate-limit VPN traffic, causing unreliable behavior.

Option 1: Local MCP Server (Recommended for Getting Started)

2. Configure Claude Desktop:Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{ "mcpServers": { "erddap-local": { "command": "python", "args": ["/path/to/erddapy_mcp_server.py"] } } }

Windows Users:Use%APPDATA%\Claude\claude_desktop_config.jsonand double backslashes in paths:

{ "mcpServers": { "erddap-local": { "command": "python", "args": ["C:\\Users\\YourName\\path\\to\\erddapy_mcp_server.py"] } } }

3. Restart Claude Desktop:After updating the configuration, restart Claude Desktop. The server will start automatically and the ERDDAP tools will be available.

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

🚀 Now with dynamic server loading fromerddaps.json- 63+ ERDDAP servers available!

This repository providesboth local and remote MCP server implementations:

📍 Local MCP Server (erddapy_mcp_server.py)

- Traditional stdio-based MCP serverfor local Claude Desktop use
- 4 comprehensive ERDDAP toolsfor data discovery and access
- Easy setupvia claude_desktop_config.json
- No network dependencies- runs completely locally

☁️ Remote MCP Server (erddap_remote_mcp_oauth.py)

- HTTP-based MCP serverfor cloud deployment
- Production-readywith fly.io deployment configuration
- mcp-remote proxy compatiblefor Claude Desktop integration
- Same 4 core toolsoptimized for remote performance

🚨 CRITICAL: Remote MCP Connection Requirements

Claude Desktop does NOT support direct remote MCP connections!You MUST use themcp-remoteproxy for remote servers.

Claude Desktop (stdio) ↔ mcp-remote proxy ↔ Remote MCP Server (HTTP)

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.

ERDDAP servers may experience severe issues when accessed through VPNs(NordVPN, ExpressVPN, etc.), including:

- 404 errorson valid datasets
- Truncated or incomplete datadownloads
- Connection timeoutsand failed requests

Solution:Disable your VPN before using these tools. ERDDAP servers often block or rate-limit VPN traffic, causing unreliable behavior.

Option 1: Local MCP Server (Recommended for Getting Started)

2. Configure Claude Desktop:Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{ "mcpServers": { "erddap-local": { "command": "python", "args": ["/path/to/erddapy_mcp_server.py"] } } }

Windows Users:Use%APPDATA%\Claude\claude_desktop_config.jsonand double backslashes in paths:

{ "mcpServers": { "erddap-local": { "command": "python", "args": ["C:\\Users\\YourName\\path\\to\\erddapy_mcp_server.py"] } } }

3. Restart Claude Desktop:After updating the configuration, restart Claude Desktop. The server will start automatically and the ERDDAP tools will be available.

Option 2: Remote MCP Server (Access the Cloud Instance)

{ "mcpServers": { "erddap-remote": { "command": "npx", "args": ["mcp-remote", "https://erddap2mcp.fly.dev/"] } } }

3. Restart Claude Desktop:The remote server will be accessible through the mcp-remote proxy.

You:"Show me available ERDDAP servers"

Claude:Here are some well-known ERDDAP servers you can access:

- NOAA CoastWatch(https://coastwatch.pfeg.noaa.gov/erddap) - Satellite and in-situ oceanographic data
- IOOS ERDDAP(
https://erddap.ioos.us/erddap) - Integrated Ocean Observing System data
- Marine Institute Ireland(
https://erddap.marine.ie/erddap) - Irish marine data
- Ocean Networks Canada(
https://data.oceannetworks.ca/erddap) - Canadian ocean data
- GCOOS ERDDAP(
https://gcoos5.geos.tamu.edu/erddap) - Gulf of Mexico data

You:"Search for glider datasets on GCOOS ERDDAP"

Claude:I found 26 glider datasets on the GCOOS ERDDAP server. Here are some examples:

- Stommel-20200813T1200: Ocean glider deployment
- usf-sam-20210331T0000: University of South Florida glider
- mote-dora-20210318T1200: Mote Marine Laboratory glider

These datasets contain oceanographic measurements collected by autonomous underwater gliders.

You:"Get information about the dataset mote-dora-20210318T1200"

Claude:This dataset contains oceanographic measurements from a Mote Marine Laboratory glider deployment:

Time Coverage: March 18, 2021 - April 15, 2021
Variables: Temperature, salinity, density, dissolved oxygen, chlorophyll
Location: Eastern Gulf of Mexico coastal waters

- 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

- 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

This section is for developers who want to deploy their own instance of the remote server.

The remote server is configured for one-command deployment to fly.io:

# Deploy from the erddap2mcp directory fly deploy
app = 'erddap2mcp' primary_region = 'mia' [http_service] internal_port = 8000 force_https = true auto_stop_machines = 'stop' auto_start_machines = true [[vm]] memory = '1gb' cpu_kind = 'shared' cpus = 1

- ✅Automatic HTTPS- SSL certificates managed automatically
- ✅Auto-scaling- Machines start/stop based on traffic
- ✅Global CDN- Fast access worldwide
- ✅Zero-downtime deploys- Seamless updates

# Build container docker build -t erddap-mcp-server . # Run locally docker run -p 8000:8000 erddap-mcp-server # Deploy to other platforms: # - AWS Lambda (requires HTTPS setup) # - Railway/Render (usually provide HTTPS automatically) # - Google Cloud Run # - Azure Container Instances

After configuring Claude Desktop, restart it and check if the ERDDAP tools appear in the tools list.

# Test the server directly (for debugging) python erddapy_mcp_server.py # Send test commands: echo '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}' | python erddapy_mcp_server.py
# Test basic connectivity curl http://localhost:8000/ # Test MCP protocol curl -X POST http://localhost:8000/ \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}' # Test with mcp-remote proxy npx mcp-remote http://localhost:8000/ --test

You can run both local and remote servers simultaneously:

{ "mcpServers": { "erddap-local": { "command": "python", "args": ["/Users/rdc/src/mcp/erddap2mcp/erddapy_mcp_server.py"] }, "erddap-remote": { "command": "npx", "args": ["mcp-remote", "https://erddap2mcp.fly.dev/"] } } }

This gives you the full local toolset plus cloud accessibility!

- 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)
- Start with local: Local server has easier setup and no proxy requirement
- Use remote for sharing: Remote server can be accessed by multiple users
- Check metadata first: Useget_dataset_infobefore downloading data
- Use constraints: Limit data requests to avoid timeouts
- Choose correct protocol: tabledap for tabular, griddap for gridded data

- "No such file": Check Python path in configuration
- "Connection failed": Verify server is running
- Tool errors: Check stderr for debug output

- "No tools available": Ensure mcp-remote proxy is installed (npm install -g mcp-remote)
- "Connection failed": Verify server URL is accessible and uses HTTPS
- Protocol errors: Check server logs withfly logs -a erddap2mcp

- Timeouts: Reduce spatial/temporal extent of requests
- Protocol errors: Specify correct protocol (tabledap vs griddap)
- Server unavailable: Some ERDDAP servers may be temporarily down

This remote implementation represents months of debugging the Remote MCP mystery:
- Direct SSE connections- Claude Desktop doesn't support this
- Config file remote URLs- Only works for local stdio servers
- Connector UI attempts- Also doesn't support direct connections

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

- ERDDAPwas developed by Bob Simons at NOAA's Environmental Research Division. Learn more at theERDDAP website.
- erddapyis the official Python client for ERDDAP, developed by
Filipe Fernandesand the IOOS community. Visit theerddapy documentation.
- mcp-remoteproxy enables remote MCP connections to Claude Desktop

- 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

ERDDAP servers are now loaded dynamically fromerddaps.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 editerddaps.json:

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

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

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

Slingshot MCP introduces Slingshot Aerospace’s space data platform in your AI chat—explore satellites, orbits, and Portal insights through Slingshot’s hosted server.

Access data on 261 countries and 13.4 million cities — population, GDP, geography, rankings, and comparisons. Built for Claude, Cursor, and AI agents.

A modular server providing unified access to multiple astronomical datasets, including astroquery services and DESI data sources.

A nutrition analysis platform integrating Canada's Food Guide recipes with Health Canada's official nutrition databases.

Interact with the Hugging Face Dataset Viewer API to browse, filter, and get statistics for datasets.

A modular server providing tools for country and state lookups, usable as a CLI or plug-in agent.

Talk to the real world with Factori MCP - ask about people, places, movement and markets, in just plain English.We built the first MCP server for real-world data, so any AI agent can now query the physical world the way it queries the internet.

A Centralized MCP Server for Fetching Data from Many Countries' Govs

Provides seamless access to particle physics data from the Particle Data Group (PDG) for AI assistants and applications.

Access the Protein Data Bank (PDB) for 3D structures of proteins and nucleic acids, with tools for structural analysis and comparison.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.