Skip to main content
Glama

What can I do with this property?

land_at
Read-onlyIdempotent

Use when someone asks what they can do with a specific property or address in the US, or what it is zoned. In Austin, TX and Nashville, TN it answers in full: what the lot is zoned and what that means, how many homes the lot can take (Austin HOME rules, Texas SB 840 apartments on commercial land), what the zoning ordinance or Nashville Specific Plan says, whether a short-term rental (Airbnb) is allowed, the property tax and flood risk, with a map link and a printable brief link. For a Nashville or Austin lot, when the paid Lot File is on sale in that city and covers the lot, it also returns lot_file: what the cited file adds (documents read, rules computed for the lot, pending cases) and the link to buy it. Any other US address or point gets the free nationwide answer (status ok_free): the zoning district, its description, overlays, the parcel id and the zoning ordinance link, read live from the jurisdiction's own public layers where MapLedger's registry has them (tier B), or what the records show, such as a Texas county with no zoning authority (tier C). Every free line names its source. Takes an address with its city and state, or a latitude and longitude.

Input Schema

NameRequiredDescriptionDefault
cityYes"austin" (City of Austin, Texas) or "nashville" (Nashville and Davidson County, Tennessee) for the full answer. Any other US city or county, for example "Phoenix, AZ", gets the free nationwide answer.
addressNoStreet address, for example '1600 E 6th St' or '1600 Division St, 37203'
latitudeNo
homesteadNoAustin only: the owner's main home, so homestead exemptions apply (default true)
longitudeNo
property_classNoNashville only: taxed as a home (25%) or a business (40%); default follows the zoning
appraised_valueNoAppraised value in dollars for the tax estimate (defaults: Austin 550000, Nashville 450000)

Output Schema

NameRequiredDescriptionDefault
lotNoThe lot's own records: size (Austin) or land use, building year, street frontage, service district and permit counts (Nashville)
cityNo
codeNook_free tier B: where the zoning ordinance is published
tierNook_free only. B: the jurisdiction's own zoning and parcel layers answered live. C: what the records show, with no live layer answer
floodNo
linesNook_free: one definitive sentence per fact, each naming its source
placeNo
pointNo
caveatNo
parcelNook_free tier B: the parcel id and its source layer
reasonNook_free tier C: why there is no live zoning answer
statusYesok: answered in full (Austin or Nashville); ok_free: the free nationwide answer for another US place, with tier, jurisdiction and lines; choose: the address matches more than one place, choices lists them; not_found: no such address; no_zoning: the point is a street, water or outside the city; unsupported_city: the Census geocoder found no US address or place for the input; rate_limited: this caller's hourly allowance of nationwide answers is spent
zoningNoThe zoning code, what it means, overlays and the ordinance behind it; for ok_free tier B, the district, its description, overlays and source layer
choicesNo
map_urlNo
messageNo
lot_fileNoNashville and Austin, when the file is on sale in that city and covers the lot's zoning: the paid Lot File for this lot, what it adds to this answer, and where to buy it
brief_urlNo
point_noteNo
jurisdictionNook_free only: the city or county that zones the point, from MapLedger's registry or the Census geography
property_taxNo
specific_planNoNashville Specific Plan: what its ordinance says
zoning_ordinancesNoAustin zoning ordinances covering the point, newest first
short_term_rentalsNoOwner-occupied and whole-home short-term rental answers for this spot, each with its reason and source
what_you_can_buildNoAustin: how many homes the lot can take
retry_after_secondsNorate_limited only: seconds until the allowance resets

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changed
    • changedInput schema / properties / city / description
      Previous value: -"\"austin\" (City of Austin, Texas) or \"nashville\" (Nashville and Davidson County, Tennessee). Other cities are not covered."New value: +"\"austin\" (City of Austin, Texas) or \"nashville\" (Nashville and Davidson County, Tennessee) for the full answer. Any other US city or county, for example \"Phoenix, AZ\", gets the free nationwide answer."
    • addedOutput schema / properties / code
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {},
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "ok_free tier B: where the zoning ordinance is published"
      +}
    • addedOutput schema / properties / jurisdiction
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {
      +        "key": {
      +          "type": "string"
      +        },
      +        "kind": {
      +          "type": "string"
      +        },
      +        "name": {
      +          "type": "string"
      +        },
      +        "state": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "key",
      +        "name",
      +        "state",
      +        "kind"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "ok_free only: the city or county that zones the point, from MapLedger's registry or the Census geography"
      +}
    • addedOutput schema / properties / lines
      Added value: +{
      +  "description": "ok_free: one definitive sentence per fact, each naming its source",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / parcel
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {},
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "ok_free tier B: the parcel id and its source layer"
      +}
    • removedOutput schema / properties / point / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / point / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "latitude": {
      +        "type": "number"
      +      },
      +      "longitude": {
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "latitude",
      +      "longitude"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / point / properties
      Removed value: -{
      -  "latitude": {
      -    "type": "number"
      -  },
      -  "longitude": {
      -    "type": "number"
      -  }
      -}
    • removedOutput schema / properties / point / required
      Removed value: -[
      -  "latitude",
      -  "longitude"
      -]
    • removedOutput schema / properties / point / type
      Removed value: -"object"
    • addedOutput schema / properties / reason
      Added value: +{
      +  "description": "ok_free tier C: why there is no live zoning answer",
      +  "enum": [
      +    "no_zoning_authority",
      +    "county_does_not_zone",
      +    "not_in_registry",
      +    "no_layer",
      +    "hold",
      +    "no_parcel",
      +    "no_district",
      +    "upstream_error",
      +    "geocode_failed"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / retry_after_seconds
      Added value: +{
      +  "description": "rate_limited only: seconds until the allowance resets",
      +  "type": "number"
      +}
    • changedOutput schema / properties / status / description
      Previous value: -"ok: answered; choose: the address matches more than one place, choices lists them; not_found: no such address; no_zoning: the point is a street, water or outside the city; unsupported_city: not Austin or Nashville"New value: +"ok: answered in full (Austin or Nashville); ok_free: the free nationwide answer for another US place, with tier, jurisdiction and lines; choose: the address matches more than one place, choices lists them; not_found: no such address; no_zoning: the point is a street, water or outside the city; unsupported_city: the Census geocoder found no US address or place for the input; rate_limited: this caller's hourly allowance of nationwide answers is spent"
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "ok",
      -  "choose",
      -  "not_found",
      -  "no_zoning",
      -  "bad_request",
      -  "unsupported_city"
      -]New value: +[
      +  "ok",
      +  "ok_free",
      +  "choose",
      +  "not_found",
      +  "no_zoning",
      +  "bad_request",
      +  "unsupported_city",
      +  "rate_limited"
      +]
    • addedOutput schema / properties / tier
      Added value: +{
      +  "description": "ok_free only. B: the jurisdiction's own zoning and parcel layers answered live. C: what the records show, with no live layer answer",
      +  "enum": [
      +    "B",
      +    "C"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / zoning / description
      Previous value: -"The zoning code, what it means, overlays and the ordinance behind it"New value: +"The zoning code, what it means, overlays and the ordinance behind it; for ok_free tier B, the district, its description, overlays and source layer"
  2. Changed1 schema field changed
    • changedOutput schema / properties / status / description
      Previous value: -"ok: answered; choose: the address matches more than one place, pick from choices; not_found: no such address; no_zoning: the point is a street, water or outside the city; unsupported_city: not Austin or Nashville"New value: +"ok: answered; choose: the address matches more than one place, choices lists them; not_found: no such address; no_zoning: the point is a street, water or outside the city; unsupported_city: not Austin or Nashville"
  3. Changed1 schema field changed
    • changedOutput schema / properties / lot_file / description
      Previous value: -"Nashville, when on sale: the paid Lot File for this lot, what it adds to this answer, and where to buy it"New value: +"Nashville and Austin, when the file is on sale in that city and covers the lot's zoning: the paid Lot File for this lot, what it adds to this answer, and where to buy it"
  4. Changed1 schema field changed
    • addedOutput schema / properties / lot_file
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Nashville, when on sale: the paid Lot File for this lot, what it adds to this answer, and where to buy it",
      +  "properties": {
      +    "adds": {
      +      "type": "string"
      +    },
      +    "price": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "url",
      +    "price",
      +    "adds"
      +  ],
      +  "type": "object"
      +}
  5. Changed4 schema fields changed
    • changedInput schema / properties / city / description
      Previous value: -"austin (City of Austin, Texas) or nashville (Nashville and Davidson County, Tennessee)"New value: +"\"austin\" (City of Austin, Texas) or \"nashville\" (Nashville and Davidson County, Tennessee). Other cities are not covered."
    • removedInput schema / properties / city / enum
      Removed value: -[
      -  "austin",
      -  "nashville"
      -]
    • addedInput schema / properties / city / maxLength
      Added value: +60
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "brief_url": {
      +      "type": "string"
      +    },
      +    "caveat": {
      +      "type": "string"
      +    },
      +    "choices": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "label": {
      +            "type": "string"
      +          },
      +          "latitude": {
      +            "type": "number"
      +          },
      +          "longitude": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "label",
      +          "latitude",
      +          "longitude"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "city": {
      +      "enum": [
      +        "austin",
      +        "nashville"
      +      ],
      +      "type": "string"
      +    },
      +    "flood": {
      +      "type": "string"
      +    },
      +    "lot": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "The lot's own records: size (Austin) or land use, building year, street frontage, service district and permit counts (Nashville)"
      +    },
      +    "map_url": {
      +      "type": "string"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "place": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "point": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "latitude": {
      +          "type": "number"
      +        },
      +        "longitude": {
      +          "type": "number"
      +        }
      +      },
      +      "required": [
      +        "latitude",
      +        "longitude"
      +      ],
      +      "type": "object"
      +    },
      +    "point_note": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "property_tax": {
      +      "additionalProperties": {},
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "short_term_rentals": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "note": {
      +              "type": [
      +                "string",
      +                "null"
      +              ]
      +            },
      +            "owner_occupied": {
      +              "type": "string"
      +            },
      +            "owner_occupied_detail": {
      +              "type": "string"
      +            },
      +            "source": {
      +              "type": "string"
      +            },
      +            "whole_home": {
      +              "type": "string"
      +            },
      +            "whole_home_detail": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "owner_occupied",
      +            "owner_occupied_detail",
      +            "whole_home",
      +            "whole_home_detail",
      +            "note",
      +            "source"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Owner-occupied and whole-home short-term rental answers for this spot, each with its reason and source"
      +    },
      +    "specific_plan": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Nashville Specific Plan: what its ordinance says"
      +    },
      +    "status": {
      +      "description": "ok: answered; choose: the address matches more than one place, pick from choices; not_found: no such address; no_zoning: the point is a street, water or outside the city; unsupported_city: not Austin or Nashville",
      +      "enum": [
      +        "ok",
      +        "choose",
      +        "not_found",
      +        "no_zoning",
      +        "bad_request",
      +        "unsupported_city"
      +      ],
      +      "type": "string"
      +    },
      +    "what_you_can_build": {
      +      "additionalProperties": {},
      +      "description": "Austin: how many homes the lot can take",
      +      "properties": {
      +        "details": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        "headline": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "headline",
      +        "details"
      +      ],
      +      "type": "object"
      +    },
      +    "zoning": {
      +      "additionalProperties": {},
      +      "description": "The zoning code, what it means, overlays and the ordinance behind it",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "zoning_ordinances": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {},
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        }
      +      ],
      +      "description": "Austin zoning ordinances covering the point, newest first"
      +    }
      +  },
      +  "required": [
      +    "status"
      +  ],
      +  "type": "object"
      +}
  6. First observed

TDQS

A4.2/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, non-destructive, open-world), and the description adds substantial context beyond them: the tiered answer model (tier B live public layers, tier C records-only), that every free line names its source, the paid lot_file upsell, and supplementary outputs (map link, printable brief). Nothing here contradicts readOnlyHint=true or openWorldHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The trigger is correctly front-loaded, but the body is a dense run-on with semicolons, parentheticals, and internal tier codes that reads like marketing copy rather than specification. Most clauses carry real information, yet the sprawl makes it harder to scan than it needs to be.

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

Completeness5/5

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

For a seven-parameter tool with an output schema and full annotation coverage, the description leaves nothing essential unstated: input contract, coverage by geography, answer tiers, data provenance, and the paid add-on are all addressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Beyond the 71%-covered schema, the description explains the core input contract: an address with its city and state, or a latitude and longitude, and that city selects which answer tier you get. It adds no meaning for homestead, property_class, or appraised_value, but those already carry clear schema descriptions.

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?

The description states a specific question it answers ('what they can do with a specific property or address in the US, or what it is zoned') with concrete scope (US-only, Austin/Nashville deep, nationwide free). It never names find_land or search_businesses, so an agent must infer that a point-property lookup is distinct from those browsing tools.

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?

It gives an explicit trigger ('Use when someone asks what they can do with a specific property') and details when the full answer applies (Austin, TX / Nashville, TN) versus when the reduced free answer applies (any other US city or county), plus the paid lot_file condition. There is no explicit exclusion or routing to a sibling tool for cases this tool does not serve.

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