ERDDAP MCP Server

Acesse servidores ERDDAP em todo o mundo para pesquisar, descobrir e recuperar conjuntos de dados científicos oceanográficos e ambientais.

Documentação

Servidores MCP ERDDAP - Local e Remoto

Acesse dados oceanográficos e ambientais de servidores ERDDAP em todo o mundo através do Claude Desktop usando duas implementações MCP completas: stdio local e HTTP remoto.

🚀 Agora com carregamento dinâmico de servidores a partir de erddaps.json - mais de 63 servidores ERDDAP disponíveis!

🌊 Dois Servidores, Todas as Possibilidades

Este repositório fornece implementações de servidor MCP locais e remotas:

📍 Servidor MCP Local (erddapy_mcp_server.py)

  • Servidor MCP tradicional baseado em stdio para uso local com Claude Desktop
  • 4 ferramentas ERDDAP abrangentes para descoberta e acesso a dados
  • Configuração fácil via claude_desktop_config.json
  • Sem dependências de rede - executa completamente localmente

☁️ Servidor MCP Remoto (erddap_remote_mcp_oauth.py)

  • Servidor MCP baseado em HTTP para implantação em nuvem
  • Pronto para produção com configuração de implantação fly.io
  • Compatível com proxy mcp-remote para integração com Claude Desktop
  • As mesmas 4 ferramentas principais otimizadas para desempenho remoto

🚨 CRÍTICO: Requisitos de Conexão MCP Remota

O Claude Desktop NÃO suporta conexões MCP remotas diretas! Você DEVE usar o proxy mcp-remote para servidores remotos.

A Arquitetura Secreta:

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

O que é ERDDAP?

ERDDAP (Programa de Acesso a Dados da Divisão de Pesquisa Ambiental) é um servidor de dados que fornece acesso simples e consistente a conjuntos de dados científicos em formatos de arquivo comuns. Esses servidores MCP tornam os poderosos dados oceanográficos do ERDDAP acessíveis a assistentes de IA por meio de consultas em linguagem natural.

Início Rápido

⚠️ IMPORTANTE: Desative a VPN Antes de Usar

Os servidores ERDDAP podem apresentar problemas graves quando acessados através de VPNs (NordVPN, ExpressVPN, etc.), incluindo:

  • Erros 404 em conjuntos de dados válidos
  • Downloads de dados truncados ou incompletos
  • Tempos limite de conexão e solicitações com falha

Solução: Desative sua VPN antes de usar essas ferramentas. Os servidores ERDDAP frequentemente bloqueiam ou limitam o tráfego de VPN, causando comportamento não confiável.

Opção 1: Servidor MCP Local (Recomendado para Começar)

1. Instale as Dependências:

pip install erddapy mcp pandas

2. Configure o Claude Desktop: Adicione à configuração do seu Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

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

Usuários Windows: Use %APPDATA%\Claude\claude_desktop_config.json e barras invertidas duplas nos caminhos:

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

3. Reinicie o Claude Desktop: Após atualizar a configuração, reinicie o Claude Desktop. O servidor iniciará automaticamente e as ferramentas ERDDAP estarão disponíveis.

Opção 2: Servidor MCP Remoto (Acesse a Instância na Nuvem)

1. Instale o proxy mcp-remote:

npm install -g mcp-remote

2. Configure o Claude Desktop:

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

3. Reinicie o Claude Desktop: O servidor remoto estará acessível através do proxy mcp-remote.

Ferramentas Disponíveis

Ferramentas Disponíveis (Ambos os Servidores)

FerramentaDescriçãoExemplo de Uso
list_serversMostra servidores ERDDAP conhecidos em todo o mundo"Mostre-me os servidores ERDDAP disponíveis"
search_datasetsPesquisa conjuntos de dados por palavra-chave"Encontre conjuntos de dados de temperatura no IOOS ERDDAP"
get_dataset_infoObtém metadados detalhados sobre um conjunto de dados"Fale-me sobre o conjunto de dados jplMURSST41"
to_pandasBaixa e visualiza dados"Mostre-me dados de temperatura de janeiro de 2024"

Exemplos de Uso

Listar Servidores ERDDAP Disponíveis

Você: "Mostre-me os servidores ERDDAP disponíveis"

Claude: Aqui estão alguns servidores ERDDAP conhecidos que você pode acessar:

Pesquisar Conjuntos de Dados

Você: "Pesquise conjuntos de dados de planadores no GCOOS ERDDAP"

Claude: Encontrei 26 conjuntos de dados de planadores no servidor GCOOS ERDDAP. Aqui estão alguns exemplos:

  • Stommel-20200813T1200: Implantação de planador oceânico
  • usf-sam-20210331T0000: Planador da Universidade do Sul da Flórida
  • mote-dora-20210318T1200: Planador do Mote Marine Laboratory

Esses conjuntos de dados contêm medições oceanográficas coletadas por planadores subaquáticos autônomos.

Analisar Dados

Você: "Obtenha informações sobre o conjunto de dados mote-dora-20210318T1200"

Claude: Este conjunto de dados contém medições oceanográficas de uma implantação de planador do Mote Marine Laboratory:

Cobertura Temporal: 18 de março de 2021 - 15 de abril de 2021
Variáveis: Temperatura, salinidade, densidade, oxigênio dissolvido, clorofila
Localização: Águas costeiras do leste do Golfo do México

Comparação de Arquitetura

Servidor Local

  • Comunicação: stdio (entrada/saída padrão)
  • Implantação: Executa na sua máquina local
  • Ferramentas: 4 ferramentas abrangentes de acesso a dados
  • Configuração: Uma única entrada no arquivo de configuração
  • Dependências: Python + biblioteca MCP

Servidor Remoto

  • Comunicação: HTTP com JSON-RPC 2.0
  • Implantação: Plataformas de nuvem (fly.io, AWS, etc.)
  • Ferramentas: As mesmas 4 ferramentas de acesso a dados
  • Configuração: Requer proxy mcp-remote
  • Dependências: FastAPI + Docker + HTTPS

Para Desenvolvedores: Implantação na Nuvem

Esta seção é para desenvolvedores que desejam implantar sua própria instância do servidor remoto.

Implantação no fly.io (Recomendado)

O servidor remoto está configurado para implantação com um único comando no fly.io:

# Deploy from the erddap2mcp directory
fly deploy

Configuração do 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

Principais Recursos:

  • HTTPS automático - Certificados SSL gerenciados automaticamente
  • Auto-escala - Máquinas iniciam/param com base no tráfego
  • CDN global - Acesso rápido em todo o mundo
  • Implantações sem tempo de inatividade - Atualizações contínuas

Implantação em Contêiner (Outras 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

Testando Sua Configuração

Para Usuários: Verifique a Instalação

Após configurar o Claude Desktop, reinicie-o e verifique se as ferramentas ERDDAP aparecem na lista de ferramentas.

Para Desenvolvedores: Testes Manuais

Testar 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

Testar 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

Exemplos de Configuração

Ambos os Servidores Juntos

Você pode executar servidores locais e remotos simultaneamente:

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

Isso oferece o conjunto completo de ferramentas locais mais a acessibilidade na nuvem!

Parâmetros Comuns das Ferramentas

Ambos os servidores aceitam estes parâmetros:

  • server_url: URL do servidor ERDDAP (padrão: NOAA CoastWatch)
  • protocol: "tabledap" (dados tabulares) ou "griddap" (dados em grade)
  • dataset_id: O identificador do conjunto de dados
  • variables: Lista de variáveis a recuperar
  • constraints: Dicionário de restrições (ex.: limites de tempo/espaço)

Dicas para Melhores Resultados

  1. Comece com o local: O servidor local tem configuração mais fácil e não requer proxy
  2. Use o remoto para compartilhar: O servidor remoto pode ser acessado por vários usuários
  3. Verifique os metadados primeiro: Use get_dataset_info antes de baixar dados
  4. Use restrições: Limite as solicitações de dados para evitar tempos limite
  5. Escolha o protocolo correto: tabledap para dados tabulares, griddap para dados em grade

Solução de Problemas

Problemas com o Servidor Local

  • "Arquivo não encontrado": Verifique o caminho do Python na configuração
  • "Falha na conexão": Verifique se o servidor está em execução
  • Erros de ferramenta: Verifique o stderr para saída de depuração

Problemas com o Servidor Remoto

  • "Nenhuma ferramenta disponível": Certifique-se de que o proxy mcp-remote está instalado (npm install -g mcp-remote)
  • "Falha na conexão": Verifique se a URL do servidor está acessível e usa HTTPS
  • Erros de protocolo: Verifique os logs do servidor com fly logs -a erddap2mcp

Problemas Gerais com ERDDAP

  • Tempos limite: Reduza a extensão espacial/temporal das solicitações
  • Erros de protocolo: Especifique o protocolo correto (tabledap vs griddap)
  • Servidor indisponível: Alguns servidores ERDDAP podem estar temporariamente fora do ar

A Jornada de Descoberta do MCP Remoto

Esta implementação remota representa meses de depuração do mistério do MCP Remoto:

Abordagens que Falharam:

  1. Conexões SSE diretas - O Claude Desktop não suporta isso
  2. URLs remotas no arquivo de configuração - Funciona apenas para servidores stdio locais
  3. Tentativas com a interface do conector - Também não suporta conexões diretas

O Avanço:

O requisito do proxy mcp-remote estava enterrado na documentação de terceiros. Esta peça crítica permite que o Claude Desktop se comunique com servidores MCP remotos via HTTP.

Créditos

  • ERDDAP foi desenvolvido por Bob Simons na Divisão de Pesquisa Ambiental da NOAA. Saiba mais no site do ERDDAP.
  • erddapy é o cliente Python oficial para ERDDAP, desenvolvido por Filipe Fernandes e a comunidade IOOS. Visite a documentação do erddapy.
  • mcp-remote proxy permite conexões MCP remotas ao Claude Desktop

Casos de Uso Comuns

  • Pesquisa Climática: Acesse dados históricos de temperatura, salinidade e correntes
  • Biologia Marinha: Encontre concentrações de clorofila e dados de cor do oceano
  • Gestão Costeira: Monitore nível do mar, altura de ondas e condições costeiras
  • Pesca: Acesse dados ambientais para gestão pesqueira
  • Educação: Explore dados oceanográficos reais para ensino e aprendizado

Gerenciamento da Lista de Servidores

Os servidores ERDDAP agora são carregados dinamicamente a partir de erddaps.json:

  • 63 servidores ERDDAP pré-configurados (cobertura mundial)
  • Fácil adicionar/remover servidores editando o arquivo JSON
  • Fallback automático se o arquivo estiver ausente
  • Servidores agrupados por acesso público/privado
  • Cada entrada de servidor inclui nome, nome curto, URL e sinalizador público

Para adicionar novos servidores, basta editar erddaps.json:

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

Contribuindo

Contribuições são bem-vindas! Este projeto demonstra como construir servidores MCP locais e remotos. Principais áreas para melhoria:

  • Ferramentas ERDDAP adicionais e capacidades de processamento de dados
  • Tratamento de erros aprimorado e otimização de desempenho
  • Balanceamento de carga multi-servidor e estratégias de cache
  • Adicionar mais servidores ERDDAP ao erddaps.json

Licença

Este projeto é open source e está disponível sob a Licença MIT.