Earthdata

🌎 🔧 Earthdata MCP Server.
  • python

23

GitHub Stars

python

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "datalayer-earthdata-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DOCUMENT_URL",
        "-e",
        "DOCUMENT_TOKEN",
        "-e",
        "DOCUMENT_ID",
        "-e",
        "RUNTIME_URL",
        "-e",
        "RUNTIME_TOKEN",
        "--network=host",
        "datalayer/earthdata-mcp-server:latest"
      ],
      "env": {
        "DOCUMENT_ID": "notebook.ipynb",
        "RUNTIME_URL": "http://localhost:8888",
        "DOCUMENT_URL": "http://localhost:8888",
        "RUNTIME_TOKEN": "MY_TOKEN",
        "DOCUMENT_TOKEN": "MY_TOKEN",
        "EARTHDATA_PASSWORD": "your_password",
        "EARTHDATA_USERNAME": "your_username"
      }
    }
  }
}

Earthdata MCP Server provides an MCP interface that links NASA Earthdata search and data retrieval with Jupyter notebook analysis. You can discover datasets, fetch granules, and work with them directly in notebooks through a unified server, using a local or remote MCP client.

How to use

Connect to the Earthdata MCP Server from your MCP client using the standard stdio runtime configuration. This server runs as a Docker process and exposes environment variables you set to authenticate with Earthdata and to point to your Jupyter notebook session. You can perform searches for datasets and granules, then download data into your notebook workflow for analysis.

The following configuration shows a complete stdio setup using Docker. It defines the command, arguments, and environment variables you need to start the server. Use these values as a starting point and customize the environment variables to match your local setup.

{
  "mcpServers": {
    "earthdata": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DOCUMENT_URL",
        "-e",
        "DOCUMENT_TOKEN",
        "-e",
        "DOCUMENT_ID",
        "-e",
        "RUNTIME_URL",
        "-e",
        "RUNTIME_TOKEN",
        "--network=host",
        "datalayer/earthdata-mcp-server:latest"
      ],
      "env": {
        "DOCUMENT_URL": "http://localhost:8888",
        "DOCUMENT_TOKEN": "MY_TOKEN",
        "DOCUMENT_ID": "notebook.ipynb",
        "RUNTIME_URL": "http://localhost:8888",
        "RUNTIME_TOKEN": "MY_TOKEN",
        "EARTHDATA_USERNAME": "your_username",
        "EARTHDATA_PASSWORD": "your_password"
      }
    }
  }
}

How to install

Prerequisites depend on how you choose to run the MCP server. You can use Docker to run the Earthdata MCP Server, which avoids installing Python packages directly on your host. If you prefer a local Python environment, ensure you have Python and pip available.

Steps to start using the Docker-based configuration shown here:

# Ensure Docker is installed and running on your machine
# Create or edit your MCP config with the earthdata entry
cat > mcp_config.json << 'JSON'
{
  "mcpServers": {
    "earthdata": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "DOCUMENT_URL",
        "-e",
        "DOCUMENT_TOKEN",
        "-e",
        "DOCUMENT_ID",
        "-e",
        "RUNTIME_URL",
        "-e",
        "RUNTIME_TOKEN",
        "--network=host",
        "datalayer/earthdata-mcp-server:latest"
      ],
      "env": {
        "DOCUMENT_URL": "http://localhost:8888",
        "DOCUMENT_TOKEN": "MY_TOKEN",
        "DOCUMENT_ID": "notebook.ipynb",
        "RUNTIME_URL": "http://localhost:8888",
        "RUNTIME_TOKEN": "MY_TOKEN",
        "EARTHDATA_USERNAME": "your_username",
        "EARTHDATA_PASSWORD": "your_password"
      }
    }
  }
}
JSON

# Start the container using your chosen environment variables
# For Linux, you can reuse the configuration shown above

Additional notes

Authentication with Earthdata is required to download data. Prepare Earthdata credentials and set EARTHDATA_USERNAME and EARTHDATA_PASSWORD in your environment before starting the MCP server.

Troubleshooting and tips

If the server cannot connect to Earthdata, verify your DOCUMENT_URL and RUNTIME_URL point to your notebook session and that DOCUMENT_ID matches the notebook you intend to use. Ensure your Docker network settings allow the container to reach your Jupyter instance if you are running both locally.

Security considerations

Keep your Earthdata credentials secure. Do not hard-code sensitive values in shared configurations. Use environment variable management or secret stores where available.

Available tools

search_earth_datasets

Search NASA Earthdata for datasets by keywords and return abstracts.

search_earth_datagranules

Search for data granules by dataset short name and return granule information.

download_earth_data_granules

Download Earthdata granules and integrate with Jupyter notebooks for analysis.

append_markdown_cell

Add markdown cells to notebooks in the composed Jupyter tools.

insert_markdown_cell

Insert markdown cells at specific positions in notebooks.

overwrite_cell_source

Modify existing cell content in notebooks.

append_execute_code_cell

Add and execute code cells within notebooks.

insert_execute_code_cell

Insert and execute code cells at specified positions.

execute_cell_with_progress

Execute cells with progress monitoring.

execute_cell_simple_timeout

Execute cells with a timeout.

execute_cell_streaming

Execute cells with streaming output.

read_all_cells

Read all cells from a notebook.

read_cell

Read a specific notebook cell.

get_notebook_info

Get notebook metadata.

delete_cell

Delete notebook cells.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational