accueil / serveurs / Dev & Code / io.github.cyanheads/elevation-mcp-server
io.github.cyanheads/elevation-mcp-server
serveur MCP (Model Context Protocol) · elevation-mcp-server 0.2.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.cyanheads/elevation-mcp-server est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.cyanheads/elevation-mcp-server » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 4 outils
- elevation_check_line_of_sight≈ 4464 tokens
Check whether terrain blocks the straight sightline between an observer and a target, each at a height above the ground, accounting for earth curvature and atmospheric refraction. Returns a verdict of clear, blocked, or indeterminate (when samples along the line have no data), the minimum clearance and the terrain point that limits it, and the first obstruction from the observer when blocked. With frequency_mhz, it also reports first Fresnel zone clearance against the 60% free-space bar. Where Mapzen reports sea-floor depth over open water, clearance is measured to the sea surface; USGS 3DEP values below 0 m (bay floor in some bays, or dry land) count as received unless water_surface_m sets a water level. Models terrain only: buildings and vegetation are not modeled beyond what the elevation source itself captures, and a ridge narrower than the reported sample spacing can be missed. To see the terrain between the points, call elevation_get_profile on the same two points.
Paramètres, retour & exemple (9)
Paramètressource· string · optionnel · auto | usgs_3dep | opentopodata
Elevation 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.target· object · requis
Target location as {lat, lon} in decimal degrees (WGS84).samples· integer · optionnel
Evenly spaced terrain samples along the line, endpoints included (3–250, default 100). Spacing is reported; a ridge narrower than it can be missed.observer· object · requis
Observer location as {lat, lon} in decimal degrees (WGS84).earth_model· string · optionnel · flat | geometric | optical | radio
Earth model: flat ignores curvature; geometric applies curvature without refraction; optical applies standard visible-light refraction (coefficient 0.13, default); radio applies the standard 4/3-earth radio refraction (coefficient 0.25).frequency_mhz· number · optionnel
Radio frequency in MHz (30–300,000; 5800 for 5.8 GHz). When set, the result adds first Fresnel zone clearance against the 60% free-space bar; pair it with earth_model radio.target_height_m· number · optionnel
Target height above ground, meters (default 0, the ground itself). Set it for a tower, building top, or second antenna.water_surface_m· number · optionnel
Water level in meters (-500 to 9,000). When set, each sample's surface, endpoints included, is the higher of its elevation and this level, replacing the default that lifts only Mapzen sea-floor values to 0 m. Requires a vertical reference compatible with the sampled terrain; choosing zero or source opentopodata alone does not establish compatibility. No datum conversion is performed.observer_height_m· number · optionnel
Observer eye or antenna height above ground, meters (default 1.7, standing eye height).
Exemple d'appel{"name": "elevation_check_line_of_sight", "arguments": {"target": {}, "observer": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"error": {}, "notice": "texte", "target": {}, "fresnel": {}, "samples": 1, "verdict": "clear", "observer": {}, "distance_m": 1, "attribution": "texte", "earth_model": "flat", "source_mode": "auto", "datasets_used": {}}} - elevation_get_grid≈ 2879 tokens
Sample a regular grid of terrain elevations across a bounding box and report the highest and lowest sampled points, the mean elevation, and the relief, plus the full elevation matrix with each cell's dataset. Values are point samples at grid nodes (box edges included), not cell averages, so a summit between nodes is missed; to refine a candidate high or low point, call again with a smaller box around it. Over open water, Mapzen cells are sea-floor depths. Rows times columns may not exceed 250.
Paramètres, retour & exemple (7)
Paramètrescols· integer · optionnel
Grid columns, west to east, edges included (2–25, default 10). rows × cols must be at most 250.east· number · requis
Eastern edge longitude, decimal degrees.rows· integer · optionnel
Grid rows, north to south, edges included (2–25, default 10). rows × cols must be at most 250.west· number · requis
Western edge longitude, decimal degrees. Must be less than east; a box crossing longitude 180 must be split into two calls.north· number · requis
Northern edge latitude, decimal degrees. Must be greater than south.south· number · requis
Southern edge latitude, decimal degrees.source· string · optionnel · auto | usgs_3dep | opentopodata
Elevation 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.
Exemple d'appel{"name": "elevation_get_grid", "arguments": {"east": 1, "west": 1, "north": 1, "south": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"cols": 1, "east": 1, "rows": 1, "west": 1, "error": {}, "north": 1, "south": 1, "notice": "texte", "summary": {}, "attribution": "texte", "source_mode": "auto", "elevations_m": []}} - elevation_get_points≈ 2089 tokens
Look up ground elevation at up to 100 coordinates in one call, in meters and feet, with the dataset and resolution behind every point. Accepts up to 1,000 submitted positions; only the first 100 are validated and sampled, with counts and next_offset identifying the unvalidated remainder. Continue with originalPoints.slice(next_offset). Inside USGS 3DEP coverage (the US and its territories, plus much of Canada and Mexico) values come from 3DEP at 1–30 m resolution. Elsewhere they come from Open Topo Data: SRTM at about 30 m on land between 60°N and 56°S, and Mapzen terrain tiles beyond SRTM's coverage and over the ocean, where values below 0 m are sea-floor depths. A point with no data in any queried dataset returns status no_data instead of failing the call.
Paramètres, retour & exemple (2)
Paramètrespoints· array · requis
1–1,000 submitted positions as {lat, lon} objects in decimal degrees (WGS84), or one point object. Only the first 100 are validated and sampled; an invalid unserved tail is validated when resubmitted. Coordinate aliases latitude, longitude, lng, and long are accepted.source· string · optionnel · auto | usgs_3dep | opentopodata
Elevation 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.
Exemple d'appel{"name": "elevation_get_points", "arguments": {"points": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"error": {}, "notice": "texte", "points": [], "attribution": "texte", "next_offset": "texte", "source_mode": "auto", "points_with_data": 1, "processed_points": 1, "remaining_points": 1, "requested_points": 1, "vertical_reference": "texte"}} - elevation_get_profile≈ 3316 tokens
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.
Paramètres, retour & exemple (4)
Paramètrespath· array · requis
Route vertices in travel order, 2–1,000 {lat, lon} objects in decimal degrees (WGS84). Consecutive duplicate vertices are ignored. Antipodal retained segments require an intermediate waypoint, even with endpoint-only sampling; errors identify zero-based submitted vertex indices.source· string · optionnel · auto | usgs_3dep | opentopodata
Elevation 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.samples· integer · optionnel
Number 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_samples· boolean · optionnel
Return 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.
Exemple d'appel{"name": "elevation_get_profile", "arguments": {"path": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"error": {}, "notice": "texte", "samples": [], "summary": {}, "vertices": 1, "attribution": "texte", "source_mode": "auto", "datasets_used": {}, "missing_samples": 1, "sample_interval_m": 1, "samples_with_data": 1, "resolution_m_range": {}}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».