Skip to main content
Glama
icos-mcp

icos-mcp

Official

estimate

Read-onlyIdempotent

Check the rows, stations, and time span a data selection covers before fetching it, so you can confirm scope and avoid unnecessary downloads.

Instructions

How big a selection is -- rows, stations, time span -- without fetching it. Call this before get_data.

Input Schema

NameRequiredDescriptionDefault
idYesa variable id from search_variables
endNoISO date or datetime, EXCLUSIVE
startNoISO date or datetime, inclusive (2025-01-01)
cruiseNocruise expocodes, a list or a string; ocean observation tables only
lat_maxNonorthern edge of a bounding box, degrees north
lat_minNosouthern edge of a bounding box, degrees north
lon_maxNoeastern edge of a bounding box, degrees east
lon_minNowestern edge of a bounding box, degrees east
stationNostation ids -- a list, or one id (or several, comma-separated) as a string; CASE-SENSITIVE: HTM150 (trigram + sampling height) for atmosphere, SE-Htm for FLUXNET sites
apply_qcNoDEFAULT TRUE: drop the observations the store's recommended quality control rejects; false keeps every observation, flagged ones included
height_maxNohighest sampling height above ground, metres (station series)
height_minNolowest sampling height above ground, metres (station series)

Output Schema

NameRequiredDescriptionDefault
idYes
noteNo
rowsYesrows the selection holds; None when only an upper bound is known
exactYes
time_maxNo
time_minNo
est_bytesNo
n_stationsNo
rows_at_mostNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds one genuinely useful behavioral fact -- the call does not fetch the data, so it is a cheap pre-flight check. It says nothing about cost, latency, or how the estimate is computed/sampled, which would matter for a planning tool.

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?

Two short sentences, zero filler, with the substantive explanation front-loaded and the usage directive second. Nothing could be removed without losing information.

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

Completeness4/5

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

With an output schema present and 100% parameter coverage, the description needn't explain return values or arguments, and it correctly focuses on purpose plus sequencing. For a 12-parameter tool the description is thin on how the estimate interacts with the filters, but the structured fields carry that load.

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 all 12 parameters are documented in the schema itself and the baseline is 3. The description's mention of "rows, stations, time span" loosely maps to the row/station/time filtering dimensions, but it adds no syntax, defaults, or interaction detail beyond what the schema already provides.

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

Purpose4/5

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

"How big a selection is -- rows, stations, time span -- without fetching it" states the specific operation (size estimation) and enumerates what is measured, which is far more informative than the bare name "estimate." It is clearly distinguishable from get_data, though it doesn't name the other sizing-adjacent siblings (aggregate, find_stations) that an agent might confuse it with.

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?

"Call this before get_data" gives an explicit ordering rule that routes the agent correctly between the two tools. There is no explicit when-not guidance (e.g., when skipping the estimate is fine, or how it relates to aggregate/find_stations), so it stops short of full alternative coverage.

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