# TerraLab (remote · mcp.terra-lab.ai)

Map data ready for QGIS: open data extracts, GIS files, coordinates, elevation, French parcels.

- Trust score: 68/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- remote · `mcp.terra-lab.ai`: 68/100 (this document), [markdown](https://verifymcp.io/servers/ai-terra-lab-terralab/mcp.md), [page](https://verifymcp.io/servers/ai-terra-lab-terralab/mcp)

## Channel facts

- Endpoint: `https://mcp.terra-lab.ai/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.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-10-18.

- **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**: 44/100
  - 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2223 tokens (~317/item across 7 items; 6 tools + 1 resources), over budget; trim descriptions and params.
  - Tools include usage examples.
- **Stability & Change Management**: 20/100
  - Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% 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 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.
  - Supports UI / widget rendering.

## Install

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

TerraLab is a hosted endpoint at https://mcp.terra-lab.ai/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 ai-terra-lab-terralab 'https://mcp.terra-lab.ai/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "ai-terra-lab-terralab": {
      "url": "https://mcp.terra-lab.ai/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "ai-terra-lab-terralab": {
      "type": "http",
      "url": "https://mcp.terra-lab.ai/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.ai-terra-lab-terralab]
url = "https://mcp.terra-lab.ai/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ai-terra-lab-terralab": {
      "type": "remote",
      "url": "https://mcp.terra-lab.ai/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ai-terra-lab-terralab --url 'https://mcp.terra-lab.ai/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  ai-terra-lab-terralab:
    url: "https://mcp.terra-lab.ai/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "ai-terra-lab-terralab": {
      "Transport": "http",
      "Url": "https://mcp.terra-lab.ai/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add ai-terra-lab-terralab -t streamable-http -u 'https://mcp.terra-lab.ai/mcp'
```

### Other

```json
{
  "mcpServers": {
    "ai-terra-lab-terralab": {
      "type": "http",
      "url": "https://mcp.terra-lab.ai/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-10-17 (score 68, +1)

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

### 2026-10-14 (score 67, +1)

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

### 2026-10-13 (score 66, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-12 (score 66)

First indexed and scored.

## MCP tools (6)

### `find_places` (~380 tokens)

Find places and addresses

Use this when the user asks to put, pin or plot places or addresses on an interactive map with their coordinates, wants the coordinates of an address or place name, the address at given coordinates, or a whole list of addresses (up to 100, pasted or as CSV with an address column) placed on a map. Worldwide, OpenStreetMap data; French street addresses are refined with the national address base. Shows the points on a map; for a list, gives a CSV with latitude and longitude added (opens directly in QGIS as a delimited text layer), plus KML and GeoJSON. Not for weather, opening hours, reviews, driving or travel directions and times, property prices, or general knowledge about a place (history, facts, travel advice): answer those without this tool. Never use the user's current location unless they type it. Download links build their file when opened; no file is saved. Never pass these links to open_gis_file.

Input parameters:

- `addresses` (array): A list of addresses to place, up to 100. The place the user asks about, not the user's own location.
- `latitude` (number): Latitude for a reverse lookup. The place the user asks about, not the user's own location.
- `limit` (integer): For a single query: maximum number of matches.
- `longitude` (number): Longitude for a reverse lookup. The place the user asks about, not the user's own location.
- `query` (string): One address or place name. The place the user asks about, not the user's own location.
- `text` (string): A list as text: one address per line, or CSV with an address column. The place the user asks about, not the user's own location.
- `title` (string): For a list: map title, also used for file names.

Output parameters:

- `code` (string): Error code, on errors only.
- `downloads` (array): Download links; each builds its file when opened.
- `hint` (string): What to do next, on errors only.
- `message` (string): Error message, on errors only.
- `sources` (array): Data sources and licences of the result.
- `totalFound` (number)
- `truncated` (boolean)

### `convert_coordinates` (~373 tokens)

Convert coordinates

Use this when the user gives coordinates in any common format (decimal degrees, degrees minutes seconds, UTM, MGRS, Lambert 93, "lat, lon" or "lon, lat") and wants them in another format or projection. The format of each line is detected automatically; for a national grid the numbers alone cannot reveal (Dutch RD, Swiss LV95, British National Grid, Polish 1992, Belgian Lambert 72) or a UTM zone given apart from the numbers, set source_epsg. Converts up to 1,000 lines to decimal degrees, DMS, UTM and MGRS (1 m), and optionally to an EPSG code. Also recommends the local projected CRS for working in QGIS. Returns a CSV and a GeoJSON download (both open directly in QGIS) and a map. Needs actual coordinates: to explain what a CRS, a projection or an EPSG code is, answer without this tool. Download links build their file when opened; no file is saved. Never pass these links to open_gis_file.

Input parameters:

- `source_epsg` (string): Optional system the input is in, as an EPSG code, when it cannot be detected: Dutch RD EPSG:28992, Swiss LV95 EPSG:2056, British National Grid EPSG:27700, Poland 1992 EPSG:2180, UTM zone 32N EPSG:326…
- `target_epsg` (string): Optional extra output system as an EPSG code.
- `text` (string, required): One coordinate per line, up to 1,000 lines. A label may follow the numbers.

Output parameters:

- `code` (string): Error code, on errors only.
- `downloads` (array): Download links; each builds its file when opened.
- `hint` (string): What to do next, on errors only.
- `message` (string): Error message, on errors only.
- `sources` (array): Data sources and licences of the result.
- `totalFound` (number)
- `truncated` (boolean)

### `get_elevation` (~403 tokens)

Elevation, profile and contour lines

Use this when the user wants the altitude of places, an elevation profile (cross-section) between two or more points (min, max, total ascent and descent), or the terrain of an area: contour lines (topographic lines) and slope statistics (how steep or flat it is). mode "point": up to 100 points. mode "path": 2 or more points, sampled into at most 500 samples, with a profile chart. mode "area": a bbox or a place with a radius, up to about 10 x 10 km, with interval_m between lines; one area call answers how steep a site is. Data: Copernicus DEM, a 30 m surface model worldwide. Contours download as Shapefile, GeoJSON or KML, which open directly in QGIS. Needs a place, coordinates or an area: to explain what a DEM, a DSM or contour lines are, answer without this tool. Never use the user's current location unless they type it. Give the place as the user names it (place name, address or coordinates): this tool locates it, so find_places is not needed first. Download links build their file when opened; no file is saved. Never pass these links to open_gis_file.

Input parameters:

- `area` (object): For area: The area: a bbox, or a place (name, address or coordinates) with an optional radius in metres. The place the user asks about, not the user's own location.
- `interval_m` (number): For area: vertical interval between contour lines, in metres.
- `mode` (string): point: elevation of each point; path: profile along the points; area: contour lines and slope statistics.
- `points` (array): For point and path: points or place names. The place the user asks about, not the user's own location.
- `samples` (integer): For path: number of samples along the path.

Output parameters:

- `code` (string): Error code, on errors only.
- `downloads` (array): Download links; each builds its file when opened.
- `hint` (string): What to do next, on errors only.
- `message` (string): Error message, on errors only.
- `sources` (array): Data sources and licences of the result.
- `totalFound` (number)
- `truncated` (boolean)

### `extract_open_data` (~413 tokens)

Extract open map data for an area

Use this when the user wants open geographic data for an area anywhere in the world: buildings, places, roads, addresses, administrative divisions, land use, points of interest, waterways, water areas, power lines, boundaries, railways, routes, transit stops or protected areas. The area is a bbox, a place, or a place with a radius. Returns the count, sample attributes, a map and a file (GeoJSON, KML, Shapefile zip or CSV) with its licence. One extract holds at most 20,000 features: for a town centre use a radius of about 1 km, for dense cities less. For one kind of place (pharmacies, schools, supermarkets) or land (forest, vineyards), set kind. One theme per call: extract the layers the user asks for; when they ask what data exists for a project, name the useful themes and let them choose before extracting several. Data: Overture Maps and OpenStreetMap. Never use the user's current location unless they type it. Give the place as the user names it (place name, address or coordinates): this tool locates it, so find_places is not needed first. Download links build their file when opened; no file is saved. Never pass these links to open_gis_file: list every format the user needs in formats, in this one call.

Input parameters:

- `area` (object, required): The area: a bbox, or a place (name, address or coordinates) with an optional radius in metres. The place the user asks about, not the user's own location.
- `formats` (array): Download formats.
- `kind`: Keep only some kinds of feature, matched against their OpenStreetMap tag value in English: pharmacy, school, supermarket, restaurant, hospital, farmland, forest, vineyard. One kind, or several in one…
- `theme` (string, required): The data layer.

Output parameters:

- `code` (string): Error code, on errors only.
- `downloads` (array): Download links; each builds its file when opened.
- `hint` (string): What to do next, on errors only.
- `message` (string): Error message, on errors only.
- `sources` (array): Data sources and licences of the result.
- `totalFound` (number)
- `truncated` (boolean)

### `open_gis_file` (~356 tokens)

Open, map and convert GIS data

Use this when the user shares or links a geographic file (GeoJSON, KML, KMZ, GPX, zipped Shapefile, CSV with coordinates, WKT), pastes its content, or has a list of points or GeoJSON to put on a map, and wants to see it, understand it (format, coordinate system, extent, feature count, geometry types, fields, problems) or convert it to GeoJSON, KML, KMZ, GPX, Shapefile zip or CSV. Shapefile, GeoJSON, KML and CSV outputs open directly in QGIS. Also covers long tracks or point lists too big to write in the chat. Files up to 50 MB. Never use the user's current location unless they type it. Download links build their file when opened; no file is saved. TerraLab reads the file or link to answer and keeps no copy.

Input parameters:

- `convert_to` (array): Output formats wanted.
- `file` (object): A file uploaded in the conversation.
- `file_name` (string): Optional name of the file, used to name the outputs.
- `geojson` (object): A GeoJSON FeatureCollection, Feature or geometry in WGS 84, given as an object.
- `points` (array): Points to show and convert, with a name. The places the user asks about, not the user's own location.
- `text` (string): The file content pasted as text (GeoJSON, KML, GPX, CSV or WKT).
- `title` (string): Name for the map and the output files when there is no file name.
- `url` (string): A public http(s) link to the file.

Output parameters:

- `code` (string): Error code, on errors only.
- `downloads` (array): Download links; each builds its file when opened.
- `hint` (string): What to do next, on errors only.
- `message` (string): Error message, on errors only.
- `sources` (array): Data sources and licences of the result.
- `totalFound` (number)
- `truncated` (boolean)

### `french_parcel` (~225 tokens)

French cadastral parcel and zoning

Use this when the user asks about the cadastral parcel (parcelle cadastrale) at an address or point in France: parcel id, commune, section, number, cadastral area, and the local urban plan zone (PLU or PLUi zone: label, type, document). Shows the parcel on a map with GeoJSON and KML downloads. France only. Never returns owners or property sales. Never use the user's current location unless they type it. Give the place as the user names it (place name, address or coordinates): this tool locates it, so find_places is not needed first. Download links build their file when opened; no file is saved. Never pass these links to open_gis_file.

Input parameters:

- `address` (string): An address in France. The place the user asks about, not the user's own location.
- `latitude` (number): Latitude in France. The place the user asks about, not the user's own location.
- `longitude` (number): Longitude in France. The place the user asks about, not the user's own location.

Output parameters:

- `code` (string): Error code, on errors only.
- `downloads` (array): Download links; each builds its file when opened.
- `hint` (string): What to do next, on errors only.
- `message` (string): Error message, on errors only.
- `sources` (array): Data sources and licences of the result.
- `totalFound` (number)
- `truncated` (boolean)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/ai-terra-lab-terralab/mcp#diagnostics

## Score history

- 2026-10-18: 68
- 2026-10-17: 68
- 2026-10-16: 67
- 2026-10-15: 67
- 2026-10-14: 67
- 2026-10-13: 66
- 2026-10-12: 66

## Common questions

### What is the TerraLab MCP server?

TerraLab is an MCP server listed in the public MCP registry as ai.terra-lab/terralab. Map data ready for QGIS: open data extracts, GIS files, coordinates, elevation, French parcels. This page covers its hosted endpoint (https://mcp.terra-lab.ai/mcp).

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

TerraLab scores 68 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 TerraLab MCP server expose?

TerraLab exposes 6 tools: find_places, convert_coordinates, get_elevation, extract_open_data, open_gis_file, french_parcel. Their descriptions and schemas cost roughly 2,150 tokens of context every time the server is loaded.

### Does the TerraLab MCP server require authentication?

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

### Is the TerraLab MCP server still maintained?

TerraLab is still listed as active in the MCP registry. We last reached this channel on 18 October 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://mcp.terra-lab.ai/mcp
- Website: https://terra-lab.ai/
- Changelog RSS feed: https://verifymcp.io/servers/ai-terra-lab-terralab/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/ai-terra-lab-terralab/mcp.json
- HTML version of this page: https://verifymcp.io/servers/ai-terra-lab-terralab/mcp
