Property · Development overlays at this point
properties_development_zoning_overlaysDevelopment overlays intersecting the property's parcel.
Price: 5¢ per call.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| gnaf_id | Yes |
properties_development_zoning_overlaysDevelopment overlays intersecting the property's parcel.
Price: 5¢ per call.
| Name | Required | Description | Default |
|---|---|---|---|
| gnaf_id | 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": [
- {
- "items": {
- "additionalProperties": true,
- "description": "One planning overlay intersecting the property's buffer.\n\n``layer`` is the overlay family (e.g. ``\"fsr\"`` Floor Space Ratio,\n``\"hob\"`` Height of Building). ``value`` is the numeric/string\nvalue that overlay carries at this point (e.g. ``\"1.5\"`` for FSR\nor ``\"9.5\"`` for HoB metres).",
- "example": {
- "layer": "fsr",
- "value": "1.5"
- },
- "properties": {
- "layer": {
- "description": "Overlay layer code, e.g. 'fsr', 'hob'.",
- "title": "Layer",
- "type": "string"
- },
- "value": {
- "anyOf": [
- {
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Value at this point (e.g. '1.5' for FSR, '9.5' for HoB metres).",
- "title": "Value"
- }
- },
- "required": [
- "layer"
- ],
- "title": "ZoningOverlay",
- "type": "object"
- },
- "type": "array"
- },
- {
- "type": "null"
- }
- ],
- "description": "The endpoint's payload, or `null` when Microburbs has no value.",
- "title": "Data"
- },
- "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[list[ZoningOverlay]]",
- "type": "object",
- "x-fastmcp-top-level-schema": "ApiResponse_list_ZoningOverlay__"
-}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 tool is safe and idempotent. The description adds the cost note and the spatial scope (intersecting the parcel). However, it does not disclose the structure of the returned overlays or whether multiple overlays are returned. Given annotations, a score of 3 is reasonable.
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 two sentences: the first clearly states what the tool does, and the second gives the pricing. It is front-loaded with the key information and has no wasteful content. This is an example of effective conciseness.
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?
The tool is simple: one parameter, no output schema, and clear annotations. The description provides minimal but sufficient context for a simple lookup. However, it lacks guidance on what the output will contain (e.g., list of overlay names), which could be important for the agent to know if it needs further processing. It is adequate but not rich.
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 only the 'gnaf_id' parameter with 0% description coverage Rosetta Stone. The description does not explain what 'gnaf_id' is or how to obtain it, but the tool's name and context suggest it is a property identifier. Since there is only one parameter and it is likely common across sibling tools, the schema's type definition is minimal. The description could add 'the property's G-NAF identifier' but does not. Baseline 3 is okay.
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 states the tool returns development overlays that intersect a property's parcel, which is clear enough. However, it does not explain what 'development overlays' are or how they differ from the sibling tool 'properties_development_zoning_code' and 'properties_development_all'. The purpose is clear but lacks sibling differentiation.
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?
There is no guidance on when to use this tool versus alternatives like 'properties_development_zoning_code' or 'properties_development_all'. It only mentions that it requires a 'gnaf_id' implicitly through the schema, but does not direct the agent to alternative tools for zoning codes or broader development data. This is a significant gap for a tool in a large family.
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.