Earthdata MCP Server
Interaja com dados terrestres da NASA para descoberta e recuperação eficiente de conjuntos de dados para análise geoespacial.
Documentação
🪐 ✨ Earthdata MCP Server
O Earthdata MCP Server é uma implementação de servidor Model Context Protocol (MCP) que fornece ferramentas para interagir com NASA Earth Data.
Este servidor é intencionalmente exclusivo para Earthdata.
Se você precisar de ferramentas de notebook/runtime, componha este servidor com jupyter-mcp-server usando mcp-compose.
Principais Recursos
- Descoberta de datasets na NASA Earthdata
- Busca de granules com filtros temporais e de bounding box
- Fluxo de download flexível com modos de execução explícitos
Analisando a Elevação do Nível do Mar com Ferramentas Geoespaciais com IA e Jupyter - Assista ao Vídeo
Começando
Instalação local
pip install earthdata-mcp-server
Docker com Claude Desktop
{
"mcpServers": {
"earthdata": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"datalayer/earthdata-mcp-server:latest"
],
"env": {
"EARTHDATA_USERNAME": "your_username",
"EARTHDATA_PASSWORD": "your_password"
}
}
}
}
Rede do host Linux
{
"mcpServers": {
"earthdata": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--network=host",
"datalayer/earthdata-mcp-server:latest"
],
"env": {
"EARTHDATA_USERNAME": "your_username",
"EARTHDATA_PASSWORD": "your_password"
}
}
}
}
Ferramentas
O servidor oferece 3 ferramentas Earthdata.
search_earth_datasets
- Busca por datasets na NASA Earthdata.
- Entrada:
- search_keywords (str): Palavras-chave para buscar nos títulos dos datasets.
- count (int): Número de datasets a retornar.
- temporal (tuple): (Opcional) Intervalo temporal no formato (date_from, date_to).
- bounding_box (tuple): (Opcional) Bounding box no formato (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat).
- Retorna: Lista de resumos dos datasets.
search_earth_datagranules
- Busca por granules de dados na NASA Earthdata.
- Entrada:
- short_name (str): Nome curto do dataset.
- count (int): Número de granules de dados a retornar.
- temporal (tuple): (Opcional) Intervalo temporal no formato (date_from, date_to).
- bounding_box (tuple): (Opcional) Bounding box no formato (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat).
- Retorna: Lista de granules de dados.
download_earth_data_granules
- Busca e opcionalmente baixa granules com modos explícitos.
- Autenticação: Requer credenciais de login da NASA Earthdata (veja guia de autenticação)
- Entrada:
- folder_name (str): Nome da pasta local para salvar os dados.
- short_name (str): Nome curto do dataset da Terra para baixar.
- count (int): Número de granules de dados para baixar.
- temporal (tuple): (Opcional) Intervalo temporal no formato (date_from, date_to).
- bounding_box (tuple): (Opcional) Bounding box no formato (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat).
- mode (str): Um de:
manifest: Retorna apenas metadados dos granules.download: Baixa arquivos diretamente no lado do servidor.script: Retorna código Python para executar em outro lugar.
- max_manifest_items (int): Número máximo de itens retornados no modo
manifest.
Como funciona o download
download_earth_data_granules sempre começa buscando granules com seus filtros e então se comporta com base em mode:
manifest- Retorna uma pré-visualização estruturada (
items) com IDs, títulos e links. - Não grava arquivos.
- Melhor primeiro passo para validar o escopo da consulta.
- Retorna uma pré-visualização estruturada (
download- Autentica com Earthdata usando credenciais de ambiente.
- Baixa granules correspondentes diretamente para
folder_nameno runtime do servidor. - Retorna os caminhos dos arquivos baixados.
script- Retorna código Python executável que realiza a mesma busca + download.
- Melhor opção quando a execução deve ocorrer em um notebook/runtime controlado por outro servidor MCP.
Estratégia de download recomendada
- Use
mode="manifest"primeiro para inspecionar os resultados com segurança. - Use
mode="script"quando quiser execução orientada por notebook viamcp-compose+jupyter-mcp-server. - Use
mode="download"somente quando a gravação de arquivos no lado do servidor for pretendida.
Para um exemplo completo de composição com mcp-compose, veja documentação do fluxo de download.
Prompts
-
download_analyze_global_sea_level- Gera um fluxo de trabalho que começa com
download_earth_data_granulesno modoscript. - Destinado a ser executado em uma pilha composta de notebook/runtime (via
mcp-compose).
- Gera um fluxo de trabalho que começa com
-
sealevel_rise_dataset- Busca por datasets relacionados à elevação do nível do mar em todo o mundo.
- Entrada:
start_year(int): Ano inicial a considerar.end_year(int): Ano final a considerar.
- Retorna: Prompt formatado corretamente.
-
ask_datasets_format- Para perguntar sobre o formato dos datasets.
- Retorna: Prompt formatado corretamente.
Compilação
# or run `docker build -t datalayer/earthdata-mcp-server .`
make build-docker
Se preferir, você pode baixar as imagens pré-construídas.
make pull-docker