Search / io.github.Maz2580/geospark
GeoSpark
R0· no sign-inVerifiable geospatial tools: distances, topology, isochrones, Overture Maps, with sources.
v0.8.0 · active · repository · website · descriptor JSON · versions
Search / io.github.Maz2580/geospark
R0· no sign-inVerifiable geospatial tools: distances, topology, isochrones, Overture Maps, with sources.
v0.8.0 · active · repository · website · descriptor JSON · versions
{
"mcpServers": {
"geospark": {
"type": "http",
"url": "https://geospark.terrascout.app/mcp"
}
}
}claude mcp add --transport http geospark https://geospark.terrascout.app/mcp[mcp_servers.geospark]
url = "https://geospark.terrascout.app/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"geospark": {
"type": "remote",
"url": "https://geospark.terrascout.app/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"geospark": {
"type": "http",
"url": "https://geospark.terrascout.app/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=geospark&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vZ2Vvc3BhcmsudGVycmFzY291dC5hcHAvbWNwIn0%3D"
}{
"servers": {
"geospark": {
"type": "http",
"url": "https://geospark.terrascout.app/mcp"
}
}
}{
"mcpServers": {
"geospark": {
"httpUrl": "https://geospark.terrascout.app/mcp"
}
}
}extensions:
"geospark":
enabled: true
name: "geospark"
type: streamable_http
uri: "https://geospark.terrascout.app/mcp"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations21 of 21 tools declare readOnlyHint or destructiveHinttools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHinttools.token_costabout 4,897 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes6 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageline_of_sightaddedWhether A and B can see each other over the terrain (Copernicus 30 m DEM, curvature and refraction), the minimum clearance and where it occurs; with frequency_mhz, the first Fresnel zone clearance of a radio link (60% clear is the usual rule).
terrain_horizonaddedThe skyline the terrain makes around a point: for each azimuth, the elevation angle of the horizon and how far away the blocking terrain is (Copernicus 30 m DEM, Earth curvature and refraction). Use for solar-panel shading, valley sunlight, or what hills hide. ~10-60 s.
sun_timesaddedSunrise, solar noon, sunset and day length on a date for a flat horizon; with terrain=True, also the hours of direct sun once hills are taken into account.
sun_positionaddedThe Sun's apparent elevation and azimuth (from true north) at a place and time, and the shadow a vertical object casts on level ground (NOAA solar position, refraction included).
convert_heightaddedConvert a height between the ellipsoid (GNSS, drones) and a national height datum with the official geoid model: AHD (AUSGeoid2020), ODN (OSGM15), NZVD2016 (NZGeoid2016), NAVD88 (GEOID18), or global EGM2008. Never estimate a geoid separation from memory: it is often tens of metres and varies by metres across a region.
transform_coordinatesaddedConvert coordinates between CRSs as the official transformation does: GDA94 to GDA2020, MGA zones, British National Grid (OSTN15), NAD27 to NAD83 (NADCON), ITRF at an epoch, and any other EPSG pair. Uses national grids (downloaded once), refuses PROJ's ballpark approximations, and returns the operation and its stated accuracy. Use this instead of applying datum parameters yourself.
Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo +website +reachable +uptime-98% +updated-16d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://geospark.terrascout.app/mcp streamable-http | none | yes | 98% | 921 ms | 2026-07-28 | 2026-11-07 |
calculate_distanceread-only | Exact geodesic distance between two places or geometries on the WGS84 ellipsoid. Use for any "how far" question instead of estimating. For NAMED places pass place_a and place_b; the server geocodes them, so never type coordinates for a place yourself. Use point_a/point_b only for coordinates the user gave or another tool returned. For lines and polygons the distance is between their nearest points. Returns metres and kilometres. |
check_spatial_relationshipread-only | Ground-truth topology: does geometry_a <relationship> geometry_b? Use instead of guessing containment, overlap or adjacency. Invalid geometries (for example self-intersecting polygons) are refused with the reason. |
convert_heightread-only | Convert a height between the ellipsoid (GNSS, drones) and a national height datum with the official geoid model: AHD (AUSGeoid2020), ODN (OSGM15), NZVD2016 (NZGeoid2016), NAVD88 (GEOID18), or global EGM2008. Never estimate a geoid separation from memory: it is often tens of metres and varies by metres across a region. |
geocoderead-only | Find coordinates for an address or place name (OpenStreetMap Nominatim). Check `geospark.warnings` for ambiguous names (e.g. "Springfield") and ask the user which one they mean, or add a region. |
get_active_firesread-only | Satellite active-fire detections near a point (NASA FIRMS; the server needs a FIRMS_MAP_KEY). |
get_air_qualityread-only | Latest PM2.5, NO2, O3 from the nearest monitoring stations (OpenAQ; the server needs an OPENAQ_API_KEY), with each station's data licence. |
get_elevationread-only | Ground elevation in metres (Copernicus GLO-30, Open Elevation fallback), with its vertical datum and accuracy. |
get_weatherread-only | Current weather and a daily forecast for a point (Open-Meteo, no key needed). |
isochroneread-only | Where can you get to from a point within N minutes on foot, by bike or by car? Returns one polygon per contour with its geodesic area (Valhalla over OpenStreetMap). |
line_of_sightread-only | Whether A and B can see each other over the terrain (Copernicus 30 m DEM, curvature and refraction), the minimum clearance and where it occurs; with frequency_mhz, the first Fresnel zone clearance of a radio link (60% clear is the usual rule). |
location_reportread-only | A dossier for a place: address, elevation, weather, and nearby amenities with exact distances, as a GeoJSON map layer listing every data source used. Takes ~10-30 s. |
overture_featuresread-only | Open global map data from Overture Maps, no API key: points of interest (with categories), building footprints (height, floors, geodesic footprint area), road and path segments (geodesic length), or `divisions`, the administrative areas containing the point (country, region, city, neighbourhood). Results are nearest first, with distances in metres. Can take 5-20 s on a cold cache. |
reverse_geocoderead-only | Find the address or place at a coordinate (OpenStreetMap Nominatim). |
routeread-only | Driving route between two points (OSRM over OpenStreetMap): line geometry, distance in metres and duration in seconds. |
select_siteread-only | Rank candidate sites in an area by geodesic distance to amenities you want nearby and away from ones to avoid (OpenStreetMap data). Takes ~10-30 s. |
spatial_operationread-only | Compute a buffer (shape-preserving, metres), geodesic area or length, centroid or convex hull. Returns the resulting geometry as GeoJSON with its measurements and units. |
sun_positionread-only | The Sun's apparent elevation and azimuth (from true north) at a place and time, and the shadow a vertical object casts on level ground (NOAA solar position, refraction included). |
sun_timesread-only | Sunrise, solar noon, sunset and day length on a date for a flat horizon; with terrain=True, also the hours of direct sun once hills are taken into account. |
terrain_horizonread-only | The skyline the terrain makes around a point: for each azimuth, the elevation angle of the horizon and how far away the blocking terrain is (Copernicus 30 m DEM, Earth curvature and refraction). Use for solar-panel shading, valley sunlight, or what hills hide. ~10-60 s. |
transform_coordinatesread-only | Convert coordinates between CRSs as the official transformation does: GDA94 to GDA2020, MGA zones, British National Grid (OSTN15), NAD27 to NAD83 (NADCON), ITRF at an epoch, and any other EPSG pair. Uses national grids (downloaded once), refuses PROJ's ballpark approximations, and returns the operation and its stated accuracy. Use this instead of applying datum parameters yourself. |
travel_time_matrixread-only | Network travel time (minutes) and distance (metres) from each origin to each destination. Note: points here are [latitude, longitude] pairs. |
Schemas: list_tools.
{
"name": "io.github.Maz2580/geospark",
"title": "GeoSpark",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://geospark.terrascout.app/mcp",
"type": "streamable-http"
}
],
"version": "0.8.0",
"repository": {
"url": "https://github.com/Maz2580/geospark",
"source": "github"
},
"websiteUrl": "https://geospark.terrascout.app",
"description": "Verifiable geospatial tools: distances, topology, isochrones, Overture Maps, with sources."
}