Suburb · Terrain slope profile
suburbs_risks_slopeMedian / 90th-percentile property gradient and share of steep (>10°) properties.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| suburb_name | Yes |
suburbs_risks_slopeMedian / 90th-percentile property gradient and share of steep (>10°) properties.
| 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": "Terrain gradient across the suburb's properties (degrees).",
- "example": {
- "area_level": "suburb",
- "area_name": "Belmont North",
- "median_slope_deg": 4.43,
- "n_properties": 2727,
- "p90_slope_deg": 8.29,
- "steep_pct": 4.44,
- "steep_threshold_deg": 10
- },
- "properties": {
- "area_level": {
- "const": "suburb",
- "description": "Always 'suburb'.",
- "title": "Area Level",
- "type": "string"
- },
- "area_name": {
- "description": "Canonical ABS SAL suburb name.",
- "title": "Area Name",
- "type": "string"
- },
- "median_slope_deg": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Median property gradient (degrees).",
- "title": "Median Slope Deg"
- },
- "n_properties": {
- "description": "Properties with a terrain sample.",
- "title": "N Properties",
- "type": "integer"
- },
- "p90_slope_deg": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "90th-percentile property gradient (degrees).",
- "title": "P90 Slope Deg"
- },
- "steep_pct": {
- "anyOf": [
- {
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Share of properties steeper than the threshold (%).",
- "title": "Steep Pct"
- },
- "steep_threshold_deg": {
- "description": "Gradient threshold used for steep_pct (degrees).",
- "title": "Steep Threshold Deg",
- "type": "number"
- }
- },
- "required": [
- "area_name",
- "area_level",
- "n_properties",
- "steep_threshold_deg"
- ],
- "title": "SlopeProfile",
- "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[SlopeProfile]",
- "type": "object",
- "x-fastmcp-top-level-schema": "ApiResponse_SlopeProfile_"
-}New value: +nullDoes the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so the description doesn't need to repeat that. It adds value by specifying the exact output metrics (median, 90th percentile, share of steep). However, it doesn't disclose other behavior like error handling or return format, which is acceptable given the simplicity.
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, concise sentence that front-loads the key metrics. It has no fluff and efficiently communicates the purpose.
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 is adequate but not complete. It tells what it returns but doesn't clarify units (degrees vs percentage) or the structure of the response. Given the many siblings, it could benefit from noting it's for slope-specific risks.
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 no description for suburb_name, and the description doesn't mention the parameter at all. Since schema coverage is 0%, the description should explain what suburb_name should be, but it doesn't. The parameter name is self-explanatory, but the description adds no semantics.
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 median and 90th-percentile property gradient and share of steep properties, which is specific and distinguishes it from other risk tools like bushfire or flood. It uses a specific verb+resource: it returns a slope profile for a suburb.
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 does not mention when to use this tool vs alternatives. With many suburbs_risks_* siblings, it doesn't say 'for slope-related risks use this' or contrast with suburbs_risks_all. The usage is implied by the name and content, 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.