Skip to main content
Glama

Openmeteo Get Elevation

openmeteo_get_elevation
Read-onlyIdempotent

Terrain elevation from the Copernicus Digital Elevation Model (~90m resolution) for one or more coordinate pairs. Accepts up to 100 pairs per call. Useful for geographic context, elevation-adjusted weather interpretation, or route planning. A point the DEM has no value for (latitude 90) returns elevation_m null; the other points in the call are unaffected.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
latitudesYesArray of latitudes in decimal degrees (up to 100). Must be same length as longitudes.
longitudesYesArray of longitudes in decimal degrees (up to 100). Must be same length as latitudes.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
elevationsNoElevation values in input order

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedOutput schema / properties / elevations / items / properties / elevation_m / description
      Previous value: -"Terrain elevation in meters above sea level"New value: +"Terrain elevation in meters above sea level; null when the DEM has no value for this point"
    • changedOutput schema / properties / elevations / items / properties / elevation_m / type
      Previous value: -"number"New value: +[
      +  "number",
      +  "null"
      +]
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `coordinate_count_mismatch`: The latitudes and longitudes arrays have different lengths. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `coordinate_count_mismatch`: The latitudes and longitudes arrays have different lengths. `rate_limited`: Open-Meteo answered HTTP 429 because a free-tier request limit was reached. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "coordinate_count_mismatch"
      -]New value: +[
      +  "coordinate_count_mismatch",
      +  "rate_limited"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `coordinate_count_mismatch`: latitudes and longitudes arrays have different lengths. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `coordinate_count_mismatch`: The latitudes and longitudes arrays have different lengths. Other values are possible when a failure originates below the handler."
  3. Changed1 schema field changed
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `coordinate_count_mismatch`: latitudes and longitudes arrays have different lengths Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `coordinate_count_mismatch`: latitudes and longitudes arrays have different lengths. Other values are possible when a failure originates below the handler."
  4. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "elevations"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode. Declared by this tool: `coordinate_count_mismatch`: latitudes and longitudes arrays have different lengths Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "coordinate_count_mismatch"
      +          ],
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "elevations"
      -]
  5. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered; the description goes further by disclosing the 100-pair batch cap and, importantly, the partial-failure semantics — a point with no DEM value (latitude 90) returns elevation_m null while the other points in the call are unaffected. That per-point null behavior is exactly the kind of trait an agent needs and cannot infer from annotations or schema.

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?

Four short sentences, each carrying distinct information: what/resolution, batch limit, use cases, and failure behavior. Front-loaded with the resource definition and free of 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?

An output schema exists, so return-value documentation is unnecessary. With 100% param coverage, two simple required array params, and annotations covering safety, the description supplies everything else an agent needs: data source, resolution, batch cap, and per-point null semantics.

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% — the schema already documents decimal degrees, the ±90/±180 ranges, the 100-item cap, and the equal-length pairing requirement. The description only restates the 'up to 100 pairs' limit, adding no format or syntax beyond the schema, so the baseline of 3 applies.

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?

States a specific resource (terrain elevation), its source and resolution (Copernicus DEM, ~90m), and its scope (one or more coordinate pairs). This is unambiguously distinct from every sibling, which all return weather/air-quality/marine variables rather than static terrain data.

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?

Gives concrete use contexts: geographic context, elevation-adjusted weather interpretation, and route planning. It does not, however, name an alternative tool or state any exclusion (e.g. when to prefer search_locations or a forecast endpoint instead), so it stops short of full when/when-not guidance.

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.