Connection check
verified live · 27h ago
propertylist
First-party Spanish, Portuguese and Italian property listings with notarial-verified prices.
Tools
15
GitHub stars
—
Installs / wk
—
Licence
—
Transport
streamable-http
Last checked
27h ago
Tools & capabilities
15 toolsRead from the running server on 27h ago.
area_market_summary
read-only
location*search_typeproperty_types
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 prope… 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.
autocomplete_location
read-only
query*provinces
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… 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'.
create_contact
name*emailphonesurnamecompany_name
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 th… 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.
create_listing
pricebedroomsheadlinelanguagelocationplot_sqm
+5
Start a new property listing in YOUR agency's CRM from a description. Use when the agent is describing a property they have taken on and wants it in the system. Creates a DRAFT. I… Start a new property listing in YOUR agency's CRM from a description. Use when the agent is describing a property they have taken on and wants it in the system. Creates a DRAFT. It is never published and never appears on the portal from here: the agent adds photographs and the energy rating in the CRM and publishes it themselves. The response includes a direct link to the draft. Location is resolved against the real area tree, so a town, suburb or urbanisation name is enough. Requires an agency API key.
find_contacts
read-only
limitquery*
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… 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.
find_properties_by_description
read-only
brief*language
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, flexi… 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).
get_property
read-only
languagereference*
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_prope… 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 or photos. To contact the listing agency, use submit_enquiry - direct phone or email details are not part of the payload. Works without an API key up to a daily per-IP allowance of distinct listings; past that, a free API key (https://www.propertylist.es/mcp) raises the allowance. `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.
list_agencies
read-only
limitlocation*
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 coun… 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.
log_note
note*contact_idproperty_reference
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 prop… 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.
my_leads
read-only
limitsinceproperty_reference
List recent enquiries (leads) for YOUR agency's CRM - newest first. Use when the agent asks what has just come in (e.g. "what came in today?"). This is the enquiry inbox: an enqui… List recent enquiries (leads) for YOUR agency's CRM - newest first. Use when the agent asks what has just come in (e.g. "what came in today?"). This is the enquiry inbox: an enquiry that arrived from the portal, a website or a microsite. Once an agent starts working a person they live on a pipeline board instead - for those, use my_pipeline. An agency that works everything off the boards can have a busy CRM and an empty inbox here, which is not the same as having no leads. Requires an agency API key; only ever returns the calling agency's own leads.
my_listings
read-only
limitstatusreference
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?". Require… 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.
my_pipeline
read-only
limitstagepipeline
List the cards on YOUR agency's CRM pipeline boards (Kanban), with each board's own stage names and card counts. Boards: lead, buyer, seller, tenant, nurture (each card is a conta… List the cards on YOUR agency's CRM pipeline boards (Kanban), with each board's own stage names and card counts. Boards: lead, buyer, seller, tenant, nurture (each card is a contact) and property (each card is a listing). Stage names are whatever the agency renamed them to, so read them from the reply rather than assuming. Call with no pipeline for a summary of every board - use this to answer "what's in my pipeline?" or "how many buyers do I have?". Call with a pipeline for that board's cards, newest activity first. This is the board view. For enquiries that have just arrived and have not been worked yet, use my_leads instead. Returns the WHOLE agency's boards, not one agent's cards - an API key belongs to the agency, not to a person. Requires an agency API key; only ever returns the calling agency's own data.
search_properties
read-only
pagelanguagelocationpage_sizeprice_maxprice_min
+5
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 nam… 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.
submit_enquiry
name*email*phone*messagelanguagereference*
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… 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. This is the supported way to contact a listing agency - direct phone or email details are not exposed by other tools. Works without an API key up to a small daily per-IP allowance; a free key (https://www.propertylist.es/mcp) removes it. 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.
verified_valuation
read-only
buildlocationbuild_sqmreferencebuild_sizeproperty_type