Skip to main content
Glama
IBM
by IBM

stac_download_bands

Download specific satellite bands from a STAC scene as GeoTIFF or PNG, with optional bounding box cropping and cloud masking.

Instructions

Download specific bands from a scene as a GeoTIFF or PNG.

Reads band COGs via HTTP, windows to the requested bbox, and stores the result in chuk-artifacts. The bbox should be in EPSG:4326 — CRS reprojection to the raster's native CRS is handled automatically.

Args: scene_id: Scene identifier from a previous stac_search call bands: Band names to download. Common names: - Sentinel-2: red, green, blue, nir, swir16, swir22, rededge1-3, scl - Landsat: red, green, blue, nir08, swir16, swir22, coastal, qa_pixel - Sentinel-1: vv, vh - DEM: data bbox: Optional crop bbox in EPSG:4326 [west, south, east, north]. Strongly recommended to avoid downloading full tiles output_format: "geotiff" (default, lossless, for analysis) or "png" (8-bit lossy with percentile stretch, for preview/display) cloud_mask: Apply SCL-based cloud masking (Sentinel-2 only). Masked pixels become 0 (integer) or NaN (float) output_mode: Response format - "json" (default) or "text"

Returns: JSON with artifact_ref, shape, dtype, and optional preview_ref

Tips for LLMs: - Use stac_describe_scene first to see available band names - Always provide a bbox to limit download size - Use output_format="png" when the user wants to see the image - GeoTIFF preserves full radiometric precision for analysis - A PNG preview is auto-generated alongside GeoTIFF downloads - For RGB visualisation, prefer stac_download_rgb (simpler) - For spectral indices, prefer stac_compute_index (automatic)

Example: result = await stac_download_bands( scene_id="S2B_...", bands=["red", "nir"], bbox=[0.85, 51.85, 0.95, 51.92] )

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bboxNo
bandsYes
scene_idYes
cloud_maskNo
output_modeNojson
output_formatNogeotiff
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that it reads COGs via HTTP, windows to bbox, stores in chuk-artifacts, handles CRS reprojection, auto-generates PNG preview. It does not explicitly mention limits or auth, but adequately covers the core behavior. Minor gap in listing potential side effects.

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 well-structured with clear sections (intro, Args, Returns, Tips, Example). While somewhat verbose, every sentence adds value. The front-loading of the main purpose and tips makes it efficient. Could be slightly more concise, but clarity is excellent.

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 tool's complexity (6 params, no output schema, no annotations), the description covers all necessary context: parameter semantics, return value format, usage tips, and a concrete example. It compensates for the missing schema descriptions and output schema.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. It provides detailed explanations for all six parameters, including examples for band names per satellite, bbox format, output format choices, cloud mask scope, and output mode. This adds significant meaning beyond the raw schema.

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 clearly states 'Download specific bands from a scene as a GeoTIFF or PNG.' The verb 'download' and resource 'bands from a scene' are specific. It distinguishes from siblings by explicitly mentioning alternatives like stac_download_rgb and stac_compute_index.

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 'Tips for LLMs' section provides explicit guidance: use stac_describe_scene first, always provide a bbox, prefer png for viewing, geotiff for analysis, and prefer sibling tools for RGB or indices. It clearly states when to use this tool vs alternatives.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/IBM/chuk-mcp-stac'

If you have feedback or need assistance with the MCP directory API, please join our Discord server