download_earth_data_granulesLABSCO 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, takingfolder_namefor where to save,short_namefor the dataset,countfor how many, and optionaltemporalandbounding_boxtuples 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
USE CASES
Getting satellite data into a notebook without leaving the conversation
Name the dataset, the count and a bounding box, and the download cell is written and run for you.
Starting a sea level analysis
Use the bundled prompt, which frames the download and the analysis together instead of leaving you to phrase it.
Keeping the fetch reproducible
Because the download is a notebook cell, the next person to open the notebook can re-run it exactly.
1 tool
Listed in project docs. Your client may show a different list.
BEFORE YOU INSTALL
What to know first
Tools you get
1 tool named in the project's documentation.
Requires
docker on PATH
Where it runs
Both documented setups run the server on your machine.
INSTALLATION
Connect your client
Server setup
docker run -i --rm -e SERVER_URL -e TOKEN -e NOTEBOOK_PATH datalayer/jupyter-earth-mcp-server:latestMCP Clients
Claude Desktop — macOS, Windows
{
"mcpServers": {
"jupyter-earth": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SERVER_URL",
"-e",
"TOKEN",
"-e",
"NOTEBOOK_PATH",
"datalayer/jupyter-earth-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://host.docker.internal:8888",
"TOKEN": "<YOUR_TOKEN>",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}Claude Desktop — Linux
{
"mcpServers": {
"jupyter-earth": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SERVER_URL",
"-e",
"TOKEN",
"-e",
"NOTEBOOK_PATH",
"--network=host",
"datalayer/jupyter-earth-mcp-server:latest"
],
"env": {
"SERVER_URL": "http://localhost:8888",
"TOKEN": "<YOUR_TOKEN>",
"NOTEBOOK_PATH": "notebook.ipynb"
}
}
}
}