Skip to main content
Glama

PropertyList — Spanish Property MLS

search_properties

Read-onlyIdempotent

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo
languageNoPreferred language for property titles and description excerpts.en
locationNoFree-text place name (city, suburb, or urbanisation). e.g. 'Marbella', 'Nueva Andalucia', 'Sotogrande'. Pre-resolved with autocomplete_location if you need to confirm match.
page_sizeNo
price_maxNoMaximum price in euros (sale) or monthly euros (rent).
price_minNoMinimum price in euros (sale) or monthly euros (rent).
search_typeNoListing market. Defaults to 'for-sale'.
bedrooms_maxNo
bedrooms_minNo
bathrooms_minNo
property_typesNoComma-separated slugs: apartments, villas, penthouses, plots, townhouses, commercial.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageYes
errorNo
totalYes
page_sizeYes
propertiesYes
location_matchNo

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only and idempotent behavior, and the description adds meaningful behavioral detail: paginated responses, oracle_verified fields, location-not-found behavior, and the guarantee that searches never substitute listings from other areas. It also clarifies how location.municipality is resolved, including when it is null.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence carries useful, non-redundant information. The description is front-loaded with purpose and usage, then gives output shape, edge-case behavior, and field semantics in a logically ordered flow. There is no filler or tautology.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter search tool with an output schema, the description supplies the meaning an agent needs: when to use it, what gets searched, how location matching fails, and how to interpret municipality versus locality-tier fields. The existence of an output schema covers the return payload, so nothing critical is left unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions already cover language, location, price bounds, search_type, and property_types. The description adds partial coverage for the undocumented bedroom/bathroom parameters and describes them as filter dimensions, but it does not clarify min/max semantics or page/page_size behavior. It is adequate but not fully compensating for the 55% schema coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: "Search PropertyList's full Spanish property MLS by structured filters." It explicitly lists the filter dimensions and distinguishes itself from the free-form sibling by naming find_properties_by_description, so an agent can separate the tools without guessing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear when-to-use rule: structured queries that map to fields such as bedrooms, bathrooms, price, property type, and area. It also gives the exclusion: "For free-form briefs use find_properties_by_description instead," which is an explicit alternative with a stated condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.3/5.0
Disambiguation4/5

Most tools have clear, distinct purposes. Some confusion possible between search_properties and find_properties_by_description, but descriptions clearly differentiate structured vs. free-form. Also area_market_summary vs verified_valuation both provide market data, but different types (asking vs notary). Overall well-differentiated.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern: create_contact, create_listing, find_contacts, get_property, list_agencies, log_note, search_properties, etc. Names are predictive and actions are clear.

Tool Count4/5

14 tools is on the higher end of the ideal range (3-15) but appropriate for a property platform that covers both public MLS search and agency CRM functions. It could be split into two servers (public search vs. agency CRM) but still remains manageable.

Completeness4/5

Covers core flow well: location lookup, market context, search, property details, valuations, and agency CRM (contacts, listings, leads, notes). Minor gaps: no tool for updating a listing (create_listing only creates drafts), and no delete/update for contacts. But primary workflows are supported.

Resources