Labsco
MCP SERVER

Jupyter Earth MCP Server

by datalayer

Downloads NASA Earthdata granules straight into a running Jupyter notebook — archived by its authors, who point at earthdata-mcp-server instead.

Summary
Read the first line before you install it.

The repository is archived and names its successor, so start at `earthdata-mcp-server` rather than here. What remains interesting is the pattern: the download lands in the notebook as a real cell, which means the fetch is reproducible by whoever opens the notebook next instead of being a side effect of a chat session.

What it is

An MCP server that writes a download cell into a live JupyterLab notebook and runs it, pulling Earth data granules from NASA Earthdata onto the machine where the notebook lives. The repository is archived: its first line directs you to `https://github.com/datalayer/earthdata-mcp-server`.

What you get
  • `download_earth_data_granules` — adds and runs a code cell that fetches granules, taking `folder_name` for where to save, `short_name` for the dataset, `count` for how many, and optional `temporal` and `bounding_box` tuples to narrow the request
  • A prompt, `download_analyze_global_sea_level`, that frames the download-and-analyze task for you
  • Cell output returned to the conversation, so the assistant sees what the download actually did
Requirements

A running JupyterLab with real-time collaboration installed, so edits made to the notebook are visible: `jupyterlab==4.4.1`, `jupyter-collaboration==4.0.2`, `ipykernel` and `datalayer_pycrdt==0.12.17`. Start it with `jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0` — the wide bind is what lets the containerized server reach it. The client runs the `datalayer/jupyter-earth-mcp-server:latest` image with `SERVER_URL`, `TOKEN` and `NOTEBOOK_PATH`, the last relative to where JupyterLab started. BSD 3-Clause.

Setup effort

One command — docker run -i --rm -e SERVER_URL -e TOKEN -e NOTEBOOK_PATH datalayer/jupyter-earth-mcp-server:latest