Neighbouring suburbs
suburbs_hero_neighboursNearest neighbouring suburbs with distance in km, closest first.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| suburb_name | Yes |
suburbs_hero_neighboursNearest neighbouring suburbs with distance in km, closest first.
| Name | Required | Description | Default |
|---|---|---|---|
| suburb_name | Yes |
Changes observed during successful MCP inspections.
Output 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": "Nearest neighbouring suburbs, closest first.",
- "example": {
- "area_level": "suburb",
- "area_name": "Belmont North",
- "neighbours": [
- {
- "dist_km": 1,
- "sa3": "Lake Macquarie - East",
- "sal": "Floraville"
- },
- {
- "dist_km": 1.4,
- "sa3": "Lake Macquarie - East",
- "sal": "Belmont (NSW)"
- }
- ]
- },
- "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"
- },
- "neighbours": {
- "description": "Neighbouring suburbs ordered by distance (closest first).",
- "items": {
- "additionalProperties": true,
- "description": "One neighbouring suburb.",
- "example": {
- "dist_km": 1,
- "sa3": "Lake Macquarie - East",
- "sal": "Floraville"
- },
- "properties": {
- "dist_km": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Straight-line distance between the two suburbs' boundary centroids (km) — not the gap between boundaries, so touching suburbs still show a positive distance.",
- "title": "Dist Km"
- },
- "sa3": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "ABS SA3 region of the neighbour.",
- "title": "Sa3"
- },
- "sal": {
- "description": "Neighbouring suburb (SAL) name.",
- "title": "Sal",
- "type": "string"
- }
- },
- "required": [
- "sal"
- ],
- "title": "HeroNeighbourRow",
- "type": "object"
- },
- "title": "Neighbours",
- "type": "array"
- }
- },
- "required": [
- "area_name",
- "area_level",
- "neighbours"
- ],
- "title": "HeroNeighbours",
- "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[HeroNeighbours]",
- "type": "object",
- "x-fastmcp-top-level-schema": "ApiResponse_HeroNeighbours_"
-}New value: +nullDoes the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description usefully adds that results include distance in km and are sorted closest first, which is relevant output behavior. There is no contradiction between the description and the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: eight words that state the output, the unit of measurement, and the ordering. It is front-loaded with the core result and contains no filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only tool, the description covers the key return characteristics: nearest suburbs, distance in km, and closest-first order. However, with no output schema, it does not specify whether all neighbours are returned, what counts as 'neighbouring', or how this differs from the similarly named suburbs_shapes_neighbours.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the suburb_name parameter at all—no format, accepted values, casing, or examples. The parameter name is self-explanatory, but the description does not compensate for the missing schema-level documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning nearest neighbouring suburbs and specifies the key output attributes: distance in km and closest-first ordering. It does not use an explicit verb like 'Lists' or 'Returns', and it does not explicitly contrast itself with the similar-sounding suburbs_shapes_neighbours, but the resource and output format are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. In particular, suburbs_shapes_neighbours and suburbs_similar are close siblings, but no differentiation or exclusion is provided. The intended use is only implied by the output description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.