Skip to main content
Glama

Belgium Data Desk

House and apartment sale prices in Belgium (Statbel)

real_estate_prices
Read-only

What homes sell for in any of the 565 municipalities (2025 boundaries; Dutch, French or pre-merger names and NIS codes work), a province, a region or Belgium, from Statbel's official real-estate sales statistics (deeds of sale, 2010 to the latest full year plus the latest half-year). For houses (all, or terraced/semi-detached with 2-3 facades, or detached with 4+ facades) and apartments: the median price, the 25th and 75th percentile, the number of sales and the change of the median over five years. rank_by 'median_price' ranks municipalities within a province, region or Belgium, leaving out places with too few sales for a comparable median. Starts with key_facts; says when a figure rests on few sales. Prices are nominal sale prices of the homes that happened to be sold, not valuations of a specific home, and not rents. Examples: What does a house or an apartment cost in Mechelen compared with Leuven? → {"places":["Mechelen","Leuven"]}; Where in Limburg are houses most expensive? → {"rank_by":"median_price","within":"Limburg","type":"house","limit":5}; Median apartment price in Belgium in 2020 → {"places":["Belgium"],"type":"apartment","year":2020}.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "real_estate_prices"
  }
}

Input Schema

NameRequiredDescriptionDefault
typeNoDefault 'all' (houses and apartments). h23 = terraced or semi-detached houses, h4 = detached houses.
yearNoSale year, 2010 to the latest full year; default the latest.
limitNoWith rank_by; default 10.
orderNoWith rank_by; default highest.
placesNoUp to 6 places to compare, e.g. ['Mechelen','Leuven'], ['Limburg','Flanders','Belgium'] or ['44088']. Default Belgium.
withinNoWith rank_by: a province, region or 'Belgium' (default).
rank_byNoRank municipalities by median price of one type (default houses) instead of listing places.
min_salesNoWith rank_by: leave out municipalities with fewer sales than this, default 20.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds useful behavior beyond that: output starts with key_facts, low-sample figures are flagged, and rank_by drops municipalities with too few sales. It does not discuss rate limits or data freshness beyond the year range.

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

Conciseness4/5

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

Front-loaded with the core purpose and scope, then property types, metrics, ranking behavior and caveats, ending with worked examples. It is dense but every clause carries information; the single long paragraph is the main structural weakness.

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?

With no output schema, the description still names the returned metrics (median, 25th/75th percentile, sale count, five-year change) and the key_facts preamble, and it covers coverage periods, geography resolution and the low-sample caveat. An agent has enough to call it correctly without further documentation.

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

Parameters4/5

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 real meaning: places accept Dutch, French or pre-merger names and NIS codes, and rank_by ranks municipalities within a province/region/Belgium while excluding thin-sample places. The examples map natural questions to parameter combinations, which the schema alone does not do.

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?

States a specific verb and resource ('what homes sell for') plus the exact scope: 565 municipalities, provinces, regions, Belgium, from Statbel deed-of-sale statistics. It also enumerates the property types (house, h23, h4, apartment) and metrics, so an agent can distinguish it from generic statistics siblings like belgian_statistics.

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?

Gives three concrete invocation examples covering comparison, ranking and single-place lookup, and states exclusions ('not valuations of a specific home, and not rents'). It does not name a sibling tool as an alternative, so it stops short of full when/when-not routing.

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.