Suburb · Crime — breakdown by type
suburbs_crime_breakdownPer-crime-type rates (predicted incidents per 100,000 residents per year) for the suburb vs national medians.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| suburb_name | Yes |
suburbs_crime_breakdownPer-crime-type rates (predicted incidents per 100,000 residents per year) for the suburb vs national medians.
| 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": "Per-crime-type breakdown table, highest rate first.",
- "example": {
- "area_level": "suburb",
- "area_name": "Belmont North",
- "breakdown": [
- {
- "diff_pct": 12,
- "label": "Property",
- "national_median": 898,
- "rate": 1008,
- "type": "property",
- "verdict": "Above average"
- },
- {
- "diff_pct": -12,
- "label": "Drugs",
- "national_median": 409,
- "rate": 358,
- "type": "drugs",
- "verdict": "Below average"
- }
- ],
- "unit": "predicted incidents per 100,000 residents per year"
- },
- "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"
- },
- "breakdown": {
- "description": "One row per crime type, sorted by rate descending.",
- "items": {
- "additionalProperties": true,
- "description": "One crime type's suburb rate vs the national median.",
- "properties": {
- "diff_pct": {
- "description": "Suburb rate vs national median, rounded percentage delta.",
- "title": "Diff Pct",
- "type": "integer"
- },
- "label": {
- "description": "Display label (e.g. 'Property', 'Public Order').",
- "title": "Label",
- "type": "string"
- },
- "national_median": {
- "description": "National per-mesh-block median rate for this crime type.",
- "title": "National Median",
- "type": "number"
- },
- "rate": {
- "description": "Average rate across this suburb's mesh blocks — predicted incidents per 100,000 residents per year — rounded.",
- "title": "Rate",
- "type": "integer"
- },
- "type": {
- "description": "Machine key (e.g. 'property', 'public_order').",
- "title": "Type",
- "type": "string"
- },
- "verdict": {
- "description": "Band for the delta: 'Very low', 'Below average', 'Average', 'Above average' or 'High'.",
- "title": "Verdict",
- "type": "string"
- }
- },
- "required": [
- "type",
- "label",
- "rate",
- "national_median",
- "diff_pct",
- "verdict"
- ],
- "title": "CrimeBreakdownRow",
- "type": "object"
- },
- "title": "Breakdown",
- "type": "array"
- },
- "unit": {
- "description": "Unit of every rate / national_median value — always 'predicted incidents per 100,000 residents per year'.",
- "title": "Unit",
- "type": "string"
- }
- },
- "required": [
- "area_name",
- "area_level",
- "unit",
- "breakdown"
- ],
- "title": "CrimeBreakdown",
- "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[CrimeBreakdown]",
- "type": "object",
- "x-fastmcp-top-level-schema": "ApiResponse_CrimeBreakdown_"
-}New value: +nullDoes the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. The description adds that incidents are 'predicted' and normalized per 100,000 residents per year, which is valuable context about data nature and units. This goes beyond annotations and is accurate.
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 a single, tightly worded sentence. It front-loads the key output (per-crime-type rates) and the comparison to national medians, with no filler. Every word earns its place.
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 tool with one parameter and no output schema, the description conveys the core purpose and units but omits details like which crime types are included, how results are formatted, or any limitations. It is minimally adequate but could be more complete for an agent to fully anticipate the response.
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?
The schema has one parameter, suburb_name, with zero description coverage. The tool description does not explain or add meaning to this parameter. Since schema coverage is 0%, the description should compensate but doesn't, leaving the agent to rely on the parameter name alone. This is insufficient for full clarity.
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 states the tool provides per-crime-type rates (predicted incidents per 100,000 residents per year) for a suburb compared to national medians. It specifies the verb and resource, and the mention of 'per-crime-type' and 'vs national medians' differentiates it from siblings like suburbs_crime_summary or suburbs_crime_by_mesh_block.
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 implies when to use the tool (when you need a breakdown by crime type) but does not explicitly mention alternatives or exclusions. It lacks guidance like 'use this instead of suburbs_crime_summary when you need per-type rates.' Usage context is implied but not explicit.
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.