# Catastro GPS (remote · mcp.parcelgps.com)

Cadastral parcels from 29 European countries, by reference in 27 and by coordinates in all 29

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

## Components

- remote · `mcp.parcelgps.com`: 79/100 (this document), [markdown](https://verifymcp.io/servers/com-parcelgps-catastro-gps/mcp.md), [page](https://verifymcp.io/servers/com-parcelgps-catastro-gps/mcp)
- npm · `catastro-gps-mcp`: 33/100, [markdown](https://verifymcp.io/servers/com-parcelgps-catastro-gps/catastro-gps-mcp.md), [page](https://verifymcp.io/servers/com-parcelgps-catastro-gps/catastro-gps-mcp)

## Channel facts

- Endpoint: `https://mcp.parcelgps.com/mcp`
- Transports: `streamable-http`
- Auth: `required (not validated)`
- Version: `2.2.1`

## 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**: 86/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 66/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3710 tokens (~185/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 33/100
  - Stability observed for 10 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.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 20 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 20 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.

## Install

### How do I install the Catastro GPS MCP server?

Catastro GPS is a hosted endpoint at https://mcp.parcelgps.com/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 com-parcelgps-catastro-gps 'https://mcp.parcelgps.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-parcelgps-catastro-gps": {
      "url": "https://mcp.parcelgps.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-parcelgps-catastro-gps": {
      "type": "http",
      "url": "https://mcp.parcelgps.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-parcelgps-catastro-gps]
url = "https://mcp.parcelgps.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-parcelgps-catastro-gps": {
      "type": "remote",
      "url": "https://mcp.parcelgps.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-parcelgps-catastro-gps --url 'https://mcp.parcelgps.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-parcelgps-catastro-gps:
    url: "https://mcp.parcelgps.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-parcelgps-catastro-gps": {
      "Transport": "http",
      "Url": "https://mcp.parcelgps.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-parcelgps-catastro-gps -t streamable-http -u 'https://mcp.parcelgps.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-parcelgps-catastro-gps": {
      "type": "http",
      "url": "https://mcp.parcelgps.com/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 79, +1)

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

### 2026-11-02 (score 78, +1)

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

### 2026-10-31 (score 77, +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-29 (score 76, +1)

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

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

- [functional improvement] Stability: unverified → 0.03

### 2026-10-26 (score 74)

First indexed and scored.

## MCP tools (20)

### `get_parcel` (~355 tokens)

Get Parcel

Look up a cadastral parcel in 29 European countries (including the Basque Country and Navarre foral cadastres) by its official cadastral reference or by WGS84 coordinates. Returns the reference, location, address, municipality, area, land use and the parcel outline when the official source provides them. The country is detected from the reference format or the point when omitted. Where the parcel has crop or land-use parts it also returns their count and a crop summary (crop and share of the area); the full list with outlines is get_parcel_subparcels. United Kingdom: coordinates only. Codes: ES Spain, PV Basque Country, NA Navarre, PT Portugal, FR France, IT Italy, DE Germany, AT Austria, CH Switzerland, LI Liechtenstein, BE Belgium, NL Netherlands, LU Luxembourg, PL Poland, CZ Czechia, SK Slovakia, SI Slovenia, HR Croatia, BG Bulgaria, GR Greece, CY Cyprus, DK Denmark, SE Sweden, NO Norway, FI Finland, IS Iceland, EE Estonia, LV Latvia, LT Lithuania, IE Ireland, UK United Kingdom.

Input parameters:

- `country` (string): Optional country code. Omit to auto-detect. PV and NA are the Spanish foral cadastres.
- `lang` (string): Language of crop names (default English)
- `latitude` (number): Latitude in WGS84 (use with longitude instead of reference)
- `longitude` (number): Longitude in WGS84 (use with latitude instead of reference)
- `reference` (string): Official cadastral reference as written in the country (e.g. 9872023VH5797S0001WX, 750560000AB0001)

### `search_address` (~290 tokens)

Search Address

Turn a postal address typed as free text into cadastral parcels, ranked by confidence (0 to 1; 0.75 or more means the house number and the municipality match). Spain (default, CartoCiudad; Basque Country and Navarre entrances come back with country ES and their foral reference) and 26 more countries: FR, IT, DE (not Bavaria), AT, NL, BE, PL, CH, CZ, DK, NO, FI, EE, LV, LT, SI, SK, BG, GR, CY, LU, LI, IS, IE, UK (Scotland only) and PT (not Lisbon, Porto or Coimbra). Sweden and Croatia answer CNV_COVERAGE. Include the street number and the municipality or postcode, e.g. 'Calle Gran Via 31, Madrid' or '8 boulevard du Port, Amiens'. In Spain the 14-character reference is the building (finca): call get_units for its dwellings or get_parcel for the outline. Costs 1 quota unit when it returns candidates; misses are free.

Input parameters:

- `address` (string, required): Free-text address: street and number, then municipality and/or postcode
- `country` (string): Country of the address. Default ES (also returns Basque Country and Navarre).
- `limit` (integer): Maximum candidates (1-10, default 5)

### `get_boundaries` (~101 tokens)

Get Parcel Boundaries

Get the outline of a cadastral parcel as GeoJSON and/or a [lat, lng] ring, plus its centroid and area, for mapping and GIS work. Accepts references from the same 30 codes as get_parcel (every covered country except the United Kingdom, which is coordinates only).

Input parameters:

- `country` (string): Optional country code. Omit to auto-detect from the reference format.
- `reference` (string, required): Official cadastral reference

### `get_solar_potential` (~109 tokens)

Get Solar Potential

Estimate the photovoltaic potential of a parcel from PVGIS (European Commission JRC): installable kWp, yearly production, savings, payback, CO2 avoided, optimal tilt and orientation. Available for Spain (ES, PV, NA), Portugal, France, Italy and Germany.

Input parameters:

- `country` (string): Optional country code: ES, PV, NA, PT, FR, IT or DE. Omit to auto-detect.
- `reference` (string, required): Official cadastral reference

### `get_terrain` (~281 tokens)

Get Terrain, Protected Areas and Climate

Relief of the parcel computed over its outline from Copernicus DEM GLO-30 (30 m): mean/min/max elevation, mean and maximum slope with class and distribution, share steeper than 10 %, dominant orientation. Whether it lies in Natura 2000 (EEA) or a nationally designated protected area (CDDA), with each site's name, code, type (SPA/SCI) and the share of the parcel inside it. Climate normals at the parcel point from ERA5-Land (mean temperature, precipitation, frost and hot days, and the recent change against the baseline). Every block carries its source and licence; status is ok, no_data or unavailable. In ES, PV, NA, PT, FR, IT and DE the reference is enough; in every other covered country also pass latitude and longitude (from get_parcel). Costs 1 quota unit.

Input parameters:

- `country` (string): Optional country code. Omit to auto-detect from the reference.
- `latitude` (number): Latitude of the parcel point (WGS84). Required outside ES, PV, NA, PT, FR, IT and DE
- `longitude` (number): Longitude of the parcel point (WGS84). Required outside ES, PV, NA, PT, FR, IT and DE
- `reference` (string, required): Official cadastral reference

### `get_ground_motion` (~289 tokens)

Get Ground Motion (Subsidence)

Whether the ground under the parcel sinks or rises and how fast, measured by satellite radar (Copernicus European Ground Motion Service, EGMS L3 Ortho, Sentinel-1 InSAR, 100 m grid, 2020-2024): mean vertical velocity in mm/year over the parcel outline (negative = sinking), fastest-sinking cell, east-west velocity, class from stable to severe_subsidence, cells with data and the mean displacement of each year. status no_data with reason no_reflectors means the satellite found nothing stable to measure (fields, forest, water): there is no figure, not a zero. Carries the source, licence and the attribution to show. Every covered country inside EGMS coverage: in ES, PV, NA, PT, FR, IT and DE the reference is enough; elsewhere also pass latitude and longitude (from get_parcel). Costs 1 quota unit.

Input parameters:

- `country` (string): Optional country code. Omit to auto-detect from the reference.
- `latitude` (number): Latitude of the parcel point (WGS84). Required outside ES, PV, NA, PT, FR, IT and DE
- `longitude` (number): Longitude of the parcel point (WGS84). Required outside ES, PV, NA, PT, FR, IT and DE
- `reference` (string, required): Official cadastral reference

### `get_agriculture` (~130 tokens)

Get Agricultural Data

Agricultural context for a rural parcel: land use and main crop from the agricultural parcel registry (SIGPAC in Spain, with slope, altitude and irrigation), vegetation index (NDVI) and a reference crop price when available. Richest in Spain; also Portugal, France, Italy and Germany. Values from official registries (land use, crop) stay in the source language.

Input parameters:

- `country` (string): Optional country code: ES, PV, NA, PT, FR, IT or DE. Omit to auto-detect.
- `reference` (string, required): Official cadastral reference of a rural parcel

### `get_market_data` (~218 tokens)

Get Market Data

Paid API plans only (Developer, Startup, Growth, Enterprise): with a Free-plan key it answers KEY_PLAN_001 and nothing is charged. Rural land only: prices agricultural parcels in Spain (ES, PV, NA), small agricultural buildings allowed (sheds, farm stores, ponds, greenhouses), with crop_prices (EUR per hectare for each crop group of the parcel, with the number of sales behind it) and zone_prices.rural (the province farmland price per hectare). It is the price of the land; buildings are not valued (price_note). Housing, industrial or any other non-agricultural property is not supported and answers MKT_001 with nothing charged; so does rural land without a price, and any other country. One API call, charged only when a price comes back.

Input parameters:

- `country` (string): Optional country code. Rural land prices exist for ES, PV and NA; other countries answer MKT_001. Omit to auto-detect.
- `reference` (string, required): Official cadastral reference

### `get_investment_score` (~187 tokens)

Get Investment Score

Investment score (0-100) for a parcel with a rating (excellent, good, moderate, low, very_low or no_data) and qualitative factor levels (high/medium/low/not_available), never the formula. Built from the data the API can gather for that country: solar potential (PVGIS) and agricultural use in ES, PV, NA, PT, FR, IT and DE; the market factor only in France, Italy and Germany (North Rhine-Westphalia). Accessibility and risk are not computed yet and come back as not_available, so the score is relative to the factors that were available. Other countries are not supported. One API call.

Input parameters:

- `country` (string): Optional country code: ES, PV, NA, PT, FR, IT or DE. Omit to auto-detect.
- `reference` (string, required): Official cadastral reference

### `get_value_history` (~186 tokens)

Get Parcel History

Paid API plans only: with a Free-plan key it answers KEY_PLAN_001 and nothing is charged. Snapshots of a parcel as the official cadastre reported it over time: area and land use, at most one snapshot every 30 days. History starts the first time anyone looks the parcel up through CatastroGPS (get_parcel) and grows from there, so a parcel never queried before returns an empty list. The official cadastral value is not recorded yet (always null). change_pct is the area change between the oldest and newest snapshot. Recorded for ES, PV, NA, PT, FR, IT, DE and AT. One API call.

Input parameters:

- `country` (string): Optional country code: ES, PV, NA, PT, FR, IT, DE or AT. Omit to auto-detect.
- `reference` (string, required): Official cadastral reference

### `compare_parcels` (~140 tokens)

Compare Parcels

Compare 2 or 3 parcels side by side: location, solar potential, agricultural use and investment score (0-100 with rating). Parcels can be in different countries: ES (Spain, common regime), PT, FR, IT and DE. The Basque Country and Navarre are not supported here (use the single-parcel tools). Area, land use and municipality are only filled for Spain. No market prices. A parcel that is not found comes back with an error and the others are still compared. Costs one quota unit per parcel found (0 to 3).

Input parameters:

- `parcels` (array, required): Two or three parcels to compare

### `get_units` (~224 tokens)

Get Units of a Building (Spain)

Every unit (dwelling, shop, garage, storage) of a Spanish building (finca), up to 200 per page, with stair, floor, door, use, area, participation coefficient and year. Spain only: ES (14-character finca reference, e.g. from search_address), PV (Basque Country) and NA (Navarre) with the foral reference of any unit or the finca key; the foral data carry no participation coefficient. When truncated is true, call again with cursor = next_cursor. Costs one quota unit per unit served (minimum 1 per page), so a 120-dwelling building costs 120 units; repeat pages within the plan's per-finca cap (Startup/Growth contracts) are free.

Input parameters:

- `country` (string): ES (default), PV or NA. Optional for foral references detected by their shape
- `cursor` (string): next_cursor of the previous page
- `reference` (string, required): ES: 14-character finca reference. PV/NA: foral unit reference or finca key

### `resolve_reference` (~146 tokens)

Identify a Reference

Free and without quota: tell what a piece of text is before looking it up. Classifies it as a cadastral reference, a coordinate pair or a place name, for each country it could belong to, with confidence (0-1), the normalised form and whether that country is supported. ambiguous=true means bare digits that fit several countries: pick one and pass it as country to get_parcel. Use it when get_parcel answers CNV_AMBIGUOUS, or to find the country of an unknown reference.

Input parameters:

- `hint` (string): Optional country hint; it only reorders the candidates
- `text` (string, required): Reference, coordinates or place name as typed

### `get_parcel_subparcels` (~271 tokens)

Get Parcel Subparcels

What is on each part of a parcel: every crop or land-use subparcel with a stable crop_code, the crop name in the requested language, the original label of the source, area in m2, kind (cadastral, declaredCrop, landCover), a common use_class (arable, vineyard, olive, forest...), intensity, land type and class, source and, with include_geometry, its GeoJSON outline. Spain (Catastro, including Bizkaia, Alava, Navarre; Gipuzkoa without outlines), Austria, Germany, Czechia, the Netherlands, France, Portugal, Sweden, Switzerland, Finland, Belgium, Ireland, Slovenia, Estonia and Greece. One API call; free when the parcel has none. If the source does not answer it returns SUB_001: nothing is charged, retry in a few seconds. Translate codes with get_crop_catalog.

Input parameters:

- `country` (string): Optional country code (ES, PV, NA, AT, EE, GR...). Omit to auto-detect.
- `include_geometry` (boolean): Include the GeoJSON outline of each subparcel (large). Default false.
- `lang` (string): Language of crop names (default English)
- `reference` (string, required): Official cadastral reference of the parcel

### `get_parcel_sigpac` (~264 tokens)

Get Parcel SIGPAC Enclosures

Every SIGPAC enclosure (recinto) of a Spanish parcel, the CAP land parcel identification system: SIGPAC id, land-use code (TA, OV, VI, FY, PS...) with its name in the requested language, area in hectares, irrigation coefficient, mean slope, altitude, CAP pasture eligibility and region, incidents with their official text and, with include_geometry, the GeoJSON outline. Spain, the Basque Country and Navarre only; other countries answer CNV_COVERAGE. match tells whether the SIGPAC parcel was found by the cadastral reference or under the parcel's point. Source FEGA SIGPAC: cite 'Fuente: FEGA - SIGPAC'. One API call; free when there are no enclosures. If SIGPAC does not answer it returns SIG_001: nothing is charged, retry in a few seconds.

Input parameters:

- `country` (string): Optional: ES, PV (Basque Country) or NA (Navarre). Omit to auto-detect.
- `include_geometry` (boolean): Include the GeoJSON outline of each enclosure (large). Default false.
- `lang` (string): Language of land-use names (default English)
- `reference` (string, required): Official Spanish cadastral reference of the parcel or unit

### `get_crop_catalog` (~164 tokens)

Get Crop Catalog

Free and without quota: every crop or land-use code that can appear as crop_code (Spanish Catastro codes, the foral codes of Alava, Bizkaia, Gipuzkoa and Navarre, and the Austrian, Estonian and Greek catalogues) with its name in the requested language, the original label and its common use_class. Use it to translate or group crop codes; pass code to look one up.

Input parameters:

- `code` (string): Return only this crop code (e.g. G-, NA:1501, AT:53)
- `lang` (string): Language of the names (default English)
- `source` (string): Return only codes of this catalogue: ES, AL, BI, GI, NA, AT, EE or GR

### `get_neighbors` (~101 tokens)

Get Neighboring Parcels

Parcels that touch or surround a parcel (up to 60), each with its cadastral reference and centre point. Spain from the official cadastre; other countries from our own copy where we hold one. Where neighbours cannot be listed it answers supported=false with an empty list, free. One API call.

Input parameters:

- `country` (string): Optional country code. Omit to auto-detect.
- `reference` (string, required): Official cadastral reference of the parcel

### `list_provinces` (~64 tokens)

List Spanish Provinces

Provinces of the Spanish cadastre, with the names that list_municipalities and list_streets expect as region. Spain only (common territory: the Basque Country and Navarre have their own cadastres and are not listed). One API call.

### `list_municipalities` (~73 tokens)

List Spanish Municipalities

Municipalities of one Spanish province, with the cadastre code and the INE code. Spain only (common territory). Take the province name from list_provinces. One API call.

Input parameters:

- `region` (string, required): Province name as returned by list_provinces (e.g. CIUDAD REAL)

### `list_streets` (~117 tokens)

List Spanish Streets

Streets of one Spanish municipality as the cadastre writes them (type code such as CL or AV, name and full name), optionally filtered by part of the name. Spain only (common territory). Take region from list_provinces and municipality from list_municipalities. One API call.

Input parameters:

- `municipality` (string, required): Municipality name as returned by list_municipalities
- `name` (string): Part of the street name to filter by
- `region` (string, required): Province name as returned by list_provinces

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-parcelgps-catastro-gps/mcp#diagnostics

## Score history

- 2026-11-05: 79
- 2026-11-04: 78
- 2026-11-03: 78
- 2026-11-02: 78
- 2026-11-01: 77
- 2026-10-31: 77
- 2026-10-30: 76
- 2026-10-29: 76
- 2026-10-28: 75
- 2026-10-27: 75
- 2026-10-26: 74

## Common questions

### What is the Catastro GPS MCP server?

Catastro GPS is an MCP server listed in the public MCP registry as com.parcelgps/catastro-gps. Cadastral parcels from 29 European countries, by reference in 27 and by coordinates in all 29. This page covers its hosted endpoint (https://mcp.parcelgps.com/mcp).

### Is the Catastro GPS MCP server safe to use?

Catastro GPS scores 79 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 Catastro GPS MCP server expose?

Catastro GPS exposes 20 tools: get_parcel, search_address, get_boundaries, get_solar_potential, get_terrain, and 15 more. Their descriptions and schemas cost roughly 3,710 tokens of context every time the server is loaded.

### Does the Catastro GPS MCP server require authentication?

Yes. Catastro GPS asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the Catastro GPS MCP server still maintained?

Catastro GPS 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://mcp.parcelgps.com/mcp
- Authorisation metadata: https://mcp.parcelgps.com/.well-known/oauth-protected-resource/mcp
- Repository: https://github.com/TheHiddenPandaDev/catastro_gps_mcp
- Website: https://www.catastrogps.es/developers
- Changelog RSS feed: https://verifymcp.io/servers/com-parcelgps-catastro-gps/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-parcelgps-catastro-gps/mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-parcelgps-catastro-gps/mcp
