# GeoSpark (remote · geospark.terrascout.app)

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

- Trust score: 75/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `geospark.terrascout.app`: 75/100 (this document), [markdown](https://verifymcp.io/servers/maz2580-geospark/geospark.md), [page](https://verifymcp.io/servers/maz2580-geospark/geospark)

## Channel facts

- Endpoint: `https://geospark.terrascout.app/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.8.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2841 tokens (~135/item across 21 items; 21 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 43/100
  - Stability observed for 13 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 95/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 84% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 21 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the GeoSpark MCP server?

GeoSpark is a hosted endpoint at https://geospark.terrascout.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http maz2580-geospark 'https://geospark.terrascout.app/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "maz2580-geospark": {
      "url": "https://geospark.terrascout.app/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "maz2580-geospark": {
      "type": "http",
      "url": "https://geospark.terrascout.app/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.maz2580-geospark]
url = "https://geospark.terrascout.app/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "maz2580-geospark": {
      "type": "remote",
      "url": "https://geospark.terrascout.app/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add maz2580-geospark --url 'https://geospark.terrascout.app/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  maz2580-geospark:
    url: "https://geospark.terrascout.app/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "maz2580-geospark": {
      "Transport": "http",
      "Url": "https://geospark.terrascout.app/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add maz2580-geospark -t streamable-http -u 'https://geospark.terrascout.app/mcp'
```

### Other

```json
{
  "mcpServers": {
    "maz2580-geospark": {
      "type": "http",
      "url": "https://geospark.terrascout.app/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-11-03 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-31 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-29 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-27 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-25 (score 70, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] Schema quality: 2149 → 2841
- [functional improvement] Tool coverage: 79% → 84%
- [functional] Server version: 0.9.0 → 0.10.0
- [functional] New tool “line_of_sight”
- [functional] New tool “sun_position”
- [functional] New tool “sun_times”
- [functional] New tool “terrain_horizon”

### 2026-10-24 (score 69, 0)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional regression] Schema quality: 109 → 126
- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 0.8.0 → 0.9.0
- [functional] New tool “convert_height”
- [functional] New tool “transform_coordinates”

### 2026-10-23 (score 69)

First indexed and scored.

## MCP tools (21)

### `calculate_distance` (~238 tokens)

Geodesic distance

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.

Input parameters:

- `place_a`: A place NAME, e.g. 'Adelaide Oval'; geocoded on the server (preferred)
- `place_b`: A place NAME, e.g. 'Adelaide Oval'; geocoded on the server (preferred)
- `point_a`: A GeoJSON geometry, e.g. {"type": "Point", "coordinates": [lon, lat]}; only for coordinates the user gave or a tool returned
- `point_b`: A GeoJSON geometry, e.g. {"type": "Point", "coordinates": [lon, lat]}; only for coordinates the user gave or a tool returned

Output parameters:

- `distance_km` (number)
- `distance_m` (number): Geodesic distance in metres (WGS84 ellipsoid)
- `places` (array): Named places as geocoded on the server: query, display_name, coordinates [lon, lat]
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `status` (string)
- `units` (object): Unit of each numeric field
- `warnings` (array): Caveats to tell the user

### `check_spatial_relationship` (~121 tokens)

Topological relationship

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.

Input parameters:

- `geometry_a` (object, required): A GeoJSON geometry, e.g. {"type": "Point", "coordinates": [lon, lat]}
- `geometry_b` (object, required): A GeoJSON geometry, e.g. {"type": "Point", "coordinates": [lon, lat]}
- `relationship` (string, required)

Output parameters:

- `holds` (boolean): Whether geometry_a <relationship> geometry_b is true
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `relationship` (string)
- `status` (string)
- `units` (object): Unit of each numeric field
- `warnings` (array): Caveats to tell the user

### `spatial_operation` (~90 tokens)

Geometry operation

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.

Input parameters:

- `geometry` (object, required): A GeoJSON geometry, e.g. {"type": "Point", "coordinates": [lon, lat]}
- `operation` (string, required)
- `radius_m`: Buffer radius in metres

Output parameters:

- `bbox`
- `features` (array)
- `geospark` (object)
- `type` (string)

### `geocode` (~79 tokens)

Geocode a place

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.

Input parameters:

- `limit` (integer)
- `query` (string, required): Address or place name

Output parameters:

- `bbox`
- `features` (array)
- `geospark` (object)
- `type` (string)

### `reverse_geocode` (~53 tokens)

Reverse geocode

Find the address or place at a coordinate (OpenStreetMap Nominatim).

Input parameters:

- `latitude` (number, required): Latitude in degrees (WGS84)
- `longitude` (number, required): Longitude in degrees (WGS84)

Output parameters:

- `bbox`
- `features` (array)
- `geospark` (object)
- `type` (string)

### `get_elevation` (~64 tokens)

Elevation

Ground elevation in metres (Copernicus GLO-30, Open Elevation fallback), with its
        vertical datum and accuracy.

Input parameters:

- `latitude` (number, required): Latitude in degrees (WGS84)
- `longitude` (number, required): Longitude in degrees (WGS84)

Output parameters:

- `attribution`
- `elevation_m`
- `latitude` (number)
- `longitude` (number)
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `quality` (object): e.g. vertical_accuracy_le90_m
- `status` (string)
- `units` (object): Unit of each numeric field
- `vertical_datum`
- `warnings` (array): Caveats to tell the user

### `route` (~97 tokens)

Driving route

Driving route between two points (OSRM over OpenStreetMap): line geometry, distance
        in metres and duration in seconds.

Input parameters:

- `from_latitude` (number, required): Latitude in degrees (WGS84)
- `from_longitude` (number, required): Longitude in degrees (WGS84)
- `to_latitude` (number, required): Latitude in degrees (WGS84)
- `to_longitude` (number, required): Longitude in degrees (WGS84)

Output parameters:

- `bbox`
- `features` (array)
- `geospark` (object)
- `type` (string)

### `get_weather` (~63 tokens)

Weather

Current weather and a daily forecast for a point (Open-Meteo, no key needed).

Input parameters:

- `forecast_days` (integer)
- `latitude` (number, required): Latitude in degrees (WGS84)
- `longitude` (number, required): Longitude in degrees (WGS84)

Output parameters:

- `channel` (string)
- `features` (array): Records from the data source
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `query` (object)
- `status` (string)
- `total_results` (integer)
- `units` (object): Unit of each numeric field
- `warnings` (array): Caveats to tell the user

### `get_air_quality` (~75 tokens)

Air quality

Latest PM2.5, NO2, O3 from the nearest monitoring stations (OpenAQ; the server needs
        an OPENAQ_API_KEY), with each station's data licence.

Input parameters:

- `latitude` (number, required): Latitude in degrees (WGS84)
- `longitude` (number, required): Longitude in degrees (WGS84)

Output parameters:

- `channel` (string)
- `features` (array): Records from the data source
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `query` (object)
- `status` (string)
- `total_results` (integer)
- `units` (object): Unit of each numeric field
- `warnings` (array): Caveats to tell the user

### `get_active_fires` (~67 tokens)

Active fires

Satellite active-fire detections near a point (NASA FIRMS; the server needs a FIRMS_MAP_KEY).

Input parameters:

- `days` (integer)
- `latitude` (number, required): Latitude in degrees (WGS84)
- `longitude` (number, required): Longitude in degrees (WGS84)

Output parameters:

- `channel` (string)
- `features` (array): Records from the data source
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `query` (object)
- `status` (string)
- `total_results` (integer)
- `units` (object): Unit of each numeric field
- `warnings` (array): Caveats to tell the user

### `isochrone` (~100 tokens)

Isochrone (reachable area)

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).

Input parameters:

- `latitude` (number, required): Latitude in degrees (WGS84)
- `longitude` (number, required): Longitude in degrees (WGS84)
- `minutes` (array): Contour times, 1-60
- `mode` (string)

Output parameters:

- `bbox`
- `features` (array)
- `geospark` (object)
- `type` (string)

### `travel_time_matrix` (~74 tokens)

Travel-time matrix

Network travel time (minutes) and distance (metres) from each origin to each destination.
        Note: points here are [latitude, longitude] pairs.

Input parameters:

- `destinations` (array, required): [[lat, lon], ...]
- `mode` (string)
- `origins` (array, required): [[lat, lon], ...]

Output parameters:

- `bbox`
- `features` (array)
- `geospark` (object)
- `type` (string)

### `overture_features` (~167 tokens)

Overture Maps features

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.

Input parameters:

- `category`: Places only, e.g. 'cafe'
- `latitude` (number, required): Latitude in degrees (WGS84)
- `limit`
- `longitude` (number, required): Longitude in degrees (WGS84)
- `radius_m` (number): Search radius in metres
- `theme` (string, required)

Output parameters:

- `bbox`
- `features` (array)
- `geospark` (object)
- `type` (string)

### `transform_coordinates` (~224 tokens)

Transform coordinates (official datums)

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.

Input parameters:

- `coordinates` (array, required): [x, y] or [x, y, z]: [lon, lat] or [easting, northing]
- `epoch`: Decimal year, for ITRF/ATRF frames
- `source_crs` (string, required): CRS name or EPSG code, e.g. 'GDA94 / MGA zone 55' or EPSG:28355
- `target_crs` (string, required): CRS name or EPSG code, e.g. 'GDA2020 / MGA zone 55' or EPSG:7855

Output parameters:

- `accuracy_m`: The operation's stated accuracy; null for an exact conversion
- `area_of_use`
- `coordinates` (array): Transformed points, in the target CRS's x/y(/z) order
- `grids` (array): Official grid files the operation used
- `method` (string): The EPSG operation used
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `source_crs` (string)
- `status` (string)
- `target_crs` (string)
- `units` (object): Unit of each numeric field
- `warnings` (array): Caveats to tell the user

### `convert_height` (~213 tokens)

Convert height (geoid models)

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.

Input parameters:

- `from_reference` (string, required): 'ellipsoidal', AHD, ODN, NZVD2016, NAVD88 or EGM2008
- `height_m` (number, required): The height to convert, in metres
- `latitude` (number, required): Latitude in degrees (WGS84)
- `longitude` (number, required): Longitude in degrees (WGS84)
- `to_reference` (string, required): 'ellipsoidal', AHD, ODN, NZVD2016, NAVD88 or EGM2008

Output parameters:

- `accuracy_m`
- `from_reference` (string)
- `geoid_model` (string)
- `grids` (array)
- `height_m` (number)
- `method` (string)
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `separation_m` (number): Ellipsoidal height minus the datum height at this point
- `status` (string)
- `to_reference` (string)
- `units` (object): Unit of each numeric field
- `warnings` (array): Caveats to tell the user

### `sun_position` (~152 tokens)

Sun position and shadow

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).

Input parameters:

- `latitude` (number, required): Latitude in degrees (WGS84)
- `longitude` (number, required): Longitude in degrees (WGS84)
- `object_height_m`: Height of a vertical object, for its shadow
- `time` (string, required): ISO 8601, with a UTC offset (2026-12-21T12:00:00+11:00) or local with tz
- `tz`: IANA time zone for a local time, e.g. Australia/Melbourne

Output parameters:

- `above_horizon` (boolean)
- `azimuth_deg` (number): Clockwise from true north
- `declination_deg` (number)
- `elevation_deg` (number): Apparent elevation above a flat horizon, refraction included
- `equation_of_time_min` (number)
- `method` (string)
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `shadow_direction_deg`: Direction the shadow points, from true north
- `shadow_length_m`: On level ground, for object_height_m
- `status` (string)
- `time` (string)
- `units` (object): Unit of each numeric field
- `warnings` (array): Caveats to tell the user

### `sun_times` (~131 tokens)

Sunrise, sunset and hours of sun

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.

Input parameters:

- `date` (string, required): Local date, YYYY-MM-DD
- `latitude` (number, required): Latitude in degrees (WGS84)
- `longitude` (number, required): Longitude in degrees (WGS84)
- `terrain` (boolean): Also count hours of direct sun above the terrain horizon (reads the DEM; ~10-60 s)
- `tz`: IANA time zone, e.g. Australia/Melbourne; default UTC

Output parameters:

- `date` (string)
- `day_length_h` (number)
- `first_direct_sun`
- `last_direct_sun`
- `method` (string)
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `solar_noon` (string)
- `solar_noon_elevation_deg` (number)
- `status` (string)
- `sunrise`
- `sunset`
- `terrain_hours`: Hours of direct sun above the terrain horizon
- `time_zone` (string)
- `units` (object): Unit of each numeric field
- `warnings` (array): Caveats to tell the user

### `terrain_horizon` (~144 tokens)

Terrain horizon

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.

Input parameters:

- `latitude` (number, required): Latitude in degrees (WGS84)
- `longitude` (number, required): Longitude in degrees (WGS84)
- `max_distance_m` (number)
- `observer_height_m` (number): Eye or sensor height above ground
- `step_deg` (number): Azimuth spacing; must divide 360

Output parameters:

- `azimuths_deg` (array)
- `ground_elevation_m` (number)
- `highest` (object)
- `horizon_elevation_deg` (array): Skyline elevation angle at each azimuth
- `latitude` (number)
- `longitude` (number)
- `max_distance_m` (number)
- `method` (string)
- `observer_height_m` (number)
- `obstruction_distance_m` (array)
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `status` (string)
- `units` (object): Unit of each numeric field
- `warnings` (array): Caveats to tell the user

### `line_of_sight` (~183 tokens)

Line of sight

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).

Input parameters:

- `frequency_mhz`: For a radio link: report first Fresnel zone clearance
- `height_a_m` (number): Height above ground at A (e.g. a mast)
- `height_b_m` (number): Height above ground at B
- `lat_a` (number, required): Latitude in degrees (WGS84)
- `lat_b` (number, required): Latitude in degrees (WGS84)
- `lon_a` (number, required): Longitude in degrees (WGS84)
- `lon_b` (number, required): Longitude in degrees (WGS84)

Output parameters:

- `bearing_deg` (number)
- `distance_m` (number)
- `fresnel`
- `method` (string)
- `min_clearance_at` (object)
- `min_clearance_m` (number): Smallest gap between the sight line and the terrain; negative = blocked
- `provenance` (array): Source, licence, attribution, retrieval time and method
- `status` (string)
- `units` (object): Unit of each numeric field
- `visible` (boolean)
- `warnings` (array): Caveats to tell the user

### `location_report` (~66 tokens)

Location report

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.

Input parameters:

- `location` (string, required): Place to analyse
- `radius_m` (number)

Output parameters:

- `bbox`
- `features` (array)
- `geospark` (object)
- `type` (string)

### `select_site` (~99 tokens)

Site selection

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.

Input parameters:

- `avoid` (array): Amenity types to stay away from
- `facility_type` (string)
- `near` (array): Amenity types to be close to
- `radius_m` (number)
- `within` (string, required): City or neighbourhood

Output parameters:

- `bbox`
- `features` (array)
- `geospark` (object)
- `type` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/maz2580-geospark/geospark#diagnostics

## Score history

- 2026-11-05: 75
- 2026-11-04: 74
- 2026-11-03: 74
- 2026-11-02: 73
- 2026-11-01: 73
- 2026-10-31: 73
- 2026-10-30: 72
- 2026-10-29: 72
- 2026-10-28: 71
- 2026-10-27: 71
- 2026-10-26: 70
- 2026-10-25: 70
- 2026-10-24: 69
- 2026-10-23: 69

## Common questions

### What is the GeoSpark MCP server?

GeoSpark is an MCP server listed in the public MCP registry as io.github.Maz2580/geospark. Verifiable geospatial tools: distances, topology, isochrones, Overture Maps, with sources. This page covers its hosted endpoint (https://geospark.terrascout.app/mcp).

### Is the GeoSpark MCP server safe to use?

GeoSpark scores 75 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the GeoSpark MCP server expose?

GeoSpark exposes 21 tools: calculate_distance, check_spatial_relationship, spatial_operation, geocode, reverse_geocode, and 16 more. Their descriptions and schemas cost roughly 2,500 tokens of context every time the server is loaded.

### Does the GeoSpark MCP server require authentication?

No. We connected to GeoSpark without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the GeoSpark MCP server still maintained?

GeoSpark is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://geospark.terrascout.app/mcp
- Repository: https://github.com/Maz2580/geospark
- Website: https://geospark.terrascout.app/
- Changelog RSS feed: https://verifymcp.io/servers/maz2580-geospark/geospark.xml
- Changelog JSON feed: https://verifymcp.io/servers/maz2580-geospark/geospark.json
- HTML version of this page: https://verifymcp.io/servers/maz2580-geospark/geospark
