Skip to main content
Glama

Microburbs Australian Property Data

Suburb · All ethnicity — bundle

suburbs_ethnicity_all
Read-onlyIdempotent

Cultural make-up of the suburb: ancestry breakdown and country of birth, each as a share of residents.

Useful for understanding who a suburb's buyers and renters are. The map version, which splits these by mesh block, is a separate call.

Price: 6¢ 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_ethnicity_all"
  }
}

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": [
      -        {
      -          "properties": {
      -            "ancestry": {
      -              "anyOf": [
      -                {
      -                  "items": {
      -                    "additionalProperties": true,
      -                    "description": "One row of ancestry / birthplace data.",
      -                    "example": {
      -                      "ancestry": "Australians",
      -                      "area_level": "suburb",
      -                      "area_name": "Belmont North",
      -                      "proportion": 0.926304347826087
      -                    },
      -                    "properties": {
      -                      "ancestry": {
      -                        "anyOf": [
      -                          {
      -                            "type": "string"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Only on /ethnicity/ancestry.",
      -                        "title": "Ancestry"
      -                      },
      -                      "area_level": {
      -                        "description": "Always 'suburb'.",
      -                        "title": "Area Level",
      -                        "type": "string"
      -                      },
      -                      "area_name": {
      -                        "description": "Suburb (SAL) name.",
      -                        "title": "Area Name",
      -                        "type": "string"
      -                      },
      -                      "birthplace": {
      -                        "anyOf": [
      -                          {
      -                            "type": "string"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Only on /ethnicity/birthplace.",
      -                        "title": "Birthplace"
      -                      },
      -                      "proportion": {
      -                        "anyOf": [
      -                          {
      -                            "type": "number"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Share of the suburb identifying with this category (0–1).",
      -                        "title": "Proportion"
      -                      }
      -                    },
      -                    "required": [
      -                      "area_name",
      -                      "area_level"
      -                    ],
      -                    "title": "EthnicityRow",
      -                    "type": "object"
      -                  },
      -                  "type": "array"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "title": "Ancestry"
      -            },
      -            "birthplace": {
      -              "anyOf": [
      -                {
      -                  "items": {
      -                    "additionalProperties": true,
      -                    "description": "One row of ancestry / birthplace data.",
      -                    "example": {
      -                      "ancestry": "Australians",
      -                      "area_level": "suburb",
      -                      "area_name": "Belmont North",
      -                      "proportion": 0.926304347826087
      -                    },
      -                    "properties": {
      -                      "ancestry": {
      -                        "anyOf": [
      -                          {
      -                            "type": "string"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Only on /ethnicity/ancestry.",
      -                        "title": "Ancestry"
      -                      },
      -                      "area_level": {
      -                        "description": "Always 'suburb'.",
      -                        "title": "Area Level",
      -                        "type": "string"
      -                      },
      -                      "area_name": {
      -                        "description": "Suburb (SAL) name.",
      -                        "title": "Area Name",
      -                        "type": "string"
      -                      },
      -                      "birthplace": {
      -                        "anyOf": [
      -                          {
      -                            "type": "string"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Only on /ethnicity/birthplace.",
      -                        "title": "Birthplace"
      -                      },
      -                      "proportion": {
      -                        "anyOf": [
      -                          {
      -                            "type": "number"
      -                          },
      -                          {
      -                            "type": "null"
      -                          }
      -                        ],
      -                        "description": "Share of the suburb identifying with this category (0–1).",
      -                        "title": "Proportion"
      -                      }
      -                    },
      -                    "required": [
      -                      "area_name",
      -                      "area_level"
      -                    ],
      -                    "title": "EthnicityRow",
      -                    "type": "object"
      -                  },
      -                  "type": "array"
      -                },
      -                {
      -                  "type": "null"
      -                }
      -              ],
      -              "title": "Birthplace"
      -            }
      -          },
      -          "title": "EthnicityAll",
      -          "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[EthnicityAll]",
      -  "type": "object",
      -  "x-fastmcp-top-level-schema": "ApiResponse_EthnicityAll_"
      -}New value: +null
  2. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, closed-world, non-destructive behavior, so the description's main added value is the explicit '6¢ per call' cost disclosure, which materially affects invocation decisions. It also discloses that finer-grained mesh-block data is a different call, preventing a wrong-tool attempt. It does not say anything about freshness, coverage, or result shape.

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 what the tool returns, then the use case, then the alternative-scope note, then cost. Every sentence carries information; the 'who a suburb's buyers and renters are' framing is slightly soft but earns its place as a use cue.

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

Completeness3/5

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

There is no output schema, and the description only partly fills that gap: it says results are 'shares of residents' but not the fields returned, whether shares are percentages or fractions, or how ancestry and birthplace are keyed. Combined with the undocumented suburb_name, an agent can select the tool but may have to probe to invoke it correctly.

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 single parameter suburb_name has 0% schema description coverage and the description adds no meaning: no hint about expected format, whether it must match an official suburb name, or whether geocode_suburb should be called first. With coverage this low the description is expected to compensate and does not.

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?

States the resource precisely: ancestry breakdown plus country of birth for a suburb, both as resident shares. The 'bundle' framing and the note that the mesh-block map version is a separate call distinguish it from the single-topic siblings (suburbs_ethnicity_ancestry / suburbs_ethnicity_birthplace) without naming them.

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?

Gives a concrete use case ('understanding who a suburb's buyers and renters are') and explicitly routes the mesh-block granularity need to a separate call. It does not state when to prefer the single-topic ancestry or birthplace tools over this bundle, which is the one remaining ambiguity.

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