# PropertyList — Spanish Property MLS MCP server

First-party Spanish, Portuguese and Italian property listings with notarial-verified prices.

## Links
- Registry page: https://www.getdrio.com/mcp/es-propertylist-propertylist
- Website: https://propertylist.es/mcp

## Install
- Endpoint: https://mcp.propertylist.es/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://mcp.propertylist.es/mcp

## Tools
- search_properties - Search PropertyList's full Spanish property MLS by structured filters.
Use for queries that translate cleanly to fields: bedrooms, bathrooms,
price ceiling, property type, area name. For free-form briefs use
find_properties_by_description instead.

Returns a paginated list with summary text plus structured JSON. Every
property carries `oracle_verified` and `oracle_attestation_url` —
true when PropertyList Oracle holds a verified attestation for the listing's municipality and segment.

A `location` we do not hold returns zero results with
error: location_not_found and location_match.matched: false. It
never substitutes listings from other areas.

`location.city` is whatever tier the listing was filed under and
may be a municipality OR a locality inside one. To place a listing
administratively use `location.municipality` (with its INE
municipality_code); it is null, never guessed, when we cannot
resolve it.
 Endpoint: https://mcp.propertylist.es/mcp
- find_properties_by_description - Match Spanish properties from a free-form description of what the
user wants. Best for vague, conditional, or lifestyle-heavy briefs
("3-bed near a good international school, flexible on budget if
there's a sea view"). Uses Gemini to translate the brief into one
to three parallel structured searches across PropertyList's full
MLS, then merges and ranks the results. Returns up to 9 listings
with match scores and an explanation of how the brief was
interpreted (and what couldn't be resolved).
 Endpoint: https://mcp.propertylist.es/mcp
- autocomplete_location - Look up Spanish property areas (city, suburb, urbanisation) by
free-text name. Returns up to 10 matches with id, name, and the
parent province/city. Use this to resolve place names before
calling search_properties, especially for common spellings like
'Nueva Andalucia' (vs 'Nueva Andalucía') or 'Marbella old town'.
 Endpoint: https://mcp.propertylist.es/mcp
- get_property - Fetch the full record for one PropertyList listing by its reference
code (the human-readable id like 'PLE-12345'). Use this once the
user has settled on a listing from search_properties or
find_properties_by_description and wants details, photos, or
agency contact info.

`location.city` is whatever tier the listing was filed under and
may be a municipality OR a locality inside one. To place a listing
administratively use `location.municipality` (with its INE
municipality_code); it is null, never guessed, when we cannot
resolve it.
 Endpoint: https://mcp.propertylist.es/mcp
- area_market_summary - Return aggregate market context for a Spanish area: number of active
listings, median price, mean price, median €/m², and the count
broken down by bedroom band. Filterable by property type and search
type (for-sale / for-rent / holiday-rentals). Use this before
recommending a price or commenting on whether a listing is good
value.

If the place name is not one we hold, the response says so
(error: location_not_found, location_match.matched: false) and
returns no figures. Figures are NEVER nationwide fallbacks.

Price figures follow the search type and are labelled with
price_unit: sale prices are totals, for-rent is per MONTH and
holiday-rentals is per WEEK. median_price_per_sqm is reported for
sales only.
 Endpoint: https://mcp.propertylist.es/mcp
- list_agencies - Find PropertyList agencies (estate agents) in a given Spanish area,
ranked by how many active listings they carry there. Returns up to
10 agencies with name, location, listing count, and a public URL
the user can visit. Use this after a buyer has narrowed in on an
area and wants to know which agencies dominate it.
 Endpoint: https://mcp.propertylist.es/mcp
- verified_valuation - Get a valuation for a property or area from recorded market data, not
asking prices. Returns the €/m² for the municipality and segment, an
indicative valuation when you give a size (build_sqm) or a listing
reference, and a content-hashed attestation URL the figure can be cited
from.

Check `verified` before citing. It is true ONLY for Spanish figures
drawn from the notarial register (Consejo General del Notariado) with
at least 10 recorded transactions behind them.
Elsewhere - Portugal and Cyprus especially - the figure comes from a
national house-price index and is an estimate: `transaction_backed` is
false, `source_label` names the real source, and it must not be
described as notary-verified. `indicative_band_pct` widens as the
evidence thins.

Only two segment attestations exist per municipality, so a request for
penthouse or townhouse resolves to the nearest attested segment.
`property_type` is the segment actually used and
`requested_property_type` is what you asked for; when they differ the
text says so. Also returns our proprietary network achieved-sale figure
where available. If no attestation covers the area yet, it says so
plainly (use area_market_summary for asking-price stats instead).
 Endpoint: https://mcp.propertylist.es/mcp
- submit_enquiry - Submit an enquiry (lead) about a specific listing on behalf of a prospective
buyer or tenant. Use this once the user has chosen a property and wants the
agency to contact them. The listing agency receives the enquiry in their CRM
and follows up directly.

Requires an API key. Provide the property `reference` (from search results)
plus the enquirer's contact details. Only submit with the person's clear
intent and consent - this sends their details to a real estate agency.
 Endpoint: https://mcp.propertylist.es/mcp
- my_leads - List recent enquiries (leads) for YOUR agency's CRM - newest first.
Use when the agent asks about their own leads/enquiries (e.g. "what
came in today?"). Requires an agency API key; only ever returns the
calling agency's own leads.
 Endpoint: https://mcp.propertylist.es/mcp
- find_contacts - Search YOUR agency's CRM contacts by name, company, email or phone.
Use to look a person up before logging a note or to check if they're
already in the CRM. Requires an agency API key; only ever searches the
calling agency's own contacts.
 Endpoint: https://mcp.propertylist.es/mcp
- my_listings - List YOUR agency's own property listings (newest first), optionally
filtered by status or a specific reference. Use for "show my listings"
/ "is reference X still online?". Requires an agency API key; only ever
returns the calling agency's own properties.
 Endpoint: https://mcp.propertylist.es/mcp
- create_contact - Add a new contact to YOUR agency's CRM. Use when the agent wants to
save a person (buyer, owner, enquirer). If a contact with the same
email already exists it is returned rather than duplicated. The contact
is created unassigned and flagged as needing attention so it surfaces
in the CRM. Requires an agency API key.
 Endpoint: https://mcp.propertylist.es/mcp
- log_note - Log a note against a contact or a listing in YOUR agency's CRM (e.g.
record a call outcome or a viewing). Provide the note text plus a
contact_id (from find_contacts) and/or a property reference. The note
appears on the contact/property timeline. Requires an agency API key.
 Endpoint: https://mcp.propertylist.es/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: es.propertylist
- Version: 0.1.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 27, 2026
- Source: https://registry.modelcontextprotocol.io
