Jupyter Earth MCP Server

Integrations

  • Offers containerized deployment of the MCP server for easy integration with Claude Desktop

  • Provides tools for geospatial analysis in Jupyter notebooks, including adding code cells for downloading and analyzing Earth data

  • Enables downloading Earth data granules from NASA Earth Data, with support for filtering by dataset name, temporal range, and bounding box coordinates

🌎 ✨ Jupyter Earth MCP Server

🌍 Jupyter Earth MCP Server is a Model Context Protocol (MCP) server implementation that provides a set of tools for 🗺️ Geospatial analysis in 📓 Jupyter notebooks.

The following demo uses the Earthdata MCP server to search for datasets and data granules on NASA Earthdata, this MCP server to download the data in Jupyter and the jupyter-mcp-server to run further analysis.

Start JupyterLab

Make sure you have the following installed. The collaboration package is needed as the modifications made on the notebook can be seen thanks to Jupyter Real Time Collaboration.

pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 ipykernel pip uninstall -y pycrdt datalayer_pycrdt pip install datalayer_pycrdt==0.12.15

Then, start JupyterLab with the following command.

jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0

You can also run make jupyterlab.

Note

The --ip is set to 0.0.0.0 to allow the MCP server running in a Docker container to access your local JupyterLab.

Use with Claude Desktop

Claude Desktop can be downloaded from this page for macOS and Windows.

For Linux, we had success using this UNOFFICIAL build script based on nix

# ⚠️ UNOFFICIAL # You can also run `make claude-linux` NIXPKGS_ALLOW_UNFREE=1 nix run github:k3d3/claude-desktop-linux-flake \ --impure \ --extra-experimental-features flakes \ --extra-experimental-features nix-command

To use this with Claude Desktop, add the following to your claude_desktop_config.json (read more on the MCP documentation website).

Important

Ensure the port of the SERVER_URLand TOKEN match those used in the jupyter lab command.

The NOTEBOOK_PATH should be relative to the directory where JupyterLab was started.

Claude Configuration on macOS and 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": "MY_TOKEN", "NOTEBOOK_PATH": "notebook.ipynb" } } } }

Claude Configuration on Linux

CLAUDE_CONFIG=${HOME}/.config/Claude/claude_desktop_config.json cat <<EOF > $CLAUDE_CONFIG { "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": "MY_TOKEN", "NOTEBOOK_PATH": "notebook.ipynb" } } } } EOF cat $CLAUDE_CONFIG

Components

Tools

The server currently offers 1 tool:

  1. download_earth_data_granules
  • Add a code cell in a Jupyter notebook to download Earth data granules from NASA Earth Data.
  • Input:
    • folder_name(string): Local folder name to save the data.
    • short_name(string): Short name of the Earth dataset to download.
    • count(int): Number of data granules to download.
    • temporal (tuple): (Optional) Temporal range in the format (date_from, date_to).
    • bounding_box (tuple): (Optional) Bounding box in the format (lower_left_lon, lower_left_lat, upper_right_lon, upper_right_lat).
  • Returns: Cell output.

Prompts

  1. download_analyze_global_sea_level
    • To ask for downloading and analyzing global sea level data in Jupyter.
    • Returns: Prompt correctly formatted.

Building

You can build the Docker image it from source.

make build-docker
-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

A Model Context Protocol server implementation that provides geospatial analysis tools in Jupyter notebooks, particularly for downloading NASA Earth data granules.

  1. Start JupyterLab
    1. Use with Claude Desktop
      1. Claude Configuration on macOS and Windows
      2. Claude Configuration on Linux
    2. Components
      1. Tools
      2. Prompts
    3. Building

      Related MCP Servers

      • A
        security
        A
        license
        A
        quality
        A Model Context Protocol server that provides a standardized interface for AI models to interact with NASA's vast array of data sources including APOD, Mars Rover photos, satellite imagery, and space weather data.
        Last updated -
        24
        104
        23
        TypeScript
        ISC License
        • Apple
        • Linux
      • -
        security
        A
        license
        -
        quality
        A Model Context Protocol server that enables efficient discovery and retrieval of NASA Earth Data for geospatial analysis.
        Last updated -
        10
        Python
        BSD 3-Clause
        • Linux
      • A
        security
        A
        license
        A
        quality
        A Model Context Protocol server that enables managing Terrakube infrastructure through natural language, handling workspace management, variables, modules, and organization operations.
        Last updated -
        16
        22
        1
        TypeScript
        Apache 2.0
      • -
        security
        A
        license
        -
        quality
        A Model Context Protocol server for data wrangling that provides standardized interfaces for data preprocessing, transformation, and analysis tasks including data aggregation and descriptive statistics.
        Last updated -
        1
        Python
        MIT License
        • Linux
        • Apple

      View all related MCP servers

      ID: 0gt36eut74