MapLedger

Zoning, homes per lot, short-term rentals, tax and flood for any property in Austin and Nashville.

Should I use this

Quality & Safety

A
Description quality
93%
Schema completeness
92%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,018Tokens (tool definitions)
~6.6 KBTypical response size
Moderate attention impact (1.58% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "land-and-zoning": {
      "url": "https://mapledger.app/mcp"
    }
  }
}

Remote endpoints

https://mapledger.app/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢land_at(city, address, latitude, longitude, appraised_value, ...)

Use when someone asks what they can do with a specific property or address in Austin, TX or Nashville, TN: what it 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. Give an address or a latitude and longitude. Returns the answer, the sources, a map link and a printable brief link.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "maxLength": 60,
      "description": "\"austin\" (City of Austin, Texas) or \"nashville\" (Nashville and Davidson County, Tennessee). Other cities are not covered."
    },
    "address": {
      "description": "Street address, for example '1600 E 6th St' or '1600 Division St, 37203'",
      "type": "string",
      "maxLength": 150
    },
    "latitude": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "appraised_value": {
      "description": "Appraised value in dollars for the tax estimate (defaults: Austin 550000, Nashville 450000)",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 10000000000
    },
    "homestead": {
      "description": "Austin only: the owner's main home, so homestead exemptions apply (default true)",
      "type": "boolean"
    },
    "property_class": {
      "description": "Nashville only: taxed as a home (25%) or a business (40%); default follows the zoning",
      "type": "string",
      "enum": [
        "home",
        "business"
      ]
    }
  },
  "required": [
    "city"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "ok",
        "choose",
        "not_found",
        "no_zoning",
        "bad_request",
        "unsupported_city"
      ],
      "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"
    },
    "message": {
      "type": "string"
    },
    "city": {
      "type": "string",
      "enum": [
        "austin",
        "nashville"
      ]
    },
    "place": {
      "type": [
        "string",
        "null"
      ]
    },
    "point": {
      "type": "object",
      "properties": {
        "latitude": {
          "type": "number"
        },
        "longitude": {
          "type": "number"
        }
      },
      "required": [
        "latitude",
        "longitude"
      ],
      "additionalProperties": false
    },
    "point_note": {
      "type": [
        "string",
        "null"
      ]
    },
    "choices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "latitude": {
            "type": "number"
          },
          "longitude": {
            "type": "number"
          }
        },
        "required": [
          "label",
          "latitude",
          "longitude"
        ],
        "additionalProperties": false
      }
    },
    "zoning": {
      "description": "The zoning code, what it means, overlays and the ordinance behind it",
      "type": "object",
      "properties": {},
      "additionalProperties": {}
    },
    "what_you_can_build": {
      "description": "Austin: how many homes the lot can take",
      "type": "object",
      "properties": {
        "headline": {
          "type": "string"
        },
        "details": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "headline",
        "details"
      ],
      "additionalProperties": {}
    },
    "lot": {
      "description": "The lot's own records: size (Austin) or land use, building year, street frontage, service district and permit counts (Nashville)",
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "specific_plan": {
      "description": "Nashville Specific Plan: what its ordinance says",
      "anyOf": [
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "zoning_ordinances": {
      "description": "Austin zoning ordinances covering the point, newest first",
      "anyOf": [
        {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {},
            "additionalProperties": {}
          }
        },
        {
          "type": "object",
          "properties": {},
          "additionalProperties": {}
        }
      ]
    },
    "short_term_rentals": {
      "description": "Owner-occupied and whole-home short-term rental answers for this spot, each with its reason and source",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "owner_occupied": {
              "type": "string"
            },
            "owner_occupied_detail": {
              "type": "string"
            },
            "whole_home": {
              "type": "string"
            },
            "whole_home_detail": {
              "type": "string"
            },
            "note": {
              "type": [
                "string",
                "null"
              ]
            },
            "source": {
              "type": "string"
            }
          },
          "required": [
            "owner_occupied",
            "owner_occupied_detail",
            "whole_home",
            "whole_home_detail",
            "note",
            "source"
          ],
          "additionalProperties": {}
        },
        {
          "type": "null"
        }
      ]
    },
    "flood": {
      "type": "string"
    },
    "property_tax": {
      "type": "object",
      "properties": {},
      "additionalProperties": {}
    },
    "map_url": {
      "type": "string"
    },
    "brief_url": {
      "type": "string"
    },
    "caveat": {
      "type": "string"
    }
  },
  "required": [
    "status"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢find_land(city, view, request, limit)

Use when someone wants to find land or lots in Austin or Nashville that fit a need, for example lots where three homes are allowed, commercial land where apartments are allowed without a rezoning, dry industrial land of 5+ acres, zoning where whole-home short-term rentals are permitted, or Specific Plans whose ordinance bans rentals. Pick a ready-made view or describe the need in plain English. Returns how many zoning areas and acres match, the largest ones with a point to pass to land_at, and a map link. Austin views: home3, sb840, co, interim, mfdry, ind5, hist, bsz. Nashville views: strok, spstr, ns, unbuilt, mfusd, ind5, hist, dadu.

Input Schema

{
  "type": "object",
  "properties": {
    "city": {
      "type": "string",
      "maxLength": 60,
      "description": "\"austin\" (City of Austin, Texas) or \"nashville\" (Nashville and Davidson County, Tennessee). Other cities are not covered."
    },
    "view": {
      "description": "A ready-made view id for the city (see the description)",
      "type": "string",
      "maxLength": 20
    },
    "request": {
      "description": "Plain-English request instead of a view, for example 'apartments in the city core out of the floodplain'",
      "type": "string",
      "maxLength": 200
    },
    "limit": {
      "description": "How many of the largest matches to return (default 10)",
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    }
  },
  "required": [
    "city"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "ok",
        "bad_view",
        "bad_request",
        "unsupported_city"
      ]
    },
    "message": {
      "type": "string"
    },
    "city": {
      "type": "string",
      "enum": [
        "austin",
        "nashville"
      ]
    },
    "showing": {
      "description": "The search in plain words",
      "type": "string"
    },
    "matching_districts": {
      "description": "Nashville: zoning districts that match",
      "type": "number"
    },
    "matching_areas": {
      "description": "Austin: zoning areas that match",
      "type": "number"
    },
    "matching_acres": {
      "type": "number"
    },
    "of_districts": {
      "type": "number"
    },
    "of_areas": {
      "type": "number"
    },
    "map_url": {
      "type": "string"
    },
    "largest": {
      "description": "The largest matches, each with a point to pass to land_at",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      }
    },
    "next": {
      "type": "string"
    }
  },
  "required": [
    "status"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢search_businesses(query, sector, website, contact, limit)

Use when someone wants a list of local businesses in Central Austin, TX by kind (for example dentists, coffee shops, plumbers), optionally only ones with no website listed or with a phone or email. Returns name, category, address, website status and contact details, each linked to its source record. Only Central Austin is covered.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "What kind of business, for example 'dentist' or 'coffee'",
      "type": "string",
      "maxLength": 150
    },
    "sector": {
      "type": "string",
      "enum": [
        "services_and_business",
        "food_and_drink",
        "health_care",
        "shopping",
        "lifestyle_services",
        "community_and_government",
        "sports_and_recreation",
        "cultural_and_historic",
        "education",
        "travel_and_transportation",
        "arts_and_entertainment",
        "lodging"
      ]
    },
    "website": {
      "description": "missing = no website listed (social pages only or none)",
      "type": "string",
      "enum": [
        "all",
        "missing",
        "present"
      ]
    },
    "contact": {
      "type": "string",
      "enum": [
        "all",
        "phone",
        "email"
      ]
    },
    "limit": {
      "description": "How many results (default 20)",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output Schema

{
  "type": "object",
  "properties": {
    "status": {
      "type": "string",
      "enum": [
        "ok"
      ]
    },
    "coverage": {
      "type": "string"
    },
    "total_matches": {
      "type": "number"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      },
      "description": "Businesses: name, category, address, website status, contact details and source links"
    },
    "more": {
      "description": "Where to see every match, when there are more than returned",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "status",
    "coverage",
    "total_matches",
    "results"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools