Australian development application and property intelligence data for AI agents.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
DA Leads MCP lets Claude, Cursor and other MCP clients query Australian development applications and address-level property intelligence through the DA Leads API.
It exposes 36 tools for DA search, canonical project search and monitoring, nearby applications/projects, council and category lookups, read-only SQL analysis, generic entitlement-filtered property intelligence, the closed public Full Property contract, focused Noise, Flood, Bushfire and Walkability screening, score-free Property Core, Suburb Signals, SA2 scenarios, Neighbourhood Context, Solar Resource, keyless samples and sandbox addresses.
Run without installing globally:
Or install with pipx:
Paid tools use a DA Leads API key. The property sample tools work without a key.
DALEADS_API_KEY is the only environment variable read by this package. Treat
it as a secret. It is sent only to the fixed official HTTPS API endpoint at
https://daleads.com.au/api.
For Claude Code 2.1+, add the stdio server to the current project with:
Keyless sample tools work immediately. For paid tools, launch Claude Code from
an environment that already provides DALEADS_API_KEY; do not commit a real
key to the project MCP configuration.
The 10 canonical Agent Skills live in skills/. A repository checkout exposes the
same files to Codex through .agents/skills/ and to Claude Code through
.claude/skills/; both directories are thin relative symlinks, so there is only
one maintained instruction source. The Skills guide agents through subject
identity, coverage, attribution and product-specific limits. They do not grant
an API entitlement or expand data rights.
search_das β Search Australian development applications with filters, newest
first. Parameters: state (NSW, VIC, QLD, SA, WA, TAS, NT, ACT), council (full
council name, e.g. City of Melbourne), category (trade category, e.g.
Renovation / Extension), suburb, postcode, since (ISO date YYYY-MM-DD,
lodged on or after), status_group (pending, advertised, approved,
rejected, other), is_residential (bool), page (default 1), limit
(per page, default 20, max 100). Returns {data: [DA record, ...], meta: {total, page, per_page, pages}}. Each record carries id, address, suburb,
postcode, council, state, trade_category, lodgement_date, status,
status_group, latitude, longitude, info_url and document links; paid plans add
description, summary, sub_category, cost_of_development, decision fields,
number_of_dwellings, building_type, storeys and the full documents list.
Applicant names are never returned on any plan.
get_da β Retrieve one development application in full. Parameters: da_id
(integer record id, as returned by search_das or nearby_das). Returns
{data: DA record} with the same field set as above.
nearby_das β Find development applications within a radius of a point,
nearest first. Parameters: lat, lng (WGS84 decimal degrees), radius_km
(default 5, max 50), category, since, status_group, page, limit
(max 100). Returns the same {data, meta} shape as search_das, with an extra
distance_km on each record.
list_categories β List every trade category with its record count, for
discovering valid category values. No parameters. Returns {data: [{name, slug, is_residential, record_count}, ...], meta: {total}} β categories such as
Renovation / Extension, Swimming Pool / Spa, Granny Flat / Secondary Dwelling
and Demolition.
list_councils β List councils with coverage and freshness, for discovering
valid council values. Parameters: limit (max councils to return, default 50).
Returns {data: [{council, state, record_count, last_lodgement, last_fetched}, ...], meta}.
get_stats β Coverage summary for the whole dataset. No parameters. Returns
{data: {total_records, records_last_7_days, date_range: {earliest, latest}, by_state: [...], by_category: [...]}}.
sql_query β Run a read-only SQL query for custom aggregation the filter
tools cannot express. Pro plan only. Parameters: query (a single SELECT
against the das table), params (optional list of values for %s
placeholders). Available columns: id, address, address_suburb, address_postcode,
council_name, council_reference, state, trade_category, sub_category,
application_type, is_residential, lodgement_date, status, cost_of_development,
decision_date, decision_status, on_notice_from, on_notice_to,
number_of_dwellings, lot_count, land_use, building_type, storeys, latitude,
longitude, data_source, date_fetched, documents, info_url. Description and
summary are deliberately unavailable here because council free text can contain
personal contact details. SELECT only, capped at 1000 rows with a 10 second
timeout. Returns {columns: [...], rows: [[...], ...], row_count, truncated}.
These tools use the same DALEADS_API_KEY as every other paid tool. The API
enforces the key's project_intelligence entitlement and rights-cleared field
projection; the MCP package does not maintain a second capability list.
search_projects β Search canonical projects rather than independent DA
records. Parameters: q, state, normalized stage, normalized project_type,
changed_since (ISO-8601 timestamp), page, and limit (max 100). The client
sends the provider's canonical per_page parameter. Returns a {data, meta}
envelope with contract_version: project-intelligence-v1.
get_project β Retrieve one canonical project. Parameter: project_uid
(the stable identifier returned by search_projects). The current v1 response
contains identity, normalized status, location, linked applications and project
relations. Rights-gated fields are omitted rather than represented as coverage
or conflict metadata.
get_project_changes β Retrieve durable changes for one project. Parameters:
project_uid, optional initial since, continuation cursor, and limit
(max 100). Persist meta.cursor after every response. Use a non-null
meta.next_cursor only to fetch the next page immediately. Change values remain
redacted until field-level delivery provenance is available.
nearby_projects β Search canonical projects around a WGS84 point. Parameters:
lat, lng, radius_km, optional stage and project_type, page, and limit.
create_project_watch β Create or idempotently replay a persistent signed
callback for future rights-cleared events on one project_uid. Parameters:
project_uid, a public HTTPS callback_url, and a stable idempotency_key.
This tool changes external state and returns the signing secret.
list_project_watches β List watches owned by the current API key. Signing
secrets are never returned by the list operation.
deactivate_project_watch β Stop one owned watch by watch_uid. Delivery
audit rows remain durable. Pending work is suppressed, but an HTTPS request
already in flight cannot be recalled and remains visible in the audit.
Receivers must deduplicate the stable callback Idempotency-Key header.
The repository includes skills/daleads-project-monitoring for cursor polling
and explicit callback management. It is installed from the GitHub repository, not bundled inside the
PyPI wheel.
property_intelligence β Generic entitlement-filtered address-level
property lookup for existing and manually issued keys. Parameters: address
(free text, e.g. 34 Mary St Clayton VIC) or lat + lng together, and
optional components (comma-separated subset to request). A requested name
never grants a capability: the API intersects it with the key's server-side
entitlement and field-level rights policy. This tool is not proof of a Full
Self-Serve entitlement; new Full workflows should use the closed tool below.
full_property_intelligence β Closed public Full Property Intelligence
Self-Serve lookup. Parameters: address (recommended) or lat + lng
together. It requests the base facts das, poi, planning, transport,
utilities, administrative and public_housing; named hazard leaves for
bushfire, flood, coastal, landslide and fire history; and named environmental
leaves for soil, protected-area, heritage, threatened-species, Ramsar, koala,
ecological, EPBC, bioregion and biodiversity context. The exact environmental
leaf names are pinned in contracts/focused-api-v1.json.
It also requests exactly these score leaves: scores.noise,
scores.aircraft_noise, scores.flood, and scores.bushfire. It never requests
top-level hazards, environment or scores, so a new provider field cannot
enter Full automatically. Explicit official, rights-gated contamination and
register facts may return as Property Core context; they do not grant
scores.contamination or publish the standalone Contamination product. Solar,
Neighbourhood Heat, Landscape Openness and the Walkability Pilot are excluded.
The Full key carries separate property_core and suburb_intelligence
capabilities, which do not add fields to this response. Provider-side source
and rights gates still apply to every returned field.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/daleads-mcp)<a href="https://allmcps.com/mcp/daleads-mcp"><img src="https://allmcps.com/api/badge/daleads-mcp?style=directory" alt="Daleads MCP on AllMCPs" /></a>