- Home
- MCP servers
- Earthdata
Earthdata
- 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.