NASA Earthdata MCP

io.github.nasaPublished by GitHub account nasav1.0.0Updated Oct 24, 2026

Discover, verify, and access NASA Earth science datasets via the Common Metadata Repository (CMR)

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingKnowledge & MemoryData & Analytics

Overview

AI-generated overview

A remote MCP server that lets an assistant search NASA's Earthdata Common Metadata Repository for collections, granules, variables, services, tools and keywords

What you can do
Search NASA CMR collections and return lightweight normalized results with concept, native and revision IDs and provider details. Search granules within a specific parent collection. Look up scientific variables and measurements for a collection, including scale, offset and fill values. Find services and tools associated with a collection. Discover official Earthdata vocabulary labels from the Keyword Management System to build better searches. Retrieve citation records linked to a collection or by identifier such as a DOI.
When to use it
Useful when you need to find, verify or understand NASA Earth science datasets before downloading or analyzing them, or when you want the exact official vocabulary terms to make a CMR search succeed.
Requirements
A remote streamable HTTP endpoint at the NASA CMR address; no package, account, API key or header is declared. Network access to the endpoint is required.
Before you install
Results are read-only metadata lookups; no writes, payments or credentials are involved. Returned records are limited (collections and granules return up to 10 items), so broad searches may be incomplete. Queries are sent to NASA's public CMR service.

Installation

In SourceWeft

  1. Open NASA Earthdata MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.nasa%2Fearthdata-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "nasa-earthdata": {
      "type": "http",
      "url": "https://cmr.earthdata.nasa.gov/mcp/v1"
    }
  }
}

Tools

7

get_citations

Discover citation records directly associated with a collection, or look up a citation by identifier (e.g. DOI). Use this tool to evaluate citation relevance for a collection. Key fields in each returned item: - concept_id: CMR citation concept ID - name: The title or name of the citation - identifier: The primary DOI or identifier - abstract: Abstract text - citation_metadata: Nested metadata including Year, Publisher, and Author list

Parameterslimitcursorfieldsprovideridentifiercollection_concept_id

get_collections

Search NASA CMR collections and return up to 10 lightweight normalized results. Key return fields in each item: - concept_id: CMR collection concept ID - native_id: native ID of the collection record - revision_id: revision ID of the collection metadata - provider_id: provider ID of the collection - short_name: collection short name - entry_title: collection title - time_start / time_end: temporal coverage bounds - processing_level_id: processing level (e.g., L3, L4) - doi: digital object identifier - collection_data_type: data type (e.g., SCIENCE_QUALITY, NEAR_REAL_TIME) - temporal_resolution / spatial_resolution: extracted resolution strings - related_urls: links to landing pages, documentation, and tools Unfiltered searches are supported when you need broad exploration. IMPORTANT — relevance and coverage: A keyword-only search returns all collections whose metadata mentions those terms, regardless of whether they actually hold data for the user's region or time period. Collection declared extents are often global or multi-decadal, so a collection appearing in results does not mean it has granules for a specific area or date. When the user's question involves a time period or geographic region, include temporal_start_date/temporal_end_date and/or spatial_wkt_geometry to restrict results to collections that overlap that window. Follow up with get_granules (with the same filters) to confirm actual data availability. IMPORTANT — keyword AND logic: CMR treats each space-separated keyword as an independent term and requires ALL of them to appear somewhere in a collection's metadata (title, summary, science keywords, instruments, platforms, etc.). Words do not need to appear in the same field or adjacent to each other. Because every term must match, adding more words makes the search STRICTER, not broader — the opposite of typical web search engines. Prefer 2–4 precise scientific terms. If a search returns 0 results, try removing the least essential word before broa

Parameterslimitcursorfieldskeywordplatformproviderconcept_idinstrumentshort_namehas_granulestemporal_end_dateprocessing_level_id+2 more

get_granules

Search NASA CMR granules for a specific parent collection and return up to 10 lightweight normalized results. Key return fields in each item: - concept_id: CMR granule concept ID - native_id: native ID of the granule record - revision_id: revision ID of the granule metadata - provider_id: provider ID of the granule - granule_ur: primary granule identifier - time_start / time_end: temporal coverage bounds - access_urls: actionable data access URLs - cloud_cover: cloud cover percentage - day_night_flag: DAY, NIGHT, BOTH, or UNSPECIFIED - size_mb: file size in megabytes - data_format: file format (e.g., NetCDF-4, GeoTIFF) - bounding_box: [West, South, East, North] Minimum Bounding Rectangle (MBR) footprint. Note: for swath data or irregular polygons, this bounding box fully encloses the data but may contain empty space at the corners. IMPORTANT — data availability checks: Without temporal and/or spatial filters, results represent ALL granules ever archived in the collection, which may span decades and the entire globe. total_hits without filters tells you the full archive size, NOT whether data exists for a specific area or time period. To verify availability for a specific region and/or period, apply the corresponding spatial or temporal filters. Single-filter queries (e.g., temporal-only) are completely valid and should be used when the user only specifies one constraint, but combining both provides the most precise availability answer. Key parameters: - collection_concept_id: required parent collection concept ID - temporal_start_date / temporal_end_date: filter to granules overlapping this time window — always set when the user specifies a time period - spatial_wkt_geometry: filter to granules intersecting this area — always set when the user specifies a geographic region - cloud_cover_min / cloud_cover_max: filter optical imagery by cloud cover percentage (0–100). Only set for optical/visible imagery collections (Landsat, MODIS, VIIRS, Sentinel-2 via CMR). Do N

Parameterslimitcursorfieldssort_keyday_night_flagcloud_cover_maxcloud_cover_mintemporal_end_datetemporal_start_datespatial_wkt_geometrycollection_concept_idrequired

get_keywords

Discover official Earthdata vocabulary (like 'ATMOSPHERIC WATER VAPOR') directly from NASA's Keyword Management System (KMS). Use this to find the exact preferred labels to construct successful get_collections searches. Key fields in each returned item: - prefLabel: The preferred label to use in searches - uuid: The KMS concept UUID - definition: Context and expanded acronyms - scheme: The vocabulary scheme (e.g. sciencekeywords, platforms)

Parameterslimitqueryrequiredcursorfieldsscheme

get_services

Search NASA CMR services for a specific parent collection and return all associated normalized UMM-S records. Key fields in each returned item: - concept_id: CMR service concept ID - native_id: native ID of the service record - revision_id: revision ID of the service metadata - provider_id: provider ID of the service - name: service name - type: service type (e.g., OPeNDAP, WCS, Harmony, WMS, WMTS, ESI, EGI - No Processing) - version: service version string - description: human-readable service description - url: Primary endpoint URL information - service_options: supported output formats, projections, subset types, and interpolation methods - operation_metadata: operation names (e.g., GetCapabilities, GetMap) and distributed computing platform Key parameters: - collection_concept_id: required parent collection concept ID Iteration & Refinement: - All services associated with the collection are fetched in a single request. Paging is not supported. Note: A collection may be associated with multiple services of different types. Check type to distinguish between data access services (e.g., OPeNDAP, WCS) and discovery/visualization services (e.g., WMS, WMTS).

Parameterstypelimitcursorfieldskeywordcollection_concept_id

get_tools

Search NASA CMR tools for a specific parent collection and return all associated normalized UMM-T records. Key fields in each returned item: - concept_id: CMR tool concept ID - native_id: native ID of the tool record - revision_id: revision ID of the tool metadata - provider_id: provider ID of the tool - name: tool name - type: tool type (e.g., Downloadable Tool, Web User Interface, Web Portal, Model) - version: tool version string - description: human-readable tool description - url: Primary URL for directly accessing the tool - supported_input_formats: file formats the tool can read (e.g., HDF5, NETCDF-4, GeoTIFF) - supported_output_formats: file formats the tool can produce - supported_operating_systems: OS compatibility (name and version) - supported_browsers: browser compatibility (name and version) - supported_software_languages: programming language compatibility - tool_keywords: Earth science keyword taxonomy for the tool - organizations: providers, developers, or publishers of the tool - potential_action: smart handoff definition for parameterized deep links (e.g., 'Open in Giovanni') Key parameters: - collection_concept_id: required parent collection concept ID Iteration & Refinement: - All tools associated with the collection are fetched in a single request. Paging is not supported. Note: A collection may be associated with multiple tools of different types. Check type to distinguish between downloadable tools, web user interfaces, and web portals.

Parameterslimitcursorfieldskeywordcollection_concept_id

get_variables

Discover scientific variables and measurements associated with a collection, or look up variables by keyword. Use this tool to understand dataset variables, dimensions, and data processing parameters (such as scale, offset, and fill values) before downloading or analyzing data. Key fields in each returned item: - concept_id: CMR variable concept ID - name: Variable short name - long_name: Variable long name - definition: Variable definition - data_type: Data type of the variable - units: Units of measurement - scale: Scale factor - offset: Offset value - fill_values: Values indicating missing or invalid data - valid_ranges: Valid data ranges - dimensions: Variable dimensions

Parameterslimitcursorfieldskeywordcollection_concept_id

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.