Skip to main content
Glama
icos-mcp

icos-mcp

Official

get_data

Read-onlyIdempotent

Retrieve filtered ICOS observations for one variable by time, location, station, cruise, height and quality control, returning a table, total, download URL and citation.

Instructions

Observations for one variable, filtered by box, time, station, cruise, height and quality control. Returns at most max_rows rows as a table, the total, a download URL for the whole selection, and the citation the user must be given with any use of the 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
max_rowsNorows to return; the whole selection is at download_url
questionNothe user's request as they wrote it; kept only if the user agreed in the licence form to share their questions anonymously, otherwise dropped
height_maxNohighest sampling height above ground, metres (station series)
height_minNolowest sampling height above ground, metres (station series)

Output Schema

NameRequiredDescriptionDefault
idYes
noteNo
rowsYes
columnsYes
citationYes
truncatedYes
rows_totalYesrows in the whole selection, when known
download_urlYesthe selection as CSV when it fits one download; when it does not, the FIRST of download_urls
download_urlsNowhen the selection is larger than one download (the proxy caps an answer at 500,000 rows): one CSV link per time window, together the WHOLE selection -- give the user all of them
rows_returnedYes
download_completeNofalse when no set of links could be planned to cover the whole selection; the note says what is missing

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so safety is covered. The description adds genuinely new behavior: results are capped at max_rows rows as a table, the response also carries the total count and a download URL covering the whole selection, and the returned citation must be surfaced to the user with any use of the data — a licensing obligation not present in any structured field. That is meaningful context beyond the annotations, though it does not discuss truncation semantics or rate limits.

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?

Three compact sentences with the filter scope front-loaded, followed by the return contract and the citation requirement. No filler, no restatement of the tool name, and each sentence carries distinct 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?

For a 14-parameter query tool with full schema coverage and an output schema, the description covers scope, the row-cap-plus-download-URL pattern that resolves the truncation concern, and the citation duty. What is missing is minor: it does not note that certain filters (e.g. cruise, height) apply only to particular dataset types, though the schema covers this per-parameter.

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 one of the 14 parameters is already documented, including exclusive end dates, case-sensitive station ids, and the apply_qc default. The description only restates the filter categories (box, time, station, cruise, height, quality control) without adding syntax, interaction, or precedence detail beyond the schema. Baseline 3 applies when the schema does the heavy lifting.

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?

"Observations for one variable, filtered by box, time, station, cruise, height and quality control" gives a specific verb (retrieve observations), a specific resource (a single variable's data), and enumerates the filter axes. This clearly separates it from sibling tools like aggregate, estimate, and describe_variable, which operate on variables rather than returning raw observations. It stops short of naming those siblings explicitly, so it lands at 4 rather than 5.

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

Usage Guidelines3/5

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

There is no explicit when-to-use / when-not-to-use statement and no pointer to alternatives such as aggregate for summarised results or search_variables for obtaining the required id. Usage is only implied by the phrase "Observations for one variable" and by the citation obligation at the end. An agent can infer the purpose but must reason about sibling selection on its own.

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