Skip to main content
Glama

Microburbs Australian Property Data

Suburb · Sales summary (3-year count + median)

suburbs_sales_summary
Read-onlyIdempotent

Number of sales and median sold price in the suburb over the last 3 years.

Price: 10¢ 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": {
      "suburb_name": "<suburb_name>"
    },
    "name": "suburbs_sales_summary"
  }
}

Input Schema

NameRequiredDescriptionDefault
suburb_nameYes

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": "3-year sales count and median sold price for the suburb.",
      -          "example": {
      -            "area_level": "suburb",
      -            "area_name": "Belmont North",
      -            "median_sold_price_3y": 965000,
      -            "sales_count_3y": 155
      -          },
      -          "properties": {
      -            "area_level": {
      -              "description": "Always 'suburb' for these endpoints.",
      -              "title": "Area Level",
      -              "type": "string"
      -            },
      -            "area_name": {
      -              "description": "Suburb (SAL) name.",
      -              "title": "Area Name",
      -              "type": "string"
      -            },
      -            "median_sold_price_3y": {
      -              "anyOf": [
      -                {
      -                  "type": "number"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "description": "Median sold price (AUD) across those sales.",
      -              "title": "Median Sold Price 3Y"
      -            },
      -            "sales_count_3y": {
      -              "description": "Number of recorded sales in the last 3 years.",
      -              "title": "Sales Count 3Y",
      -              "type": "integer"
      -            }
      -          },
      -          "required": [
      -            "area_name",
      -            "area_level",
      -            "sales_count_3y"
      -          ],
      -          "title": "SalesSummary",
      -          "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[SalesSummary]",
      -  "type": "object",
      -  "x-fastmcp-top-level-schema": "ApiResponse_SalesSummary_"
      -}New value: +null
  2. First observed

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: the 3-year aggregation window and an explicit cost of 10¢ per call, which matters for repeated use. It still says nothing about how the suburb is matched, what happens on an ambiguous or unknown suburb, or how the median is computed.

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?

Two short front-loaded sentences with the metric and time window first, followed by a separated cost line; nothing is padded. Slightly thin rather than verbose, and the bolded price line is the only formatting flourish.

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

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter, no-output-schema tool the description covers what is measured but omits the two things an agent most needs: the expected form of suburb_name and the shape of the result (count plus median as separate values, boundaries of the 3-year window). Annotations handle the read-only profile, but the input contract remains undocumented.

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?

There is a single required parameter with 0% schema description coverage, so the description carries the full burden of explaining it and does not. It never says whether suburb_name is a free-text name, a canonical suburb, or an ID, nor how ambiguity is handled — notably it does not point at geocode_suburb for resolution.

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 measurement ('Number of sales and median sold price in the suburb') plus an explicit window ('last 3 years'), so the agent knows exactly what it returns. It does not distinguish itself from near-neighbours like suburbs_sales_recent or suburbs_market_median_sale_price, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no statement of when a different sales tool (e.g. a recent-sales or median-price series tool) is the better choice, and no prerequisites such as needing a resolved suburb name. Usage can only be inferred from the 3-year framing.

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