EVS Property — Costa del Sol homes
Server Details
Homes for sale, long-term rentals and new builds on the Costa del Sol and in Málaga, Spain.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a distinct role: search the catalogue, fetch one listing, list places, and get contact channels. The main overlap is that get_property already returns the agent's contact details and enquiry form, which get_contact_options also provides, so an agent may be unsure which to call for contact info.
All four names follow a clean verb_noun snake_case pattern: get_contact_options, get_property, list_locations, search_properties. The verbs are used consistently (get for single-resource retrieval, list for enumeration, search for filtering).
Four tools is on the lean side but each earns its place in a read-only property catalogue workflow: discovery, detail, geography, and contact. Nothing feels redundant except the partial contact overlap.
The surface covers the core funnel: find places, search listings, view full details, and reach the agency. Minor gaps exist (no way to fetch several listings by reference at once, no saved/favourites or sorting), but agents can work around these via search.
Available Tools
4 toolsget_contact_optionsHow to contact EVSARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language of the user | en |
| reference | No | Optional listing reference or URL |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| agency | Yes | |
| listing | No | |
| contact_page_url | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only annotations, the description clearly discloses an important behavioral boundary: the server does not send messages or collect personal data, and contact happens through the returned links. It also explains the conditional behavior when a listing reference is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: contact channels first, then conditional listing behavior, then the no-message/no-data-collection boundary. Every sentence contributes useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and annotations, the description supplies everything an agent needs: what contact information is returned, how the optional reference changes results, and the important limitation that no messages are sent or personal data collected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds useful meaning: language controls the contact page language, and reference unlocks listing-specific agent and enquiry-form details. It does not add format details beyond what the schema already provides, but the added semantic effect is valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource unambiguously: how to contact EVS Property Group, including office, hours, phone, WhatsApp, email, languages, and contact page. It also clarifies the conditional listing-specific output (agent and enquiry form), making it clearly distinct from the property-search siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is clear: use this for contact details, and supply a listing reference when the agent in charge or enquiry form for a listing is needed. It does not explicitly state when not to use it or name alternatives, but there is little ambiguity against the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_propertyGet an EVS listingARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language of the user | en |
| reference | Yes | Reference like R5251546, or the listing URL |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| deal | Yes | |
| pool | No | In Spanish: Privada / Comunitaria |
| title | Yes | |
| images | Yes | |
| contact | Yes | |
| bedrooms | No | |
| features | Yes | Main features (English) |
| location | Yes | |
| bathrooms | No | |
| condition | No | As published by the listing agency, in Spanish |
| furnished | No | In Spanish: Amueblado / Semi-amueblado / Sin amueblar |
| new_build | Yes | |
| price_eur | Yes | |
| reference | Yes | |
| year_built | No | |
| description | Yes | Listing text written by the agency |
| orientation | No | |
| own_listing | Yes | |
| last_updated | No | |
| plot_area_m2 | No | |
| price_period | No | |
| built_area_m2 | No | |
| energy_rating | No | |
| property_type | Yes | |
| features_detail | Yes | Full feature list by category as published (Spanish values) |
| ibi_tax_eur_year | No | |
| approx_coordinates | No | [lat, lng] rounded to ~100 m; exact address on request |
| description_language | Yes | |
| community_fees_eur_month | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive/closed-world, so this is additive credit: the description discloses response language behavior ('Spanish for language es and in English otherwise') and a non-obvious rendering rule that links must be shown exactly as returned including query parameters. That link-preservation instruction is real behavioral guidance an agent could otherwise violate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and identifier forms, then the return contents, then language and link rules. Dense and mostly waste-free, though the long enumerated contents list overlaps with the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only single-record lookup with an output schema and full schema coverage, this covers what an agent needs: identifier forms, language behavior, what is returned, how to reach the agent, plus the link-rendering constraint. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description earns more by clarifying what the vague 'Language of the user' parameter actually does — it selects the output language of the description and resolves the non-obvious case of the ru/de/fr/nl/sv/no/pl enum values falling back to English. The reference examples partly restate the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Full details of one EVS listing') and clearly scopes it to a single record identified by reference or URL. The singular 'one listing' implicitly separates it from search_properties and list_locations, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied — the agent must infer this is the tool for when it already has a reference or URL. No explicit when-to-use conditions, no exclusions, and the sibling get_contact_options is never referenced despite contact data being mentioned in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_locationsList places covered by EVSARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| municipality | No | Only areas inside this municipality | |
| name_contains | No | Part of a place name, any spelling |
Output Schema
| Name | Required | Description |
|---|---|---|
| shown | Yes | |
| places | Yes | |
| total_places | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and closed-world. The description adds beyond that: the geographic scope (Málaga province only) and the default result size of 60 places ordered by listing count, which are not derivable from the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the resource and its contents, followed by the default-behavior caveat. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover the safety profile, so the description only needed scope and default behavior, both of which are present. Minor gap: no indication of whether the 60-place cap can be altered or paged.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters documented ('Only areas inside this municipality', 'Part of a place name, any spelling'). The description only notes that filters exist generically, adding nothing param-specific, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource precisely (municipalities and areas of Málaga province with EVS listings) and what each entry contains (counts of sale, rent and new-build homes). It is clearly distinct from search_properties and get_property, though no explicit verb leads the sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The default behavior is disclosed ('Without a filter returns the 60 places with most listings'), which implies how to use the unfiltered form. However, there is no explicit guidance on when to use this rather than search_properties, and no note that the 60-result cap cannot be changed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_propertiesSearch EVS property listingsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| deal | No | buy = for sale (resale and new builds); rent = long-term rental | buy |
| sort | No | recommended = EVS's own listings first, then newest | recommended |
| limit | No | ||
| features | No | All of these must be present | |
| keywords | No | Words to find in the listing text (Spanish or English) | |
| language | No | Language of the user: titles and links are returned in it | en |
| location | No | Up to 5 place names. Omit for the whole province / Costa del Sol. | |
| price_max | No | EUR (per month for rent) | |
| price_min | No | EUR (per month for rent) | |
| bedrooms_max | No | ||
| bedrooms_min | No | ||
| bathrooms_min | No | ||
| plot_area_min | No | m² | |
| built_area_max | No | m² | |
| built_area_min | No | m² | |
| new_build_only | No | Only new developments (obra nueva, off-plan or key-ready) | |
| property_types | No | Any of these types |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | How place names were read, unknown names, suggestions |
| shown | Yes | |
| total | Yes | Number of listings matching all filters |
| listings | Yes | |
| search_url | Yes | The full, paginated result list for these filters on evsproperty.com |
| applied_filters | Yes | |
| catalogue_updated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent and non-destructive behavior, yet the description adds real operational context: results are capped at 10 with a total count, rental prices are monthly, keywords match Spanish or English listing text, and returned links must be shown verbatim including query parameters. The only gap is the absence of any note on empty-result or no-match behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Lead sentence front-loads purpose and scope; subsequent sentences each add a distinct fact (return shape, location flexibility, rental units, keywords semantics, link handling). The long parenthetical place-name list and the return-value sentence sit slightly heavy against an output schema that already documents results.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter, all-optional search tool with an output schema, the description covers the ambiguities an agent would otherwise get wrong: how to resolve place names, what the result cap means, monthly rent pricing, and how to present links. Nothing essential to calling it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 76%, so the schema already documents most fields; the description still adds meaning the schema lacks — location accepts place names in any language or spelling at municipality, district or urbanisation level, and keywords searches Spanish or English listing text rather than titles. It adds nothing about deal/sort/bedrooms, which are already well covered by the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (searches) and resource (live EVS catalogue of homes for sale, long-term rentals, new builds) plus exact geographic scope (Málaga province / Costa del Sol). It also clarifies what the tool returns (match count, up to 10 listings, search_url), which lets an agent distinguish it from get_property and list_locations without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to list_locations for place names and explains that omitting location searches the whole province, and describes when to use keywords vs structured filters. It stops short of saying when to prefer get_property for a single listing or when not to use this tool, so it is clear context without full exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_contact_options - First observed
get_property - First observed
list_locations - First observed
search_properties
Related MCP Connectors
New-build homes on sale in Spain, buying costs, non-resident tax and local open data.
First-party Spanish and Portuguese property listings with notary-verified prices.
Off-plan and ready property in the UAE, Oman, Georgia, Cyprus, Bali, Thailand and London.
Find homes sold by owners in Spain and France. Messages to owners need buyer consent; rate-limited.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables discovery and evaluation of primary residence housing opportunities in Ibiza, including property scoring, mortgage scenario calculations, and validated submission of candidate listings.-
- AlicenseCqualityDmaintenanceEnables access to Idealista API for searching and retrieving property listings across Spain, Portugal, and Italy. Supports various property types including homes, apartments, garages, commercial properties, offices, and land with detailed filtering options.143MIT
- AlicenseNot gradedqualityCmaintenanceEnables users to calculate Portuguese property purchase costs (IMT, stamp duty, deed/registration) and query annual IMI rates and costs for all 308 municipalities, with sourced figures.MIT
- AlicenseAqualityDmaintenancePhilippine real estate data for AI agents — search verified listings, calculate transfer costs, and get accurate legal information via lupaph.com.639 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.