Skip to main content
Glama

Voxhouses (Portugal)

search_properties_by_description

Read-onlyIdempotent

Search Portugal listings by describing the property in plain language, matched against listing text by meaning rather than keywords. Use this for wants that are not filter fields — 'a renovated loft with exposed brick', 'quiet, lots of natural light, close to a school', 'a ruin to restore with a sea view'. Prefer search_properties when the request is entirely structural (typology, budget, location), and this tool when it is descriptive; combine both by passing structural filters here too, which are applied as hard constraints while the description only ranks. Results are ordered by relevance, so total is the number matching the structural filters, not the number that fit the description.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (default 10, max 20).
minAreaNoMinimum floor area in m². Matches either the gross or the useful area, whichever the source published. Only matches listings that published an area.
locationNoLocation: district, municipality, neighbourhood, town or postal-code prefix (e.g. Lisbon, Cascais, Chiado, 2750). Not a free-text keyword search — words that are not places (e.g. 'sea view') will not match.
priceMaxNoMaximum price, in the market currency. Note: listings advertised 'price on request' have no price and are excluded by either price bound.
priceMinNoMinimum price, in the market currency.
typologyNoA single exact typology code (T0, T1, T2…), where the number is the count of bedrooms. Buckets are not accepted here.
operationNobuy = for sale, rent = to let. Defaults to buy; a listing is one or the other, so call twice to cover both.
descriptionYesWhat the user is looking for, in their own words. Full phrases work better than keywords. Pass the qualities here and the hard limits in the other arguments.
propertyTypeNoA single property type. Unlike search_properties, this tool takes one, not a list.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
shownYes
totalYesListings matching the structural filters. The description narrows the ranking, not this count.
marketYes
currencyNo
propertiesYesOrdered by relevance to the description, most relevant first.

TDQS

A5/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/destructive annotations, the description reveals important behavior: semantic matching, structural filters applied as hard constraints while description only ranks, and relevance-based ordering. It also clarifies the meaning of `total`, which could otherwise mislead callers.

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?

The description is dense but every sentence earns its place: core purpose, usage examples, sibling differentiation, combination guidance, and a key output-semantics caveat. It is front-loaded with the most important information first and avoids repetition of schema details.

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?

Given the tool's complexity, sibling overlap, and the presence of an output schema, the description covers all essential decision points: when to use it, how to combine filters, what the ranking behavior is, and what `total` means. Nothing critical is missing for correct invocation.

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

Parameters5/5

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

Even though the schema already documents all parameters, the description adds crucial semantics: the description text is a ranking signal, not a filter; structural filters constrain results; operation defaults to buy and must be called twice to cover both; propertyType is singular here unlike search_properties. This goes well beyond the baseline for high schema coverage.

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 states a specific verb ('Search'), resource ('Portugal listings'), and method ('describing the property in plain language... matched by meaning rather than keywords'). It clearly distinguishes itself from search_properties by contrasting structural vs descriptive queries.

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 explicitly explains when to use this tool: for wants that are not filter fields, with concrete examples. It also names the alternative (search_properties) for structural requests and explains how to combine both by passing structural filters here as hard constraints.

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.4/5.0
Disambiguation4/5

The two property-search tools overlap slightly, but their descriptions clearly separate structural filtering from free-text description ranking, and get_market_stats is explicitly positioned as statistical aggregation rather than listing retrieval. search_articles and search_neighbourhoods both serve editorial content, but their domains—process guidance versus area guides—are distinguishable enough.

Naming Consistency5/5

All tools use snake_case and follow a consistent search_/get_/find_ verb pattern keyed to the returned object type: search_properties, search_articles, search_neighbourhoods, get_property_detail, get_market_stats. The longer search_properties_by_description still fits the convention and is unambiguous.

Tool Count5/5

Seven tools is well-scoped for a read-only property information server: structured listing search, semantic listing search, similar-property lookup, detail retrieval, market statistics, neighbourhood guides, and editorial articles. Each tool serves a distinct user need without redundancy.

Completeness5/5

The tool surface covers the full informational workflow for Portuguese real estate: finding properties, exploring similar options, viewing full details, comparing market prices, and learning about areas and buying processes. There are no obvious dead ends for typical read-only property questions.

Resources