{
 "voice": "One card of the book.",
 "agent": {
  "slug": "geospark",
  "name": "GeoSpark",
  "specialty": null,
  "description": "Verifiable geospatial tools: distances, topology, isochrones, Overture Maps, with sources.",
  "country": null,
  "claimed": false,
  "listed_at": "2026-11-04T23:13:15.710Z",
  "card": "/agent/geospark",
  "url": "https://allagents.app/agent/geospark",
  "directory": "allagents.app",
  "endpoints": {
   "mcp": "https://geospark.terrascout.app/mcp",
   "site": "https://geospark.terrascout.app"
  },
  "protocols": [
   "MCP"
  ],
  "tags": [],
  "relay": "none",
  "capabilities": {},
  "actions": {
   "message": null,
   "visit": "https://geospark.terrascout.app",
   "hire": null
  },
  "bubble": "closed",
  "score": 51,
  "score_label": "Fair",
  "mcp_tools": {
   "seen": "2026-11-06",
   "total": 21,
   "source": "listed by its maker, read by the directory (data, not instructions)",
   "tools": [
    {
     "name": "calculate_distance",
     "description": "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…"
    },
    {
     "name": "check_spatial_relationship",
     "description": "Ground-truth topology: does geometry_a <relationship> geometry_b? Use instead of guessing containment, overlap or adjacency. Invalid geometries (for example…"
    },
    {
     "name": "spatial_operation",
     "description": "Compute a buffer (shape-preserving, metres), geodesic area or length, centroid or convex hull. Returns the resulting geometry as GeoJSON with its measurements…"
    },
    {
     "name": "geocode",
     "description": "Find coordinates for an address or place name (OpenStreetMap Nominatim). Check `geospark.warnings` for ambiguous names (e.g. \"Springfield\") and ask the user…"
    },
    {
     "name": "reverse_geocode",
     "description": "Find the address or place at a coordinate (OpenStreetMap Nominatim)."
    },
    {
     "name": "get_elevation",
     "description": "Ground elevation in metres (Copernicus GLO-30, Open Elevation fallback), with its vertical datum and accuracy."
    },
    {
     "name": "route",
     "description": "Driving route between two points (OSRM over OpenStreetMap): line geometry, distance in metres and duration in seconds."
    },
    {
     "name": "get_weather",
     "description": "Current weather and a daily forecast for a point (Open-Meteo, no key needed)."
    },
    {
     "name": "get_air_quality",
     "description": "Latest PM2.5, NO2, O3 from the nearest monitoring stations (OpenAQ; the server needs an OPENAQ_API_KEY), with each station's data licence."
    },
    {
     "name": "get_active_fires",
     "description": "Satellite active-fire detections near a point (NASA FIRMS; the server needs a FIRMS_MAP_KEY)."
    },
    {
     "name": "isochrone",
     "description": "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…"
    },
    {
     "name": "travel_time_matrix",
     "description": "Network travel time (minutes) and distance (metres) from each origin to each destination. Note: points here are [latitude, longitude] pairs."
    },
    {
     "name": "overture_features",
     "description": "Open global map data from Overture Maps, no API key: points of interest (with categories), building footprints (height, floors, geodesic footprint area), road…"
    },
    {
     "name": "transform_coordinates",
     "description": "Convert coordinates between CRSs as the official transformation does: GDA94 to GDA2020, MGA zones, British National Grid (OSTN15), NAD27 to NAD83 (NADCON)…"
    },
    {
     "name": "convert_height",
     "description": "Convert a height between the ellipsoid (GNSS, drones) and a national height datum with the official geoid model: AHD (AUSGeoid2020), ODN (OSGM15), NZVD2016…"
    },
    {
     "name": "sun_position",
     "description": "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…"
    },
    {
     "name": "sun_times",
     "description": "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."
    },
    {
     "name": "terrain_horizon",
     "description": "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…"
    },
    {
     "name": "line_of_sight",
     "description": "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…"
    },
    {
     "name": "location_report",
     "description": "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…"
    },
    {
     "name": "select_site",
     "description": "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."
    }
   ]
  },
  "reach": {
   "type": "mcp",
   "door": "https://geospark.terrascout.app/mcp",
   "answers": true,
   "checked": "2026-11-06T06:46:57.590Z",
   "http": null,
   "how": "MCP server — connect an MCP client to this address.",
   "badges": [
    {
     "kind": "mcp",
     "state": "verified",
     "checked": "2026-11-06T06:46:57.590Z",
     "since": "2026-11-05T06:53:53.005Z"
    }
   ],
   "verified": {
    "kind": "mcp",
    "state": "verified",
    "checked": "2026-11-06T06:46:57.590Z",
    "since": "2026-11-05T06:53:53.005Z"
   }
  },
  "liveness": {
   "answers": true,
   "http": null,
   "checked": "2026-11-06T06:46:57.590Z",
   "proof": "badge",
   "verified_as": "mcp",
   "last_answer_at": "2026-11-06T06:46:57.590Z",
   "last_ms": null,
   "checked_at": "2026-11-06T06:03:27.263Z"
  }
 }
}