Skip to main content

DLD MCP Server

MCP server (local stdio or remote HTTP) for querying Dubai property sales transactions and rental contracts through OfferBrief.

The server uses MCP Python SDK v2 and supports the MCP 2026-07-28 protocol.

Installation

Run the published package directly:

uvx dld-mcp

Setup

Claude Code:

claude mcp add dld -- uvx dld-mcp

Claude Desktop:

{
  "mcpServers": {
    "dld": {
      "command": "uvx",
      "args": ["dld-mcp"]
    }
  }
}

Add that entry to ~/Library/Application Support/Claude/claude_desktop_config.json on macOS.

Remote (no install): add https://offerbrief.com/mcp as a custom connector in Claude or ChatGPT, or

claude mcp add --transport http dld https://offerbrief.com/mcp

Self-hosting the HTTP endpoint:

uvx dld-mcp --http --port 8765 --public-host example.com

It listens on 127.0.0.1 (put a TLS reverse proxy in front), is stateless, and rejects Host and Origin headers other than localhost and --public-host.

Tool

query_dld accepts:

Parameter Allowed values Default
area Area or building name, at least 2 non-whitespace characters Required
type sales, rentals sales
property_type all, apartment, villa, townhouse all
bedrooms all, studio, 1, 2, 3, 4, 5, 5+ all
date_from A real date in YYYY-MM-DD format OfferBrief default
date_to A real date in YYYY-MM-DD format OfferBrief default
metric stats, count, list stats
limit Integer from 1 through 50 10

bedrooms is supported only for sales: DLD's current rental feed has no bedroom data. date_from cannot be later than date_to. The default window is the last 12 months. list returns individual rows from the last 60 days only; stats and count cover any period. Each IP gets 300 queries a day.

Examples:

query_dld(area="Marina")
query_dld(area="Palm", property_type="villa", date_from="2024-01-01", metric="count")
query_dld(area="Downtown", type="rentals", property_type="apartment")
query_dld(area="JBR", metric="list", limit=10)

Invalid arguments fail before an API request. OfferBrief's own message is passed through for rejected queries and empty results. HTTP, rate limit, timeout, connection, and malformed response failures set MCP isError and return structured errors with a message and status code. Results include both structured content and JSON text for client compatibility. The tool declares read-only, non-destructive, idempotent access to an external data source.

OfferBrief dependency and privacy

Each tool call sends its query parameters to https://offerbrief.com/api/query. No credentials are used. The package does not log query parameters or response bodies.

Results reflect the data available from OfferBrief when the call is made. This package does not claim a refresh schedule or transaction count.

Development

git clone https://github.com/level09/dld-mcp
cd dld-mcp
uv sync --group dev
uv run pytest
uv run ruff check
uv build

License

MIT, OfferBrief

Metadata

Release files for dld-mcp 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dld-mcp 0.4.1
File Size Uploaded
dld_mcp-0.4.1.tar.gz 74.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dld-mcp 0.4.1
File Interpreter ABI Platform
dld_mcp-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 80.6 kB

Release files / dld_mcp-0.4.1.tar.gz

Download URL dld_mcp-0.4.1.tar.gz
Size 74.1 kB
Tags Source
SHA-256 checksum
How to use checksums
8db723da82602f9bec0f9e91d6acf21d9a3b04995316a0bb623fb07e107a2ab8
BLAKE2b-256 checksum
How to use checksums
f4d831e8baad93203c310d3136471424caf0c38f73942826c102ef47390fa52f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release files / dld_mcp-0.4.1-py3-none-any.whl

Download URL dld_mcp-0.4.1-py3-none-any.whl
Size 6.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f783d7cb6b33d62df45f9e9a300a7400f22c5cd9d47d248b185c4415e9833878
BLAKE2b-256 checksum
How to use checksums
8bea38cd56723ded2afa83a862f013feb914a23623f6309bcd26a9820897a948
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page