MCP HubMCP Hub
datalayer

earthdata-mcp-server

by: datalayer

🌎 Earthdata MCP Server

8created 27/02/2025
Visit
Earthdata
geospatial

πŸ“ŒOverview

Purpose: The Earthdata MCP Server aims to facilitate efficient dataset discovery and retrieval for geospatial analysis using NASA Earth Data.

Overview: This server is an implementation of the Model Context Protocol (MCP) that enables users to interact seamlessly with NASA's vast Earth Data resources. It provides specialized tools for searching datasets and data granules, enhancing analytical capabilities in various research fields.

Key Features:

  • Dataset Search Tool: Allows users to search for datasets on NASA Earthdata, enabling input parameters such as keywords, dataset count, temporal ranges, and bounding boxes to retrieve relevant dataset abstracts quickly.

  • Granule Search Tool: Facilitates the search for specific data granules within a dataset, with options for short name input, dataset count, and temporal or spatial filters, making it easy to locate precise data points for analysis.


πŸͺ ✨ Earthdata MCP Server

Earthdata MCP Server is a Model Context Protocol (MCP) server implementation that provides tools to interact with NASA Earth Data. It enables efficient dataset discovery and retrieval for geospatial analysis.

This MCP server can be used together with tools to search for datasets and data granules on NASA Earthdata, download data in Jupyter, and run further analysis.

Use with Claude Desktop

To use this with Claude Desktop, add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "earthdata": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "datalayer/earthdata-mcp-server:latest"
      ]
    }
  }
}

If you are using Linux, start Claude with the following command:

make claude-linux

Tools

The server offers two tools:

search_earth_datasets

  • Search for datasets on NASA Earthdata.
  • Input:
    • search_keywords (str): Keywords to search for in dataset titles.
    • count (int): Number of datasets to return.
    • temporal (tuple, optional): Temporal range (date_from, date_to).
    • bounding_box (tuple, optional): Bounding box (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat).
  • Returns: List of dataset abstracts.

search_earth_datagranules

  • Search for data granules on NASA Earthdata.
  • Input:
    • short_name (str): Short name of the dataset.
    • count (int): Number of data granules to return.
    • temporal (tuple, optional): Temporal range (date_from, date_to).
    • bounding_box (tuple, optional): Bounding box (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat).
  • Returns: List of data granules.

Prompts

  1. sealevel_rise_dataset

    • Searches datasets related to sea level rise worldwide.
    • Input:
      • start_year (int): Start year to consider.
      • end_year (int): End year to consider.
    • Returns: Prompt correctly formatted.
  2. ask_datasets_format

    • Asks about the format of the datasets.
    • Returns: Prompt correctly formatted.

Building

To build the Docker image:

make build-docker
# or run `docker build -t datalayer/earthdata-mcp-server .`

To pull the prebuilt images:

make pull-docker