Earth science queries are easy to get wrong by an order of magnitude, so manifest mode returns the metadata without writing a byte — you check the scope, then decide. Script mode is the deliberate escape hatch: the server stays Earthdata-only and hands you Python to run wherever your analysis actually lives.
An MCP server over NASA Earthdata. It searches the catalog, narrows granules by time range and bounding box, and hands back either a metadata preview, downloaded files, or executable Python — deliberately scoped to Earthdata rather than bundling a notebook runtime.
- search_earth_datasets — find datasets by keywords, with optional temporal range and bounding box, returning dataset abstracts
- search_earth_datagranules — list granules for a dataset short_name, filtered the same way
- download_earth_data_granules — always searches first, then behaves according to mode
- Mode=manifest — granule ids, titles and links only, no files written; the safe first step for checking your filters
- Mode=download — authenticates and pulls the matching granules into folder_name on the server
- Mode=script — returns Python that performs the same search and download, for running in a notebook elsewhere
- Prompts for common workflows, including sealevel_rise_dataset and download_analyze_global_sea_level
A NASA Earthdata Login account, supplied as EARTHDATA_USERNAME and EARTHDATA_PASSWORD. Install from PyPI as earthdata-mcp-server, or run the datalayer/earthdata-mcp-server Docker image. Credentials are only needed for the download path; searching does not use them.
One command plus a key — pip install earthdata-mcp-server, then supply credentials
