NASA Earthdata

Integrates with
Earthaccess, NASA CMR

Model Context Protocol (MCP) for NASA Earthdata Search (CMR)

This module is a model context protocol (MCP) for NASA's earthdata common metedata repository (CMR). The goal of this MCP server is to integrate AI retrievals with NASA Catalog of datasets by way of Earthaccess.

Dependencies

uv - a rust based python package manager a LLM client, such as Claude desktop or chatGPT desktop (for consuming the MCP)

Install and Run

Clone the repository to your local environment, or where your LLM client is running.

git clone https://github.com/podaac/cmr-mcp.git
cd cmr-mcp

Install uv

curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate

Install packages with uv

uv sync

use the outputs of which uv (UV_LIB) and PWD (CMR_MCP_INSTALL) to update the following configuration.

Adding to AI Framework

In this example we'll use Claude desktop.

Update the claude_desktop_config.json file (sometimes this must be created). On a mac, this is often found in ~/Library/Application\ Support/Claude/claude_desktop_config.json

Add the following configuration, filling in the values of UV_LIB and CMR_MCP_INSTALL - don't use environment variables here.

{
    "mcpServers": {
        "cmr": {
            "command": "$UV_LIB$",
            "args": [
                "--directory",
                "$CMR_MCP_INSTALL$",
                "run",
                "cmr-search.py"
            ]
        }
    }
}

Use the MCP Server

Simply prompt your agent to search cmr for... data. Below is a simple example of this in action.

Claude MCP usage

Other prompts that can work:

  1. Search CMR for datasets from 2024 to 2025
  2. Search CMR for PO.DAAC datasets from 2020 to 2024 with keyword Climate