Skip to main content
Glama

Microburbs Australian Property Data

Property · Street Profile

properties_street_profile
Read-onlyIdempotent

Shown in the property report as the 'Street Profile' table in the Market section.

The property's own street: current median price, 2/4/8-year price forecasts, realised growth, sale/rental turnover, renter share and houses/units on the street — plus the suburb-wide medians to judge it against and the street's rank on 4-year forecast growth.

404s when the street has no forecast row rather than falling back to suburb-wide figures, which would answer a different question.

Price: 20¢ per call.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "gnaf_id": "<gnaf_id>"
    },
    "name": "properties_street_profile"
  }
}

Input Schema

NameRequiredDescriptionDefault
gnaf_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "available": {
      -      "anyOf": [
      -        {
      -          "type": "boolean"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "`false` on no-data responses. Omitted on success — branch on `data !== null` if you want a single discriminator.",
      -      "title": "Available"
      -    },
      -    "data": {
      -      "anyOf": [
      -        {
      -          "additionalProperties": true,
      -          "description": "The property's own street, benchmarked against its suburb.",
      -          "example": {
      -            "address": "15 Rengor Close",
      -            "forecast_rank": {
      -              "band": "Top 1%",
      -              "percentile_from_top": 1,
      -              "rank": 1,
      -              "tercile": "upper third",
      -              "total": 81
      -            },
      -            "gnaf_id": "GANSW717662275",
      -            "profile": {
      -              "annual_2y": 14.2,
      -              "annual_4y": 11.1,
      -              "annual_8y": 8.7,
      -              "confidence": "Medium",
      -              "current_price": 1300000,
      -              "history": [
      -                {
      -                  "price": 1002844.58,
      -                  "suburb_med": 866399,
      -                  "year": 2024
      -                },
      -                {
      -                  "price": 1300000,
      -                  "suburb_med": 948908,
      -                  "year": 2025
      -                },
      -                {
      -                  "price": 1300000,
      -                  "suburb_med": 1040068,
      -                  "year": 2026
      -                }
      -              ],
      -              "houses_on_street": 12,
      -              "median_house_rent_week": 986.5,
      -              "n_sales": 47,
      -              "past_growth_pct": 2.82,
      -              "renters_pct": "0%",
      -              "renters_pct_num": 0,
      -              "sale_turnover": "Every 9.2 years (very high turnover)",
      -              "sale_turnover_years": 9.2,
      -              "street": "Rengor Cl",
      -              "target_2y": 1694197.26,
      -              "target_4y": 1979978.08,
      -              "target_8y": 2532146.5,
      -              "title": "Rengor Close",
      -              "units_on_street": 0
      -            },
      -            "street": "Rengor Close",
      -            "streets_in_suburb": 81,
      -            "suburb": "Belmont North",
      -            "suburb_medians": {
      -              "annual_4y": 6.3,
      -              "annual_8y": 4.6,
      -              "past_growth_pct": 3.23,
      -              "rental_turnover_years": 6,
      -              "renters_pct": 16,
      -              "sale_turnover_years": 14.4
      -            }
      -          },
      -          "properties": {
      -            "address": {
      -              "description": "Street address of the property, e.g. '15 Rengor Close'.",
      -              "title": "Address",
      -              "type": "string"
      -            },
      -            "forecast_rank": {
      -              "anyOf": [
      -                {
      -                  "additionalProperties": true,
      -                  "description": "Where the property's street sits on 4-year forecast growth against\nevery other street in the suburb.",
      -                  "properties": {
      -                    "band": {
      -                      "description": "Plain-English band: 'Top N%', 'Mid-pack' or 'Bottom N%'.",
      -                      "title": "Band",
      -                      "type": "string"
      -                    },
      -                    "percentile_from_top": {
      -                      "description": "rank/total as a percentage — 1 is best, 100 is worst.",
      -                      "title": "Percentile From Top",
      -                      "type": "integer"
      -                    },
      -                    "rank": {
      -                      "description": "1-based rank, 1 = strongest 4-year forecast.",
      -                      "title": "Rank",
      -                      "type": "integer"
      -                    },
      -                    "tercile": {
      -                      "description": "'upper third', 'middle third' or 'lower third'.",
      -                      "title": "Tercile",
      -                      "type": "string"
      -                    },
      -                    "total": {
      -                      "description": "Streets ranked (those with a 4-year forecast).",
      -                      "title": "Total",
      -                      "type": "integer"
      -                    }
      -                  },
      -                  "required": [
      -                    "rank",
      -                    "total",
      -                    "percentile_from_top",
      -                    "band",
      -                    "tercile"
      -                  ],
      -                  "title": "StreetForecastRank",
      -                  "type": "object"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "Rank of the street's 4-year forecast within the suburb. None when the street has no 4-year forecast or fewer than two streets rank."
      -            },
      -            "gnaf_id": {
      -              "description": "GNAF persistent identifier of the property.",
      -              "title": "Gnaf Id",
      -              "type": "string"
      -            },
      -            "profile": {
      -              "additionalProperties": true,
      -              "description": "The property's own street.",
      -              "example": {
      -                "annual_2y": 14.2,
      -                "annual_4y": 11.1,
      -                "annual_8y": 8.7,
      -                "confidence": "Medium",
      -                "current_price": 1300000,
      -                "history": [
      -                  {
      -                    "price": 1002844.58,
      -                    "suburb_med": 866399,
      -                    "year": 2024
      -                  },
      -                  {
      -                    "price": 1300000,
      -                    "suburb_med": 948908,
      -                    "year": 2025
      -                  },
      -                  {
      -                    "price": 1300000,
      -                    "suburb_med": 1040068,
      -                    "year": 2026
      -                  }
      -                ],
      -                "houses_on_street": 12,
      -                "median_house_rent_week": 986.5,
      -                "n_sales": 47,
      -                "past_growth_pct": 2.82,
      -                "renters_pct": "0%",
      -                "renters_pct_num": 0,
      -                "sale_turnover": "Every 9.2 years (very high turnover)",
      -                "sale_turnover_years": 9.2,
      -                "street": "Rengor Cl",
      -                "target_2y": 1694197.26,
      -                "target_4y": 1979978.08,
      -                "target_8y": 2532146.5,
      -                "title": "Rengor Close",
      -                "units_on_street": 0
      -              },
      -              "properties": {
      -                "annual_2y": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Forecast annual growth over the next 2 years (percent, e.g. 8.0 = 8%/yr).",
      -                  "title": "Annual 2Y"
      -                },
      -                "annual_4y": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Forecast annual growth over the next 4 years (percent).",
      -                  "title": "Annual 4Y"
      -                },
      -                "annual_8y": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Forecast annual growth over the next 8 years (percent).",
      -                  "title": "Annual 8Y"
      -                },
      -                "confidence": {
      -                  "description": "Confidence in the street model from its sample size: 'High' (>=50 sales), 'Medium' (>=15), 'Low' otherwise.",
      -                  "title": "Confidence",
      -                  "type": "string"
      -                },
      -                "current_price": {
      -                  "description": "Current median house price for the street (AUD) — the real sold median, not a model estimate.",
      -                  "title": "Current Price",
      -                  "type": "number"
      -                },
      -                "history": {
      -                  "description": "Year-by-year modelled price history vs the suburb median.",
      -                  "items": {
      -                    "additionalProperties": true,
      -                    "description": "One year of the street's modelled price history, with the suburb\nmedian as a baseline.",
      -                    "properties": {
      -                      "price": {
      -                        "anyOf": [
      -                          {
      -                            "type": "number"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Modelled street median price for the year (AUD), re-anchored to the sold median so the trajectory ends at `current_price`.",
      -                        "title": "Price"
      -                      },
      -                      "suburb_med": {
      -                        "anyOf": [
      -                          {
      -                            "type": "number"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Suburb median price for the same year (AUD) — baseline, not re-anchored.",
      -                        "title": "Suburb Med"
      -                      },
      -                      "year": {
      -                        "description": "Calendar year.",
      -                        "title": "Year",
      -                        "type": "integer"
      -                      }
      -                    },
      -                    "required": [
      -                      "year"
      -                    ],
      -                    "title": "StreetHistoryPoint",
      -                    "type": "object"
      -                  },
      -                  "title": "History",
      -                  "type": "array"
      -                },
      -                "houses_on_street": {
      -                  "anyOf": [
      -                    {
      -                      "type": "integer"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Number of houses on the street.",
      -                  "title": "Houses On Street"
      -                },
      -                "median_house_rent_week": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Median weekly house rent on the street (AUD/week).",
      -                  "title": "Median House Rent Week"
      -                },
      -                "n_sales": {
      -                  "description": "Number of sales underpinning the street model.",
      -                  "title": "N Sales",
      -                  "type": "integer"
      -                },
      -                "past_growth_pct": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Realised annual growth (CAGR, percent) across the street's price history. None when the history has fewer than two priced years.",
      -                  "title": "Past Growth Pct"
      -                },
      -                "rental_turnover": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Plain-language rental-turnover rate.",
      -                  "title": "Rental Turnover"
      -                },
      -                "rental_turnover_years": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "`rental_turnover` as a number of years.",
      -                  "title": "Rental Turnover Years"
      -                },
      -                "renters_pct": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Share of the street that is rented, e.g. '18%'.",
      -                  "title": "Renters Pct"
      -                },
      -                "renters_pct_num": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "`renters_pct` as a number, e.g. 18.0.",
      -                  "title": "Renters Pct Num"
      -                },
      -                "sale_turnover": {
      -                  "anyOf": [
      -                    {
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Plain-language sale-turnover rate, e.g. 'Every 12.0 years (average turnover)'.",
      -                  "title": "Sale Turnover"
      -                },
      -                "sale_turnover_years": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "`sale_turnover` as a number of years.",
      -                  "title": "Sale Turnover Years"
      -                },
      -                "street": {
      -                  "description": "Street name as stored in the forecast payload, e.g. 'Rengor Cl'.",
      -                  "title": "Street",
      -                  "type": "string"
      -                },
      -                "target_2y": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Forecast street price in 2 years (AUD).",
      -                  "title": "Target 2Y"
      -                },
      -                "target_4y": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Forecast street price in 4 years (AUD).",
      -                  "title": "Target 4Y"
      -                },
      -                "target_8y": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Forecast street price in 8 years (AUD).",
      -                  "title": "Target 8Y"
      -                },
      -                "title": {
      -                  "description": "Display name with the street suffix expanded, e.g. 'Rengor Close'.",
      -                  "title": "Title",
      -                  "type": "string"
      -                },
      -                "units_on_street": {
      -                  "anyOf": [
      -                    {
      -                      "type": "integer"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Number of units on the street.",
      -                  "title": "Units On Street"
      -                }
      -              },
      -              "required": [
      -                "street",
      -                "title",
      -                "current_price",
      -                "n_sales",
      -                "confidence",
      -                "history"
      -              ],
      -              "title": "StreetProfileRow",
      -              "type": "object"
      -            },
      -            "street": {
      -              "description": "The property's street, suffix-expanded, e.g. 'Rengor Close'.",
      -              "title": "Street",
      -              "type": "string"
      -            },
      -            "streets_in_suburb": {
      -              "description": "Forecastable streets in the suburb (the benchmark population).",
      -              "title": "Streets In Suburb",
      -              "type": "integer"
      -            },
      -            "suburb": {
      -              "description": "Suburb (SAL) name.",
      -              "title": "Suburb",
      -              "type": "string"
      -            },
      -            "suburb_medians": {
      -              "additionalProperties": true,
      -              "description": "Suburb-wide medians to judge the street against.",
      -              "properties": {
      -                "annual_4y": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Median 4-year forecast annual growth across the suburb's streets (percent).",
      -                  "title": "Annual 4Y"
      -                },
      -                "annual_8y": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Median 8-year forecast annual growth across the suburb's streets (percent).",
      -                  "title": "Annual 8Y"
      -                },
      -                "past_growth_pct": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Median realised annual growth across the suburb's streets (percent).",
      -                  "title": "Past Growth Pct"
      -                },
      -                "rental_turnover_years": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Median years between tenancies across the suburb's streets.",
      -                  "title": "Rental Turnover Years"
      -                },
      -                "renters_pct": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Median share of dwellings rented across the suburb's streets (percent).",
      -                  "title": "Renters Pct"
      -                },
      -                "sale_turnover_years": {
      -                  "anyOf": [
      -                    {
      -                      "type": "number"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "description": "Median years between sales across the suburb's streets.",
      -                  "title": "Sale Turnover Years"
      -                }
      -              },
      -              "title": "StreetSuburbMedians",
      -              "type": "object"
      -            }
      -          },
      -          "required": [
      -            "gnaf_id",
      -            "address",
      -            "suburb",
      -            "street",
      -            "streets_in_suburb",
      -            "profile",
      -            "suburb_medians"
      -          ],
      -          "title": "PropertyStreetProfile",
      -          "type": "object"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "The endpoint's payload, or `null` when Microburbs has no value."
      -    },
      -    "message": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "Human-readable explanation. Omitted on success.",
      -      "title": "Message"
      -    },
      -    "reason": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "description": "Machine-readable slug naming the no-data condition (e.g. `no_avm_for_GANSW704074813`). Stable per endpoint. Omitted on success.",
      -      "title": "Reason"
      -    }
      -  },
      -  "title": "ApiResponse[PropertyStreetProfile]",
      -  "type": "object",
      -  "x-fastmcp-top-level-schema": "ApiResponse_PropertyStreetProfile_"
      -}New value: +null
  2. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: it 404s when no forecast row exists rather than degrading, and it costs 20¢ per call — both material to an agent deciding whether to call it.

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 payload the agent gets, then the failure-mode caveat, then cost — a sensible ordering with no filler sentences. The metric enumeration is dense but each item describes real returned fields, so it earns its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/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 does the necessary work of enumerating returned fields and discloses cost and the 404 failure mode. The only material omission is the meaning and provenance of the gnaf_id input.

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

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage and a single required parameter, gnaf_id, which the description never mentions. It implies the tool is keyed to a property, but gives no hint what a GNAF ID is, its format, or that a sibling like geocode_address is needed to obtain one — a notable gap for an agent that must supply it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource and its scope: the property's own street, with an enumerated payload (median price, 2/4/8-year forecasts, realised growth, turnover, renter share, houses/units) plus suburb-wide medians and a 4-year forecast rank. It is distinguishable from suburb-level siblings by the explicit 'the property's own street' framing, though it never names which sibling to use instead.

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?

It sets clear context (the 'Street Profile' table in the Market section of a property report) and effectively excludes a misuse case: it 404s rather than falling back to suburb-wide figures, 'which would answer a different question'. That tells an agent not to treat it as a suburb substitute, but no alternative sibling is named for when street data is absent.

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.

Resources