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)
| Ferramenta | Descrição | Exemplo de Uso |
|---|---|---|
list_servers | Mostra servidores ERDDAP conhecidos em todo o mundo | "Mostre-me os servidores ERDDAP disponíveis" |
search_datasets | Pesquisa conjuntos de dados por palavra-chave | "Encontre conjuntos de dados de temperatura no IOOS ERDDAP" |
get_dataset_info | Obtém metadados detalhados sobre um conjunto de dados | "Fale-me sobre o conjunto de dados jplMURSST41" |
to_pandas | Baixa 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:
- NOAA CoastWatch (https://coastwatch.pfeg.noaa.gov/erddap) - Dados oceanográficos de satélite e in situ
- IOOS ERDDAP (https://erddap.ioos.us/erddap) - Dados do Sistema Integrado de Observação Oceânica
- Marine Institute Ireland (https://erddap.marine.ie/erddap) - Dados marinhos irlandeses
- Ocean Networks Canada (https://data.oceannetworks.ca/erddap) - Dados oceânicos canadenses
- GCOOS ERDDAP (https://gcoos5.geos.tamu.edu/erddap) - Dados do Golfo do México
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 dadosvariables: Lista de variáveis a recuperarconstraints: Dicionário de restrições (ex.: limites de tempo/espaço)
Dicas para Melhores Resultados
- Comece com o local: O servidor local tem configuração mais fácil e não requer proxy
- Use o remoto para compartilhar: O servidor remoto pode ser acessado por vários usuários
- Verifique os metadados primeiro: Use
get_dataset_infoantes de baixar dados - Use restrições: Limite as solicitações de dados para evitar tempos limite
- 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:
- Conexões SSE diretas - O Claude Desktop não suporta isso
- URLs remotas no arquivo de configuração - Funciona apenas para servidores stdio locais
- 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.