ERDDAP MCP Server

Accede a servidores ERDDAP en todo el mundo para buscar, descubrir y recuperar conjuntos de datos científicos oceanográficos y ambientales.

Documentación

Servidores MCP de ERDDAP - Local y Remoto

Accede a datos oceanográficos y ambientales de servidores ERDDAP de todo el mundo a través de Claude Desktop mediante dos implementaciones MCP completas: stdio local y HTTP remoto.

🚀 Ahora con carga dinámica de servidores desde erddaps.json - ¡63+ servidores ERDDAP disponibles!

🌊 Dos Servidores, Todas las Posibilidades

Este repositorio proporciona implementaciones de servidores MCP tanto locales como remotas:

📍 Servidor MCP Local (erddapy_mcp_server.py)

  • Servidor MCP tradicional basado en stdio para uso local con Claude Desktop
  • 4 herramientas ERDDAP completas para descubrimiento y acceso a datos
  • Configuración sencilla mediante claude_desktop_config.json
  • Sin dependencias de red - se ejecuta completamente en local

☁️ Servidor MCP Remoto (erddap_remote_mcp_oauth.py)

  • Servidor MCP basado en HTTP para despliegue en la nube
  • Listo para producción con configuración de despliegue en fly.io
  • Compatible con proxy mcp-remote para integración con Claude Desktop
  • Las mismas 4 herramientas principales optimizadas para rendimiento remoto

🚨 CRÍTICO: Requisitos de Conexión MCP Remota

¡Claude Desktop NO admite conexiones MCP remotas directas! DEBES usar el proxy mcp-remote para servidores remotos.

La Arquitectura Secreta:

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

¿Qué es ERDDAP?

ERDDAP (Programa de Acceso a Datos de la División de Investigación Ambiental) es un servidor de datos que proporciona acceso simple y consistente a conjuntos de datos científicos en formatos de archivo comunes. Estos servidores MCP hacen que los potentes datos oceanográficos de ERDDAP sean accesibles para asistentes de IA mediante consultas en lenguaje natural.

Inicio Rápido

⚠️ IMPORTANTE: Desactiva la VPN Antes de Usar

Los servidores ERDDAP pueden experimentar problemas graves cuando se accede a través de VPNs (NordVPN, ExpressVPN, etc.), incluyendo:

  • Errores 404 en conjuntos de datos válidos
  • Descargas de datos truncadas o incompletas
  • Tiempos de espera de conexión y solicitudes fallidas

Solución: Desactiva tu VPN antes de usar estas herramientas. Los servidores ERDDAP a menudo bloquean o limitan el tráfico VPN, causando un comportamiento poco fiable.

Opción 1: Servidor MCP Local (Recomendado para Empezar)

1. Instalar Dependencias:

pip install erddapy mcp pandas

2. Configurar Claude Desktop: Añade a tu configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

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

Usuarios de Windows: Usa %APPDATA%\Claude\claude_desktop_config.json y dobles barras invertidas en las rutas:

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

3. Reiniciar Claude Desktop: Después de actualizar la configuración, reinicia Claude Desktop. El servidor se iniciará automáticamente y las herramientas ERDDAP estarán disponibles.

Opción 2: Servidor MCP Remoto (Accede a la Instancia en la Nube)

1. Instalar el proxy mcp-remote:

npm install -g mcp-remote

2. Configurar Claude Desktop:

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

3. Reiniciar Claude Desktop: El servidor remoto será accesible a través del proxy mcp-remote.

Herramientas Disponibles

Herramientas Disponibles (Ambos Servidores)

HerramientaDescripciónEjemplo de Uso
list_serversMostrar servidores ERDDAP conocidos en todo el mundo"Muéstrame los servidores ERDDAP disponibles"
search_datasetsBuscar conjuntos de datos por palabra clave"Encuentra conjuntos de datos de temperatura en IOOS ERDDAP"
get_dataset_infoObtener metadatos detallados sobre un conjunto de datos"Cuéntame sobre el conjunto de datos jplMURSST41"
to_pandasDescargar y previsualizar datos"Muéstrame datos de temperatura de enero de 2024"

Ejemplos de Uso

Listar Servidores ERDDAP Disponibles

Tú: "Muéstrame los servidores ERDDAP disponibles"

Claude: Aquí hay algunos servidores ERDDAP conocidos a los que puedes acceder:

Buscar Conjuntos de Datos

Tú: "Busca conjuntos de datos de planeadores en GCOOS ERDDAP"

Claude: Encontré 26 conjuntos de datos de planeadores en el servidor GCOOS ERDDAP. Aquí hay algunos ejemplos:

  • Stommel-20200813T1200: Despliegue de planeador oceánico
  • usf-sam-20210331T0000: Planeador de la Universidad del Sur de Florida
  • mote-dora-20210318T1200: Planeador del Laboratorio Marino Mote

Estos conjuntos de datos contienen mediciones oceanográficas recopiladas por planeadores submarinos autónomos.

Analizar Datos

Tú: "Obtén información sobre el conjunto de datos mote-dora-20210318T1200"

Claude: Este conjunto de datos contiene mediciones oceanográficas de un despliegue de planeador del Laboratorio Marino Mote:

Cobertura Temporal: 18 de marzo de 2021 - 15 de abril de 2021
Variables: Temperatura, salinidad, densidad, oxígeno disuelto, clorofila
Ubicación: Aguas costeras del este del Golfo de México

Comparación de Arquitecturas

Servidor Local

  • Comunicación: stdio (entrada/salida estándar)
  • Despliegue: Se ejecuta en tu máquina local
  • Herramientas: 4 herramientas completas de acceso a datos
  • Configuración: Una sola entrada en el archivo de configuración
  • Dependencias: Python + biblioteca MCP

Servidor Remoto

  • Comunicación: HTTP con JSON-RPC 2.0
  • Despliegue: Plataformas en la nube (fly.io, AWS, etc.)
  • Herramientas: Las mismas 4 herramientas de acceso a datos
  • Configuración: Requiere proxy mcp-remote
  • Dependencias: FastAPI + Docker + HTTPS

Para Desarrolladores: Despliegue en la Nube

Esta sección es para desarrolladores que quieran desplegar su propia instancia del servidor remoto.

Despliegue en fly.io (Recomendado)

El servidor remoto está configurado para despliegue con un solo comando en fly.io:

# Deploy from the erddap2mcp directory
fly deploy

Configuración de fly.toml:

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

Características Clave:

  • ✅ HTTPS automático - Certificados SSL gestionados automáticamente
  • ✅ Auto-escalado - Las máquinas se inician/detienen según el tráfico
  • ✅ CDN global - Acceso rápido en todo el mundo
  • ✅ Despliegues sin tiempo de inactividad - Actualizaciones sin interrupciones

Despliegue en Contenedores (Otras Plataformas)

# 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

Probando tu Configuración

Para Usuarios: Verificar la Instalación

Después de configurar Claude Desktop, reinícialo y comprueba si las herramientas ERDDAP aparecen en la lista de herramientas.

Para Desarrolladores: Pruebas Manuales

Probar el Servidor Local

# 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

Probar el Servidor Remoto

# 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

Ejemplos de Configuración

Ambos Servidores Juntos

Puedes ejecutar tanto el servidor local como el remoto simultáneamente:

{
  "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/"]
    }
  }
}

¡Esto te da el conjunto completo de herramientas local más la accesibilidad en la nube!

Parámetros Comunes de las Herramientas

Ambos servidores aceptan estos parámetros:

  • server_url: URL del servidor ERDDAP (por defecto NOAA CoastWatch)
  • protocol: "tabledap" (datos tabulares) o "griddap" (datos en cuadrícula)
  • dataset_id: El identificador del conjunto de datos
  • variables: Lista de variables a recuperar
  • constraints: Diccionario de restricciones (ej., límites de tiempo/espacio)

Consejos para Mejores Resultados

  1. Empieza con local: El servidor local tiene una configuración más fácil y no requiere proxy
  2. Usa remoto para compartir: El servidor remoto puede ser accedido por múltiples usuarios
  3. Revisa los metadatos primero: Usa get_dataset_info antes de descargar datos
  4. Usa restricciones: Limita las solicitudes de datos para evitar tiempos de espera
  5. Elige el protocolo correcto: tabledap para datos tabulares, griddap para datos en cuadrícula

Solución de Problemas

Problemas del Servidor Local

  • "No such file": Comprueba la ruta de Python en la configuración
  • "Connection failed": Verifica que el servidor esté ejecutándose
  • Errores de herramientas: Revisa stderr para ver la salida de depuración

Problemas del Servidor Remoto

  • "No tools available": Asegúrate de que el proxy mcp-remote esté instalado (npm install -g mcp-remote)
  • "Connection failed": Verifica que la URL del servidor sea accesible y use HTTPS
  • Errores de protocolo: Revisa los registros del servidor con fly logs -a erddap2mcp

Problemas Generales de ERDDAP

  • Tiempos de espera: Reduce la extensión espacial/temporal de las solicitudes
  • Errores de protocolo: Especifica el protocolo correcto (tabledap vs griddap)
  • Servidor no disponible: Algunos servidores ERDDAP pueden estar temporalmente caídos

El Viaje del Descubrimiento del MCP Remoto

Esta implementación remota representa meses de depuración del misterio del MCP Remoto:

Enfoques Fallidos:

  1. Conexiones SSE directas - Claude Desktop no admite esto
  2. URLs remotas en archivos de configuración - Solo funciona para servidores stdio locales
  3. Intentos con la interfaz del conector - Tampoco admite conexiones directas

El Avance:

El requisito del proxy mcp-remote estaba enterrado en documentación de terceros. Esta pieza crítica permite que Claude Desktop se comunique con servidores MCP remotos a través de HTTP.

Créditos

  • ERDDAP fue desarrollado por Bob Simons en la División de Investigación Ambiental de NOAA. Aprende más en el sitio web de ERDDAP.
  • erddapy es el cliente oficial de Python para ERDDAP, desarrollado por Filipe Fernandes y la comunidad IOOS. Visita la documentación de erddapy.
  • mcp-remote proxy permite conexiones MCP remotas a Claude Desktop

Casos de Uso Comunes

  • Investigación Climática: Accede a datos históricos de temperatura, salinidad y corrientes
  • Biología Marina: Encuentra concentraciones de clorofila y datos de color del océano
  • Gestión Costera: Monitorea el nivel del mar, la altura de las olas y las condiciones costeras
  • Pesca: Accede a datos ambientales para la gestión pesquera
  • Educación: Explora datos oceanográficos reales para enseñar y aprender

Gestión de la Lista de Servidores

Los servidores ERDDAP ahora se cargan dinámicamente desde erddaps.json:

  • 63 servidores ERDDAP preconfigurados (cobertura mundial)
  • Fácil añadir/eliminar servidores editando el archivo JSON
  • Respaldo automático si el archivo falta
  • Servidores agrupados por acceso público/privado
  • Cada entrada de servidor incluye nombre, nombre_corto, url y bandera pública

Para añadir nuevos servidores, simplemente edita erddaps.json:

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

Contribuciones

¡Las contribuciones son bienvenidas! Este proyecto demuestra cómo construir servidores MCP tanto locales como remotos. Áreas clave para mejorar:

  • Herramientas ERDDAP adicionales y capacidades de procesamiento de datos
  • Mejor manejo de errores y optimización del rendimiento
  • Estrategias de equilibrio de carga y caché multi-servidor
  • Añadir más servidores ERDDAP a erddaps.json

Licencia

Este proyecto es de código abierto y está disponible bajo la Licencia MIT.