Skip to main content
Glama

Microburbs Australian Property Data

Street profile — this property's street vs its suburb

properties_street_profile
Read-onlyIdempotent

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.

Input Schema

TableJSON 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

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: the 404 behavior when no forecast row exists, and the pricing (20¢ per call). It also clarifies the semantic scope (street vs suburb comparison), which is beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: the first sentence lists the key metrics, the second clarifies the 404 behavior, and the third states pricing. Every sentence earns its place with no filler.

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?

For a single-parameter read-only tool with no output schema, the description covers the core semantics, the error behavior, and the cost. The only gap is that it doesn't describe the return format or structure, but with no output schema and a simple parameter, this is acceptable. The 404 disclosure is particularly valuable for an agent deciding whether to call this tool.

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

Parameters3/5

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

Schema description coverage is 0%, so the description carries the burden. The description implies the gnaf_id identifies the property whose street is profiled, but it doesn't explicitly explain what gnaf_id is or what format it should take. The description adds context about what the parameter is used for (the property's street), but the parameter itself is undocumented in the schema.

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

Purpose5/5

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

The description names a specific resource (the property's street), a clear verb (profile), and enumerates the exact metrics returned (median price, forecasts, growth, turnover, renter share, houses/units, suburb-wide medians, rank). It also distinguishes itself from suburb-wide tools by explicitly framing the comparison against the suburb.

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?

The description clearly states what the tool does and implicitly when to use it (when you need street-level vs suburb-wide data). It names the alternative concept (suburb-wide figures) and explicitly says the tool does NOT fall back to suburb-wide data, which helps an agent avoid using it for a different question. However, it doesn't name a specific sibling tool as the alternative.

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