Skip to main content
Glama

Server Details

Search public property listings in Portugal, compare homes and read INE housing statistics.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a distinct resource and action: searching listings, retrieving one property, comparing multiple properties, and reading area statistics. Overlap is minimal, and descriptions clarify boundaries such as public-only data and required identifiers.

Naming Consistency5/5

All names follow a consistent snake_case verb_noun pattern: search_properties, get_property, compare_properties, get_area_statistics. The convention is predictable and readable.

Tool Count5/5

Four tools are well-scoped for a read-only public property data server; each covers a distinct need without redundancy. The set is compact rather than thin or excessive.

Completeness3/5

Core read operations are covered, but the surface lacks reference-data tools for discovering valid district and municipality slugs, purposes, and filter values. Since search_properties and get_area_statistics require these identifiers, agents may hit dead ends without external knowledge.

Available Tools

4 tools
compare_propertiesCompare propertiesA
Read-onlyIdempotent
Inspect

Compare 2–4 distinct public property IDs using the same fields and explicit EUR/period/m2 units. Null is unknown. Fails if any requested property is no longer public.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYes
localeNopt

TDQS

A4.2/5.0
Behavior5/5

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

The annotations already declare readOnly, idempotent, and non-destructive behavior, so the bar is lower. The description adds valuable behavioral context beyond that: null means unknown, the tool fails if any property is no longer public, and units are explicit EUR/period/m². These are exactly the non-obvious runtime behaviors an agent needs.

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?

Three short sentences, each carrying essential information: core operation, unit/null semantics, and failure mode. The most important constraint is front-loaded. No filler or repetition of schema details.

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

Completeness4/5

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

There is no output schema, but the description covers key return semantics: same fields, explicit units, and null meaning unknown. The failure mode is also disclosed. It lacks a bit of detail on locale behavior, but for a two-parameter comparison tool with strong annotations, this is nearly complete.

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 description coverage is 0%, so the description must compensate. It does add meaning for the ids parameter: IDs must be 2–4, distinct, and public, and failure occurs if a property is no longer public. However, the locale parameter is never mentioned, so the description only partially compensates for the schema 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 starts with a specific verb and resource: compare 2–4 distinct public property IDs. This clearly distinguishes it from siblings like get_property (single property), search_properties (search), and get_area_statistics (area stats) without needing to open the schema.

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

Usage Guidelines3/5

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

The description implies when to use it: whenever you need to compare 2–4 public properties. However, it never explicitly names alternatives or states when not to use it, so the agent has to infer the use case from the word 'compare' and the ID-count constraints.

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

get_area_statisticsRead municipal housing statisticsA
Read-onlyIdempotent
Inspect

Read INE median completed dwelling sale value per m2 for a Portuguese municipality, with period, source and license. Not asking prices, rents, a valuation or forecast. Requires both district and municipality slugs.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNopt
districtYes
municipalityYes

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the read-only, idempotent, non-destructive safety profile. The description adds value by disclosing that output includes 'period, source and license' and by explicitly scoping out asking prices, rents, valuations, and forecasts. This manages agent expectations about the returned data beyond what annotations provide.

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?

Two tight sentences deliver the core action, the exclusions, and the usage prerequisite with no filler. The most important information is front-loaded, and every sentence earns its place.

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

Completeness4/5

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

For a simple read-only lookup with no output schema, the description specifies the data source, exact metric, included metadata, and required inputs. It does not describe the exact response shape or edge-case behavior, but the annotations and simple parameter set reduce the risk of misinvocation.

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 description coverage is 0%, so the description must carry parameter meaning. It does clarify that district and municipality are 'slugs' and both are required, which the schema does not state. However, the optional locale parameter is never mentioned, leaving its semantics entirely to the schema enum/default.

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 begins with a specific verb and resource: 'Read INE median completed dwelling sale value per m2 for a Portuguese municipality.' The explicit negatives ('Not asking prices, rents, a valuation or forecast') clearly separate this statistical tool from the property-level sibling tools.

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

Usage Guidelines4/5

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

The description gives a clear precondition ('Requires both district and municipality slugs') and states what the tool is not for, which is a useful when-not signal. It does not name an alternative tool like search_properties for the excluded cases, so it stops short of full routing guidance.

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

get_propertyRead a propertyA
Read-onlyIdempotent
Inspect

Get current public details using the public id returned by search_properties. Draft, archived, sold, removed or unknown properties return not found. No private owner/contact/CRM data.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
localeNopt

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, but the description adds valuable behavioral context: draft/archived/sold/removed/unknown properties return not found, and no private data is exposed. This goes beyond what annotations provide.

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?

Three concise sentences with no filler. The core purpose and id source are front-loaded, followed by edge-case behavior and data restrictions. Every sentence earns its place.

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

Completeness4/5

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

The description covers the essential behavior needed to call the tool correctly: id source, not-found cases, and data scope. With no output schema, it could specify the returned fields more explicitly, but for a simple read operation with strong annotations, this is nearly complete.

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 description coverage is 0%, so the description must compensate for parameter documentation. It adds meaning for the 'id' parameter by specifying it is the public id returned by search_properties, but it does not mention the 'locale' parameter at all. Partial compensation only.

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 action ('Get current public details') and resource ('property identified by public id'), and explicitly ties the id to search_properties. It also clarifies what is NOT returned (private data), distinguishing it clearly from sibling tools.

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

Usage Guidelines4/5

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

The description clearly indicates when to use the tool — after search_properties has returned a public id. It also signals when it is not suitable (private owner/contact/CRM data). It doesn't explicitly contrast with compare_properties or get_area_statistics, but the context makes the primary use case clear.

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

search_propertiesSearch CasaNest propertiesB
Read-onlyIdempotent
Inspect

Search currently published properties in Portugal by exact structured filters. Requires purpose; municipality requires district. Rental budgets require month/week/night. Up to 20 results, cursor tied to filters. No results means no listing matches these filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
localeNopt
purposeYes
districtNoPortuguese district slug, e.g. leiria. Does not mean municipality.
featuresNo
typologyNo
price_maxNo
price_minNo
rent_periodNoRequired with a rent/vacation budget: prices in different periods are not comparable.
bedrooms_minNo
municipalityNoMunicipality slug; requires its district, e.g. district=leiria, municipality=leiria.
net_area_minNo
property_typeNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-open-world, non-destructive), so the bar is lower. The description adds genuinely useful behavior beyond that: the 20-result cap, that the cursor is tied to the filters, and that an empty result means no listing matches. Return format details are absent but not critical.

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?

Five short, front-loaded sentences, each carrying a distinct constraint (scope, required fields, dependency rules, pagination, empty-state). No filler and no repetition of the title.

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

Completeness2/5

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

For a 14-parameter search tool with 21% schema coverage and no output schema, the description covers only a handful of fields and never explains filter-combination semantics, enum meanings, or how to interpret result ordering. An agent would need to guess at the meaning and behavior of most filters.

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

Parameters2/5

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

Schema coverage is only 21% across 14 parameters, so the description should compensate heavily. It explains the purpose requirement, municipality-requires-district relationship, and rent_period semantics, but leaves price_min/max, bedrooms_min, net_area_min, typology, property_type, features, locale, and limit undocumented in both schema and description.

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

Purpose4/5

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

States a specific verb (search) and resource (currently published properties in Portugal) with a clear scoping mechanism ('exact structured filters'). The scope distinguishes it from a single fetch, but it never names or contrasts the siblings compare_properties/get_property/get_area_statistics, so it stops short of a 5.

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

Usage Guidelines3/5

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

Provides conditional prerequisites (purpose required, municipality requires district, rent budgets require rent_period), which is real usage guidance. However, it offers no explicit when-to-use/when-not versus the three sibling tools, leaving the routing decision to inference.

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.

  1. 4 tool updates
    • First observedcompare_properties
    • First observedget_area_statistics
    • First observedget_property
    • First observedsearch_properties

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables users to calculate Portuguese property purchase costs (IMT and stamp duty) and look up annual IMI property tax rates and costs for all 308 municipalities, with sources and year.
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Japanese real-estate actual transaction prices and official land prices (official MLIT Reinfolib data): search by area, period, and property type, with published land-price reference points.
    -
  • A
    license
    C
    quality
    D
    maintenance
    Enables 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.
    14
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources