Access ERDDAP servers worldwide to search, discover, and retrieve oceanographic and environmental scientific datasets.
Access oceanographic and environmental data from ERDDAP servers worldwide through Claude Desktop via two complete MCP implementations: local stdio and remote HTTP.
This repository provides both local and remote MCP server implementations:
erddapy_mcp_server.py
)erddap_remote_mcp_oauth.py
)Claude Desktop does NOT support direct remote MCP connections! You MUST use the mcp-remote
proxy 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.
1. Install Dependencies:
pip install erddapy mcp pandas
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.json
and 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.
1. Install mcp-remote proxy:
npm install -g mcp-remote
2. Configure Claude Desktop:
{
"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.
Tool | Description | Example Use |
---|---|---|
list_servers | Show well-known ERDDAP servers worldwide | "Show me available ERDDAP servers" |
search_datasets | Search for datasets by keyword | "Find temperature datasets on IOOS ERDDAP" |
get_dataset_info | Get detailed metadata about a dataset | "Tell me about dataset jplMURSST41" |
to_pandas | Download and preview data | "Show me temperature data from January 2024" |
You: "Show me available ERDDAP servers"
Claude: Here are some well-known ERDDAP servers you can access:
You: "Search for glider datasets on GCOOS ERDDAP"
Claude: I found 26 glider datasets on the GCOOS ERDDAP server. Here are some examples:
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
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
fly.toml Configuration:
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
Key Features:
# 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!
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 identifiervariables
: List of variables to retrieveconstraints
: Dictionary of constraints (e.g., time/space bounds)get_dataset_info
before downloading datanpm install -g mcp-remote
)fly logs -a erddap2mcp
This remote implementation represents months of debugging the Remote MCP mystery:
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.
Contributions welcome! This project demonstrates how to build both local and remote MCP servers. Key areas for improvement:
This project is open source and available under the MIT License.
Access the OSV (Open Source Vulnerabilities) database for vulnerability information. Query vulnerabilities by package version or commit, batch query multiple packages, and get detailed vulnerability information by ID.
Provides real-time financial data using the Tushare API.
Access the UniProt protein database with specialized bioinformatics tools for protein research, comparative genomics, and structural biology.
Interact with CrateDB using natural language for Text-to-SQL queries and documentation retrieval.
Interact with and manage MySQL databases. Requires connection details configured via environment variables.
Access comprehensive B2B data on companies, employees, and job postings for your LLMs and AI workflows.
Interact with the Neon serverless Postgres platform
Official MCP server for dbt (data build tool) providing integration with dbt Core/Cloud CLI, project metadata discovery, model information, and semantic layer querying capabilities.
An MCP server for read-only interaction with the Nimiq blockchain.
An Elasticsearch server focused on security and threat analysis. Requires a valid Elasticsearch license (trial, platinum, or enterprise) for connection.