FairSqft Dubai Property Facts

Dubai home prices, rents, comparables and forecasts from Dubai Land Department open data.

Should I use this

Quality & Safety

A
Description quality
81%
Schema completeness
96%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • LOWTool 'list_areas' description lacks action verbin list_areas
  • LOWTool 'get_comparables' description lacks action verbin get_comparables
  • LOWTool 'get_market_trend' description lacks action verbin get_market_trend

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,804Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (1.41% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "dubai-property": {
      "url": "https://fairsqft.com/mcp"
    }
  }
}

Remote endpoints

https://fairsqft.com/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_areas(query, coverage, property_type, limit, detail)

Dubai areas covered, with data freshness and coverage level.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Optional: part of the area name, e.g. \"marina\"."
    },
    "coverage": {
      "type": "string",
      "enum": [
        "full",
        "partial",
        "abstain"
      ],
      "description": "Optional filter."
    },
    "property_type": {
      "type": "string",
      "enum": [
        "apartment",
        "villa",
        "townhouse"
      ],
      "description": "Optional filter."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 500,
      "description": "Optional: at most this many areas (busiest first)."
    },
    "detail": {
      "type": "boolean",
      "description": "Optional: add rent, off-plan, segment and building counts per area."
    }
  }
}
🟢get_area_snapshot(area, segment, building)

Price and rent ranges from registered DLD deals and Ejari contracts, with sample sizes, 12-month forecast interval and our public backtest. Abstains when the sample is too small.

Input Schema

{
  "type": "object",
  "properties": {
    "area": {
      "type": "string",
      "description": "Area name or slug: any of the Dubai areas from list_areas, e.g. \"Dubai Marina\", \"jumeirah-village-circle\", \"JVC\" or \"Jumeirah Park\"."
    },
    "segment": {
      "type": "string",
      "description": "Segment key from get_area_snapshot, e.g. \"apartment-1br\" or \"villa-4br\". Optional: all segments if omitted."
    },
    "building": {
      "type": "string",
      "description": "Building name as registered with DLD (apartments), e.g. \"Marina Gate 1\". Optional: that building (with comparables when segment is also given)."
    }
  },
  "required": [
    "area"
  ]
}
🟢check_price(area, property_type, bedrooms, layout, size_sqft, ...)

Compares an asking price or rent against the fair range from real closed deals in the same segment.

Input Schema

{
  "type": "object",
  "properties": {
    "area": {
      "type": "string",
      "description": "Area name or slug: any of the Dubai areas from list_areas, e.g. \"Dubai Marina\", \"jumeirah-village-circle\", \"JVC\" or \"Jumeirah Park\"."
    },
    "property_type": {
      "type": "string",
      "enum": [
        "apartment",
        "villa",
        "townhouse"
      ]
    },
    "bedrooms": {
      "type": [
        "integer",
        "string"
      ],
      "description": "Bedrooms: 0-10, or \"studio\" (= 0). Give bedrooms or layout."
    },
    "layout": {
      "type": "string",
      "description": "Segment key from get_area_snapshot. Give bedrooms or layout."
    },
    "size_sqft": {
      "type": "number",
      "description": "Size in sqft: unit area for apartments, built-up area (BUA) for villas and townhouses."
    },
    "plot_sqft": {
      "type": "number",
      "description": "Plot size in sqft (villas and townhouses)."
    },
    "bua_sqft": {
      "type": "number",
      "description": "Built-up area in sqft (villas and townhouses)."
    },
    "building": {
      "type": "string",
      "description": "Building name as registered with DLD (apartments), e.g. \"Marina Gate 1\". Optional: compares with the building when DLD has 6+ ready sales of that type in it in 12 months."
    },
    "price_aed": {
      "type": "number",
      "description": "Asking price in AED, or annual rent in AED when intent is rent."
    },
    "intent": {
      "type": "string",
      "enum": [
        "buy",
        "rent"
      ],
      "default": "buy"
    }
  },
  "required": [
    "area",
    "property_type",
    "price_aed"
  ]
}
🟢get_comparables(area, segment, building, months, limit)

Recent registered sales in the segment: date, price, size, type.

Input Schema

{
  "type": "object",
  "properties": {
    "area": {
      "type": "string",
      "description": "Area name or slug: any of the Dubai areas from list_areas, e.g. \"Dubai Marina\", \"jumeirah-village-circle\", \"JVC\" or \"Jumeirah Park\"."
    },
    "segment": {
      "type": "string",
      "description": "Segment key from get_area_snapshot, e.g. \"apartment-1br\" or \"villa-4br\"."
    },
    "building": {
      "type": "string",
      "description": "Building name as registered with DLD (apartments), e.g. \"Marina Gate 1\". Optional."
    },
    "months": {
      "type": "integer",
      "minimum": 1,
      "maximum": 24,
      "default": 12
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 10
    }
  },
  "required": [
    "area",
    "segment"
  ]
}
🟢estimate_rent(area, segment)

Rent range from new Ejari contracts started in the last 12 months, with n.

Input Schema

{
  "type": "object",
  "properties": {
    "area": {
      "type": "string",
      "description": "Area name or slug: any of the Dubai areas from list_areas, e.g. \"Dubai Marina\", \"jumeirah-village-circle\", \"JVC\" or \"Jumeirah Park\"."
    },
    "segment": {
      "type": "string",
      "description": "Segment key from get_area_snapshot, e.g. \"apartment-1br\" or \"villa-4br\"."
    }
  },
  "required": [
    "area",
    "segment"
  ]
}
🟢get_market_trend(area)

Quarterly sale and rent index for the area.

Input Schema

{
  "type": "object",
  "properties": {
    "area": {
      "type": "string",
      "description": "Area name or slug: any of the Dubai areas from list_areas, e.g. \"Dubai Marina\", \"jumeirah-village-circle\", \"JVC\" or \"Jumeirah Park\"."
    }
  },
  "required": [
    "area"
  ]
}
🟢get_broker_guides(area, topic)

Broker-attributed facts about the area (author BRN, date, source), only those published with the broker's permission.

Input Schema

{
  "type": "object",
  "properties": {
    "area": {
      "type": "string",
      "description": "Area name or slug: any of the Dubai areas from list_areas, e.g. \"Dubai Marina\", \"jumeirah-village-circle\", \"JVC\" or \"Jumeirah Park\"."
    },
    "topic": {
      "type": "string",
      "description": "Optional topic filter."
    }
  },
  "required": [
    "area"
  ]
}
🟢start_brief(area, property_type, bedrooms, budget_aed, timeline, ...)

Prepares a Brief Battle request: brokers in the area compete for 72 hours with real units, ranked against DLD fair value. Returns a link the buyer opens to confirm and submit; nothing is sent until the buyer confirms.

Input Schema

{
  "type": "object",
  "properties": {
    "area": {
      "type": "string",
      "description": "Area where Brief Battle runs today: Jumeirah Park, The Springs or The Meadows."
    },
    "property_type": {
      "type": "string",
      "enum": [
        "apartment",
        "villa",
        "townhouse"
      ]
    },
    "bedrooms": {
      "type": "integer",
      "minimum": 1,
      "maximum": 7,
      "description": "Minimum bedrooms."
    },
    "budget_aed": {
      "type": "integer",
      "minimum": 300000,
      "maximum": 200000000,
      "description": "Maximum budget in AED."
    },
    "timeline": {
      "type": "string",
      "enum": [
        "asap",
        "3m",
        "6m",
        "12m"
      ]
    },
    "financing": {
      "type": "string",
      "enum": [
        "cash",
        "mortgage_preapproved",
        "mortgage_planned"
      ]
    },
    "must_haves": {
      "type": "string",
      "maxLength": 500,
      "description": "Free text for brokers. No emails, phone numbers or links."
    }
  },
  "required": [
    "area",
    "property_type",
    "bedrooms",
    "budget_aed"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools