Dubai property prices, rents and trends from official Dubai Land Department records. Read-only.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Compare buying vs renting in one community or area: 12-month weighted median sale price, median annual rent, and the implied gross rental yield. Optionally filter to one property class.
Location slug (community or area) as returned by search_locations
Property class filter
Compare buying vs renting in one community or area: 12-month weighted median sale price, median annual rent, and the implied gross rental yield. Optionally filter to one property class.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Location slug (community or area) as returned by search_locations |
| propertyClass | string | Property class filter |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Location slug (community or area) as returned by search_locations"
},
"propertyClass": {
"enum": [
"apartment",
"villa",
"building",
"land"
],
"type": "string",
"description": "Property class filter"
}
}
}Stats for one building: 12-month sales, median price, trend, recent sales, property-type mix, and - where rent contracts can be attributed to the building - median annual rent and recent rent contracts, and a per-bedroom rent breakdown where enough contracts resolve a bedroom. Takes the communitySlug + buildingSlug pair returned by search_locations.
| Argument | Type | Description |
|---|---|---|
| buildingSlug* | string | |
| communitySlug* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"communitySlug",
"buildingSlug"
],
"properties": {
"buildingSlug": {
"type": "string",
"maxLength": 120,
"minLength": 1
},
"communitySlug": {
"type": "string",
"maxLength": 120,
"minLength": 1
}
}
}Headline stats for one community or area slug: 12-month sales volume, median price, price per sqm, 12-month trend, plus a property-class mix for sales and rents. When propertyClass is set for a community, also returns per-bedroom sales and rent breakdowns; rent bedroom coverage is partial and must be reported as approximate using rentBedroomCoveragePct and rentBedroomNote. Per-bedroom rent for a single building is not available.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Location slug (community or area) as returned by search_locations |
| propertyClass | string | When set, also return the per-bedroom sales breakdown and, where attributable, a per-bedroom rent breakdown with partial-coverage figure (communities only) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Location slug (community or area) as returned by search_locations"
},
"propertyClass": {
"enum": [
"apartment",
"villa",
"building",
"land"
],
"type": "string",
"description": "When set, also return the per-bedroom sales breakdown and, where attributable, a per-bedroom rent breakdown with partial-coverage figure (communities only)"
}
}
}City-wide Dubai sales KPIs over the last 12 months (transaction count, total value, median price, median price per sqm) plus data freshness. Good first call for broad questions.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Monthly transaction counts and median prices for a community/area slug (or city-wide when slug is omitted), for sales or rents, optionally filtered to one property class. Rent medians are annual contract values in AED/year.
| Argument | Type | Description |
|---|---|---|
| kind* | string | 'sale' = DLD sales transactions, 'rent' = Ejari rent contracts |
| slug | string | Omit for city-wide history |
| months | integer | |
| propertyClass | string | Property class filter |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"kind"
],
"properties": {
"kind": {
"enum": [
"sale",
"rent"
],
"type": "string",
"description": "'sale' = DLD sales transactions, 'rent' = Ejari rent contracts"
},
"slug": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Omit for city-wide history"
},
"months": {
"type": "integer",
"default": 24,
"maximum": 60,
"minimum": 3
},
"propertyClass": {
"enum": [
"apartment",
"villa",
"building",
"land"
],
"type": "string",
"description": "Property class filter"
}
}
}Sales split between the secondary (ready / resale) market and the off-plan (pre-completion developer) market for one community or area over the last 12 months - transaction count, total value, and median price for each. "ready" = completed homes resold on the secondary market; "off-plan" = pre-completion developer sales. Property flipping, reselling, and "resale market" questions are READY / secondary-market questions: report the ready row here and do not present off-plan figures as flipping or resale figures. Optionally filter to one property class.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Location slug (community or area) as returned by search_locations |
| propertyClass | string | Property class filter |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Location slug (community or area) as returned by search_locations"
},
"propertyClass": {
"enum": [
"apartment",
"villa",
"building",
"land"
],
"type": "string",
"description": "Property class filter"
}
}
}Communities with the biggest 12-month price moves (direction 'up' = risers, 'down' = fallers). Only communities with 30+ sales are included, so thin-volume noise is excluded.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| direction* | string |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"direction"
],
"properties": {
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
},
"direction": {
"enum": [
"up",
"down"
],
"type": "string"
}
}
}Most recent registered DLD sales or rent contracts for a community or area slug - real records to ground price talk in.
| Argument | Type | Description |
|---|---|---|
| kind* | string | 'sale' = DLD sales transactions, 'rent' = Ejari rent contracts |
| slug* | string | Location slug (community or area) as returned by search_locations |
| limit | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"slug",
"kind"
],
"properties": {
"kind": {
"enum": [
"sale",
"rent"
],
"type": "string",
"description": "'sale' = DLD sales transactions, 'rent' = Ejari rent contracts"
},
"slug": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Location slug (community or area) as returned by search_locations"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 15,
"minimum": 1
}
}
}Buildings in one community ranked by 12-month median sale price or median annual rent - answers 'cheapest/most expensive buildings in X'. Rent coverage is partial: Ejari records carry no building name, so only buildings whose project name identifies them uniquely have rent stats. Buildings with fewer than 5 records are excluded.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| order* | string | |
| metric* | string | |
| communitySlug* | string | Community slug from search_locations |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"communitySlug",
"metric",
"order"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 15,
"minimum": 3
},
"order": {
"enum": [
"cheapest",
"most_expensive"
],
"type": "string"
},
"metric": {
"enum": [
"sale_price",
"annual_rent"
],
"type": "string"
},
"communitySlug": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Community slug from search_locations"
}
}
}Communities ranked by 12-month median sale price or median annual rent - the direct answer to 'cheapest areas', 'most expensive communities', 'most affordable rents'. Only communities with 30+ transactions are ranked; without a propertyClass filter, only residential classes (apartments + villas) count, so whole-building leases and land deals don't skew the medians.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| order* | string | |
| metric* | string | Rank by sale prices or by annual rents |
| propertyClass | string | Property class filter |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"metric",
"order"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 15,
"minimum": 3
},
"order": {
"enum": [
"cheapest",
"most_expensive"
],
"type": "string"
},
"metric": {
"enum": [
"sale_price",
"annual_rent"
],
"type": "string",
"description": "Rank by sale prices or by annual rents"
},
"propertyClass": {
"enum": [
"apartment",
"villa",
"building",
"land"
],
"type": "string",
"description": "Property class filter"
}
}
}Resolve a free-text Dubai location name (community, area, or building) to canonical slugs. Always call this first when the user names a place; other tools take the returned slugs.
| Argument | Type | Description |
|---|---|---|
| kind | string | Restrict results to one kind |
| query* | string | Location name to search for |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"kind": {
"enum": [
"community",
"area",
"building"
],
"type": "string",
"description": "Restrict results to one kind"
},
"query": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "Location name to search for"
}
}
}