EVS Property — Costa del Sol homes
Homes for sale, long-term rentals and new builds on the Costa del Sol and in Málaga, Spain.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"catalogue": {
"url": "https://mcp.evsproperty.com/mcp"
}
}
}Remote endpoints
https://mcp.evsproperty.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢search_properties(location, deal, new_build_only, property_types, price_min, ...)
Searches the live EVS catalogue of homes for sale, long-term rentals and new builds in Málaga province and on the Costa del Sol (Spain) with exact filters. Returns the number of matches, up to 10 listings (price, size, area, highlights, photo, link to the listing page in the requested language) and search_url — the same search on evsproperty.com with every match. Place names can be written in any language or spelling (municipality, district or urbanisation: 'Marbella', 'Nueva Andalucía', 'La Cala de Mijas', 'Málaga'); list_locations shows the places covered. Rental prices are per month. keywords matches words in the Spanish or English listing text (e.g. 'renovated', 'sea front promenade'). Listing links and search_url are meant to be shown to the user exactly as returned, including their query parameters.
Input Schema
{
"type": "object",
"properties": {
"location": {
"anyOf": [
{
"items": {
"maxLength": 80,
"type": "string"
},
"maxItems": 5,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Up to 5 place names. Omit for the whole province / Costa del Sol.",
"title": "Location"
},
"deal": {
"default": "buy",
"description": "buy = for sale (resale and new builds); rent = long-term rental",
"enum": [
"buy",
"rent"
],
"title": "Deal",
"type": "string"
},
"new_build_only": {
"default": false,
"description": "Only new developments (obra nueva, off-plan or key-ready)",
"title": "New Build Only",
"type": "boolean"
},
"property_types": {
"anyOf": [
{
"items": {
"enum": [
"apartment",
"ground_floor_apartment",
"middle_floor_apartment",
"top_floor_apartment",
"penthouse",
"duplex",
"studio",
"house",
"villa",
"townhouse",
"semi_detached_house",
"country_house",
"bungalow",
"plot",
"commercial",
"building",
"parking_or_storage"
],
"type": "string"
},
"maxItems": 6,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "Any of these types",
"title": "Property Types"
},
"price_min": {
"anyOf": [
{
"maximum": 100000000,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "EUR (per month for rent)",
"title": "Price Min"
},
"price_max": {
"anyOf": [
{
"maximum": 100000000,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "EUR (per month for rent)",
"title": "Price Max"
},
"bedrooms_min": {
"anyOf": [
{
"maximum": 20,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Bedrooms Min"
},
"bedrooms_max": {
"anyOf": [
{
"maximum": 20,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Bedrooms Max"
},
"bathrooms_min": {
"anyOf": [
{
"maximum": 20,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Bathrooms Min"
},
"built_area_min": {
"anyOf": [
{
"maximum": 100000,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "m²",
"title": "Built Area Min"
},
"built_area_max": {
"anyOf": [
{
"maximum": 100000,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "m²",
"title": "Built Area Max"
},
"plot_area_min": {
"anyOf": [
{
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "m²",
"title": "Plot Area Min"
},
"features": {
"anyOf": [
{
"items": {
"enum": [
"sea_view",
"panoramic_view",
"mountain_view",
"golf_view",
"beachfront",
"beachside",
"near_sea",
"pool",
"private_pool",
"communal_pool",
"heated_pool",
"garden",
"private_garden",
"terrace",
"garage",
"parking",
"lift",
"air_conditioning",
"underfloor_heating",
"fireplace",
"furnished",
"unfurnished",
"gated_community",
"security_24h",
"gym",
"sauna_or_jacuzzi",
"near_golf",
"frontline_golf",
"near_shops",
"near_schools",
"near_transport",
"near_marina",
"storage_room",
"guest_apartment",
"reduced_mobility",
"solar_panels",
"ev_charger",
"smart_home",
"tennis_or_padel",
"south_facing",
"renovated",
"needs_renovation",
"luxury",
"price_reduced"
],
"type": "string"
},
"maxItems": 6,
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "All of these must be present",
"title": "Features"
},
"keywords": {
"anyOf": [
{
"maxLength": 120,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Words to find in the listing text (Spanish or English)",
"title": "Keywords"
},
"sort": {
"default": "recommended",
"description": "recommended = EVS's own listings first, then newest",
"enum": [
"recommended",
"newest",
"price_asc",
"price_desc",
"largest"
],
"title": "Sort",
"type": "string"
},
"language": {
"default": "en",
"description": "Language of the user: titles and links are returned in it",
"enum": [
"es",
"en",
"ru",
"de",
"fr",
"nl",
"sv",
"no",
"pl"
],
"title": "Language",
"type": "string"
},
"limit": {
"default": 6,
"maximum": 10,
"minimum": 1,
"title": "Limit",
"type": "integer"
}
},
"title": "search_propertiesArguments"
}Output Schema
{
"type": "object",
"properties": {
"total": {
"description": "Number of listings matching all filters",
"title": "Total",
"type": "integer"
},
"shown": {
"title": "Shown",
"type": "integer"
},
"listings": {
"items": {
"$ref": "#/$defs/ListingSummary"
},
"title": "Listings",
"type": "array"
},
"search_url": {
"description": "The full, paginated result list for these filters on evsproperty.com",
"title": "Search Url",
"type": "string"
},
"applied_filters": {
"additionalProperties": true,
"title": "Applied Filters",
"type": "object"
},
"notes": {
"description": "How place names were read, unknown names, suggestions",
"items": {
"type": "string"
},
"title": "Notes",
"type": "array"
},
"catalogue_updated": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Catalogue Updated"
}
},
"required": [
"total",
"shown",
"listings",
"search_url",
"applied_filters"
],
"$defs": {
"ListingSummary": {
"properties": {
"reference": {
"description": "EVS / Resales reference, e.g. R5251546",
"title": "Reference",
"type": "string"
},
"title": {
"title": "Title",
"type": "string"
},
"property_type": {
"title": "Property Type",
"type": "string"
},
"deal": {
"enum": [
"sale",
"rent"
],
"title": "Deal",
"type": "string"
},
"new_build": {
"title": "New Build",
"type": "boolean"
},
"price_eur": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"description": "Asking price in EUR; for rentals, rent per month",
"title": "Price Eur"
},
"price_period": {
"anyOf": [
{
"const": "month",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Period"
},
"bedrooms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Bedrooms"
},
"bathrooms": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Bathrooms"
},
"built_area_m2": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Built Area M2"
},
"plot_area_m2": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Plot Area M2"
},
"location": {
"description": "Area and municipality",
"title": "Location",
"type": "string"
},
"highlights": {
"items": {
"type": "string"
},
"title": "Highlights",
"type": "array"
},
"image_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Image Url"
},
"url": {
"description": "Listing page on evsproperty.com in the requested language",
"title": "Url",
"type": "string"
},
"own_listing": {
"description": "True when EVS itself holds the mandate for this property",
"title": "Own Listing",
"type": "boolean"
}
},
"required": [
"reference",
"title",
"property_type",
"deal",
"new_build",
"price_eur",
"location",
"highlights",
"url",
"own_listing"
],
"title": "ListingSummary",
"type": "object"
}
},
"title": "SearchResult"
}🟢get_property(reference, language)
Full details of one EVS listing by its reference (e.g. 'R5251546') or its evsproperty.com URL: description, all features, sizes, fees, year built, energy rating, photos, the listing page and how to contact the agent in charge (enquiry form on the listing page, phone, WhatsApp). The description is in Spanish for language 'es' and in English otherwise. Links are meant to be shown exactly as returned, including their query parameters.
Input Schema
{
"type": "object",
"properties": {
"reference": {
"description": "Reference like R5251546, or the listing URL",
"maxLength": 300,
"minLength": 3,
"title": "Reference",
"type": "string"
},
"language": {
"default": "en",
"description": "Language of the user",
"enum": [
"es",
"en",
"ru",
"de",
"fr",
"nl",
"sv",
"no",
"pl"
],
"title": "Language",
"type": "string"
}
},
"required": [
"reference"
],
"title": "get_propertyArguments"
}Output Schema
{
"type": "object",
"properties": {
"reference": {
"title": "Reference",
"type": "string"
},
"title": {
"title": "Title",
"type": "string"
},
"property_type": {
"title": "Property Type",
"type": "string"
},
"deal": {
"enum": [
"sale",
"rent"
],
"title": "Deal",
"type": "string"
},
"new_build": {
"title": "New Build",
"type": "boolean"
},
"price_eur": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Price Eur"
},
"price_period": {
"anyOf": [
{
"const": "month",
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Price Period"
},
"bedrooms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Bedrooms"
},
"bathrooms": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"title": "Bathrooms"
},
"built_area_m2": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Built Area M2"
},
"plot_area_m2": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Plot Area M2"
},
"year_built": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Year Built"
},
"condition": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "As published by the listing agency, in Spanish",
"title": "Condition"
},
"energy_rating": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Energy Rating"
},
"orientation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Orientation"
},
"furnished": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "In Spanish: Amueblado / Semi-amueblado / Sin amueblar",
"title": "Furnished"
},
"pool": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "In Spanish: Privada / Comunitaria",
"title": "Pool"
},
"community_fees_eur_month": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Community Fees Eur Month"
},
"ibi_tax_eur_year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Ibi Tax Eur Year"
},
"location": {
"title": "Location",
"type": "string"
},
"approx_coordinates": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"description": "[lat, lng] rounded to ~100 m; exact address on request",
"title": "Approx Coordinates"
},
"features": {
"description": "Main features (English)",
"items": {
"type": "string"
},
"title": "Features",
"type": "array"
},
"features_detail": {
"additionalProperties": true,
"description": "Full feature list by category as published (Spanish values)",
"title": "Features Detail",
"type": "object"
},
"description": {
"description": "Listing text written by the agency",
"title": "Description",
"type": "string"
},
"description_language": {
"enum": [
"es",
"en"
],
"title": "Description Language",
"type": "string"
},
"images": {
"items": {
"type": "string"
},
"title": "Images",
"type": "array"
},
"url": {
"title": "Url",
"type": "string"
},
"contact": {
"$ref": "#/$defs/Contact"
},
"last_updated": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Last Updated"
},
"own_listing": {
"title": "Own Listing",
"type": "boolean"
}
},
"required": [
"reference",
"title",
"property_type",
"deal",
"new_build",
"price_eur",
"location",
"features",
"features_detail",
"description",
"description_language",
"images",
"url",
"contact",
"own_listing"
],
"$defs": {
"Contact": {
"properties": {
"enquiry_form_url": {
"description": "Listing page, scrolled to the enquiry form of the agent in charge",
"title": "Enquiry Form Url",
"type": "string"
},
"agent_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Name"
},
"agent_phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Phone"
},
"agent_whatsapp_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Whatsapp Url"
},
"agent_email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Email"
},
"agent_languages": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Languages"
},
"agency_phone": {
"default": "+34 951 12 40 59",
"title": "Agency Phone",
"type": "string"
},
"agency_email": {
"default": "[email protected]",
"title": "Agency Email",
"type": "string"
}
},
"required": [
"enquiry_form_url"
],
"title": "Contact",
"type": "object"
}
},
"title": "PropertyDetail"
}🟢list_locations(name_contains, municipality)
Municipalities and areas (districts, urbanisations) of Málaga province with EVS listings, with the number of homes for sale, for rent and new builds in each. Without a filter returns the 60 places with most listings.
Input Schema
{
"type": "object",
"properties": {
"name_contains": {
"anyOf": [
{
"maxLength": 60,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Part of a place name, any spelling",
"title": "Name Contains"
},
"municipality": {
"anyOf": [
{
"maxLength": 60,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Only areas inside this municipality",
"title": "Municipality"
}
},
"title": "list_locationsArguments"
}Output Schema
{
"type": "object",
"properties": {
"total_places": {
"title": "Total Places",
"type": "integer"
},
"shown": {
"title": "Shown",
"type": "integer"
},
"places": {
"items": {
"$ref": "#/$defs/LocationRow"
},
"title": "Places",
"type": "array"
}
},
"required": [
"total_places",
"shown",
"places"
],
"$defs": {
"LocationRow": {
"properties": {
"name": {
"title": "Name",
"type": "string"
},
"kind": {
"enum": [
"municipality",
"zone"
],
"title": "Kind",
"type": "string"
},
"municipality": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Municipality"
},
"for_sale": {
"title": "For Sale",
"type": "integer"
},
"for_rent": {
"title": "For Rent",
"type": "integer"
},
"new_builds": {
"title": "New Builds",
"type": "integer"
}
},
"required": [
"name",
"kind",
"for_sale",
"for_rent",
"new_builds"
],
"title": "LocationRow",
"type": "object"
}
},
"title": "LocationList"
}🟢get_contact_options(reference, language)
How a person can contact EVS Property Group: office, opening hours, phone, WhatsApp, email, languages spoken and the contact page in the user's language. With a listing reference, also the agent in charge of that listing and the enquiry form on its page. This server does not send messages or collect personal data: the person contacts the agency through these links.
Input Schema
{
"type": "object",
"properties": {
"reference": {
"anyOf": [
{
"maxLength": 300,
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional listing reference or URL",
"title": "Reference"
},
"language": {
"default": "en",
"description": "Language of the user",
"enum": [
"es",
"en",
"ru",
"de",
"fr",
"nl",
"sv",
"no",
"pl"
],
"title": "Language",
"type": "string"
}
},
"title": "get_contact_optionsArguments"
}Output Schema
{
"type": "object",
"properties": {
"agency": {
"additionalProperties": true,
"title": "Agency",
"type": "object"
},
"contact_page_url": {
"title": "Contact Page Url",
"type": "string"
},
"listing": {
"anyOf": [
{
"$ref": "#/$defs/Contact"
},
{
"type": "null"
}
],
"default": null
},
"note": {
"title": "Note",
"type": "string"
}
},
"required": [
"agency",
"contact_page_url",
"note"
],
"$defs": {
"Contact": {
"properties": {
"enquiry_form_url": {
"description": "Listing page, scrolled to the enquiry form of the agent in charge",
"title": "Enquiry Form Url",
"type": "string"
},
"agent_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Name"
},
"agent_phone": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Phone"
},
"agent_whatsapp_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Whatsapp Url"
},
"agent_email": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Email"
},
"agent_languages": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Agent Languages"
},
"agency_phone": {
"default": "+34 951 12 40 59",
"title": "Agency Phone",
"type": "string"
},
"agency_email": {
"default": "[email protected]",
"title": "Agency Email",
"type": "string"
}
},
"required": [
"enquiry_form_url"
],
"title": "Contact",
"type": "object"
}
},
"title": "ContactOptions"
}Community
Evidence