Skip to main content
Glama

NASA CMR — Search Earth Science Datasets

nasa-cmr.datasets.search
Read-onlyIdempotent

Search NASA Common Metadata Repository (CMR) for Earth science satellite datasets and collections. Filter by keyword, data provider (ORNL_DAAC, GES_DISC, LPDAAC_ECS, PODAAC, NSIDC_ECS), temporal range, spatial bounding box, and processing level. Returns concept IDs, titles, summaries, data centers, temporal coverage, and access flags. CMR indexes 45,000+ collections covering climate, land, atmosphere, ocean, cryosphere, and biosphere from 60+ NASA data archives. Concept IDs from results feed into nasa-cmr.datasets.detail and nasa-cmr.granules.search. Source: NASA CMR — US Gov public domain, no auth required.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bboxNoBounding box spatial filter as "west,south,east,north" decimal degrees (e.g. "-180,-90,180,90" for global, "-125,24,-66,50" for continental US). Returns collections with spatial coverage intersecting the box.
keywordNoFree-text keyword to search collection titles, summaries, and metadata (e.g. "sea surface temperature", "MODIS land cover", "global precipitation").
providerNoFilter by NASA data center / archive provider ID (e.g. "GES_DISC", "ORNL_DAAC", "LPDAAC_ECS", "PODAAC", "NSIDC_ECS"). Use nasa-cmr.providers.list to discover available provider IDs.
sort_keyNoSort order for results: "-score" (relevance, default), "entry_title" / "-entry_title" (alphabetical), "start_date" / "-start_date" (temporal coverage start date).
page_sizeNoNumber of collections to return per page (1–20, default 10).
short_nameNoExact collection short name identifier (e.g. "MOD13A2", "GPM_3IMERGHHE"). Use when you know the specific dataset short name.
temporal_endNoEnd of temporal coverage filter in ISO 8601 UTC format (e.g. "2023-12-31T23:59:59Z"). Returns collections whose temporal extent overlaps this range.
temporal_startNoStart of temporal coverage filter in ISO 8601 UTC format (e.g. "2020-01-01T00:00:00Z"). Returns collections whose temporal extent overlaps this range.
processing_levelNoNASA data processing level filter (e.g. "1B", "2", "3", "4"). Level 1 = raw/calibrated; Level 2 = geophysical retrievals; Level 3 = gridded; Level 4 = model output.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent only when the call failed. Includes error code, message, request_id, and any provider-specific extras.
resultNoTool response payload. Shape varies per tool — consult the tool description and inputSchema. May be an object, array, string, or number depending on the upstream provider response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful non-obvious context: the return payload includes concept IDs, titles, summaries, access flags, etc.; the source requires no authentication; and CMR's scale is described. This goes beyond the structured annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and filters, then return fields, usage routing, and source/authentication context. It is longer than strictly necessary, with the 45,000+ collections and 60+ archives sentence being optional, but it remains dense and scannable without redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 optional parameters, full schema coverage, rich annotations, and an output schema, the description provides all essential contextual information: scope, filters, return values, downstream tools, source, licensing, and authentication. No critical invocation detail is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is documented in the schema. The description merely restates the filter categories (keyword, provider, temporal range, bbox, processing level) and adds some provider examples, but it does not need to compensate for schema gaps. The baseline of 3 is appropriate when the schema carries the parameter-level burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific action ('Search') and a well-defined resource ('NASA Common Metadata Repository for Earth science satellite datasets and collections'). It also names downstream sibling tools, clarifying that this tool is the search entry point and separating it from nasa-cmr.datasets.detail and nasa-cmr.granules.search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on what filters are available and explicitly connects results to nasa-cmr.datasets.detail and nasa-cmr.granules.search. It stops short of stating when NOT to use this tool (e.g., when you already have a concept ID), but the downstream routing is strong enough for an agent to infer the intended workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.