Skip to main content
Glama

NASA CMR — Search Data Granules

nasa-cmr.granules.search
Read-onlyIdempotent

Search for individual data granules (files) within a NASA CMR collection. Filter by collection concept ID or short name (e.g. "MOD09GA"), temporal range, spatial bounding box, and day/night acquisition flag. Returns granule IDs, titles, acquisition times, cloud cover percentage, file size (MB), online access status, browse image availability, and direct download URLs. Granules are the individual science data files (HDF, NetCDF, GeoTIFF) that agents can download for analysis. Use nasa-cmr.datasets.search first to find the collection concept ID, then use this tool to locate specific files by time/area. 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. "-10.0,35.0,30.0,60.0" for Europe). Returns granules with spatial coverage intersecting the box.
page_sizeNoNumber of granules to return per page (1–20, default 10).
short_nameNoCollection short name to search granules for (e.g. "MOD09GA", "GPM_3IMERGHHE"). Alternative to collection_concept_id for well-known datasets.
temporal_endNoEnd of temporal filter in ISO 8601 UTC format (e.g. "2023-01-31T23:59:59Z"). Returns granules with data acquisition time overlapping this range.
day_night_flagNoFilter granules by illumination condition during acquisition: "day" (daylight pass), "night" (nighttime pass), or "unspecified".
temporal_startNoStart of temporal filter in ISO 8601 UTC format (e.g. "2023-01-01T00:00:00Z"). Returns granules with data acquisition time overlapping this range.
collection_concept_idNoCMR concept ID of the parent collection to search granules within (e.g. "C2515837343-GES_DISC"). Obtain from nasa-cmr.datasets.search results. Provide this or short_name to scope the search.

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.5/5.0
Behavior4/5

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

Annotations (readOnlyHint=true, idempotentHint=true) already cover safety. The description adds useful context: no auth required, the nature of granules (science data files like HDF, NetCDF, GeoTIFF), and the returned fields (IDs, titles, cloud cover, file size, download URLs). This goes beyond 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.

Conciseness5/5

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

The description is three sentences, front-loaded with the core purpose and filter capabilities. It efficiently includes usage sequence, return fields, and source attribution without redundancy. Every sentence adds value.

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 the presence of an output schema and rich parameter schemas, the description covers the essential usage flow, filter options, return fields, and authentication. It also mentions the prerequisite step (search datasets first). No critical information for an agent to call the tool correctly 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 coverage is 100%, so the schema already documents all 7 parameters with detailed descriptions and examples. The description mentions filters like 'temporal range, spatial bounding box, and day/night acquisition flag' but does not add meaning beyond what the schema provides. It does clarify the alternative between collection_concept_id and short_name, but that's also in the schema. Thus, baseline 3 is appropriate.

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 states a specific verb ('Search'), a clear resource ('individual data granules (files) within a NASA CMR collection'), and lists filtering options (collection concept ID, short name, temporal, bbox, day/night). It explicitly contrasts with the sibling tool nasa-cmr.datasets.search, which finds collections, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description gives explicit usage guidance: 'Use nasa-cmr.datasets.search first to find the collection concept ID, then use this tool to locate specific files by time/area.' It also explains that short_name is an alternative to collection_concept_id, covering when to use which parameter.

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.