io.github.Maz2580/geospark

GeoSpark

Verifiable geospatial tools: distances, topology, isochrones, Overture Maps, with sources.

Endpointhttps://geospark.terrascout.app/mcp (streamable-http)
Registry version0.8.0
Now21 tools · grade A (92) · pin ts_1c74dfa476a25a067b99a89fa93fdd82 · protocol 2025-06-18
First / last listed2026-10-27 03:30 UTC / 2026-10-27 03:30 UTC
Grade over time2026-10-27: A (92), 21 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-27 03:30 UTC
21 tools, grade A (92)

Tools: calculate_distance check_spatial_relationship spatial_operation geocode reverse_geocode get_elevation route get_weather get_air_quality get_active_fires isochrone travel_time_matrix overture_features transform_coordinates convert_height sun_position sun_times terrain_horizon line_of_sight location_report select_site

Current tools (21)

calculate_distanceExact 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 distanc
params: place_a, place_b, point_a, point_b
check_spatial_relationshipGround-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.
params: geometry_a*, geometry_b*, relationship*
spatial_operationCompute a buffer (shape-preserving, metres), geodesic area or length, centroid or convex hull. Returns the resulting geometry as GeoJSON with its measurements and units.
params: operation*, geometry*, radius_m
geocodeFind 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.
params: query*, limit
reverse_geocodeFind the address or place at a coordinate (OpenStreetMap Nominatim).
params: latitude*, longitude*
get_elevationGround elevation in metres (Copernicus GLO-30, Open Elevation fallback), with its vertical datum and accuracy.
params: latitude*, longitude*
routeDriving route between two points (OSRM over OpenStreetMap): line geometry, distance in metres and duration in seconds.
params: from_latitude*, from_longitude*, to_latitude*, to_longitude*
get_weatherCurrent weather and a daily forecast for a point (Open-Meteo, no key needed).
params: latitude*, longitude*, forecast_days
get_air_qualityLatest PM2.5, NO2, O3 from the nearest monitoring stations (OpenAQ; the server needs an OPENAQ_API_KEY), with each station's data licence.
params: latitude*, longitude*
get_active_firesSatellite active-fire detections near a point (NASA FIRMS; the server needs a FIRMS_MAP_KEY).
params: latitude*, longitude*, days
isochroneWhere 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).
params: latitude*, longitude*, minutes, mode
travel_time_matrixNetwork travel time (minutes) and distance (metres) from each origin to each destination. Note: points here are [latitude, longitude] pairs.
params: origins*, destinations*, mode
overture_featuresOpen 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 o
params: theme*, latitude*, longitude*, radius_m, category, limit
transform_coordinatesConvert 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 para
params: source_crs*, target_crs*, coordinates*, epoch
convert_heightConvert 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.
params: latitude*, longitude*, height_m*, from_reference*, to_reference*
sun_positionThe 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).
params: latitude*, longitude*, time*, tz, object_height_m
sun_timesSunrise, 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.
params: latitude*, longitude*, date*, tz, terrain
terrain_horizonThe 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.
params: latitude*, longitude*, observer_height_m, max_distance_m, step_deg
line_of_sightWhether 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).
params: lat_a*, lon_a*, lat_b*, lon_b*, height_a_m, height_b_m, frequency_mhz
location_reportA 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.
params: location*, radius_m
select_siteRank 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.
params: within*, near, avoid, facility_type, radius_m

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.