Skip to main content
Glama

elevation-mcp-server

Get Route Elevation Profile

elevation_get_profile
Read-onlyIdempotent

Sample terrain elevation at evenly spaced points along a route (a polyline of 2–1,000 vertices) and summarize it. Returns total distance, cumulative ascent and descent, start, end, minimum, and maximum elevation, and the steepest climb and descent grades, plus the per-sample profile with each sample's dataset unless include_samples is false. Ascent and descent are summed between samples, so they depend on the sample spacing reported in the result: denser sampling captures more small climbs, down to the source's resolution. Over open water, Mapzen samples are sea-floor depths. Each USGS 3DEP sample is a separate upstream request, so up to 250 samples take roughly 10–30 seconds.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesRoute vertices in travel order, 2–1,000 {lat, lon} objects in decimal degrees (WGS84). Consecutive duplicate vertices are ignored.
sourceNoElevation source: auto (default) uses USGS 3DEP where it has data and Open Topo Data (SRTM, with Mapzen terrain tiles where SRTM has no data) for the rest; usgs_3dep uses 3DEP only; opentopodata uses Open Topo Data only. Case is ignored and spaces or hyphens read as underscores, so USGS-3DEP and open topo data are accepted; 3dep, usgs, and epqs are also aliases for usgs_3dep.auto
samplesNoNumber of evenly spaced samples along the route, endpoints included (2–250, default 100). More samples catch more relief and take longer; spacing finer than the source resolution adds no detail. For a large count where only the summary matters, set include_samples to false.
include_samplesNoReturn the per-sample profile (default true). false omits samples and the sample table; the summary, spacing, coverage counts, datasets, notices, and attribution are unchanged, still computed from every sample.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
noticeNoGuidance on samples without data, routes crossing the USGS 3DEP coverage edge, Mapzen sea-floor values, and sample spacing against the source resolution.
samplesNoEvery sample in route order, endpoints included. Absent when include_samples is false.
summaryNoRoute statistics over the samples with data, bridging samples without data.
verticesNoRoute vertices after dropping consecutive duplicates.
attributionNoSources to credit for the returned values, one line per dataset that answered.
source_modeNoThe source the call used (auto unless the caller chose one).
datasets_usedNoNumber of values each dataset answered.
missing_samplesNoSamples no queried dataset answered.
sample_interval_mNoDistance between consecutive samples, meters: route length / (samples − 1).
samples_with_dataNoSamples with an elevation.
resolution_m_rangeNoRange of source resolutions over values that report one; absent when none does (all Mapzen).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior5/5

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

With readOnly/idempotent/openWorld annotations already covering the safety profile, the description goes well beyond: it discloses that ascent/descent depend on sample spacing, that denser sampling captures more small climbs down to source resolution, that Mapzen over water yields sea-floor depths, and that each USGS 3DEP sample is a separate upstream request costing roughly 10–30 s for 250 samples.

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?

It is a single dense paragraph, but front-loaded with purpose then return values, and nearly every sentence carries operative detail (sampling dependence, water depths, latency). Minor redundancy by restating output fields that the output schema already covers.

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?

For a 4-parameter tool with a full output schema and annotations, the agent has everything needed: what it computes, how sampling affects the numbers, source fallbacks, and runtime expectations. No material gap remains.

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% and the schema already documents path, source aliases, samples range/default, and include_samples behavior in detail. The description adds only the behavioral consequence of sampling density, so the baseline 3 for a fully-documented schema 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 opens with a precise verb+resource: sampling terrain elevation at evenly spaced points along a route polyline, and summarizing it. The route-polyline scope cleanly separates it from elevation_get_points, elevation_get_grid, and elevation_check_line_of_sight without naming them.

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?

Usage is implied by the route/polyline framing and by notes like 'for a large count where only the summary matters, set include_samples to false', which guides a calling pattern. However, it never states when to choose this over the sibling tools (points vs grid vs line-of-sight), leaving that routing decision to inference.

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.