earthdata-mcp-server
by: datalayer
π Earthdata MCP Server
π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
-
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.
-
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