
Source-cited, address-level answers on zoning, site constraints, permitting and what can be built.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Which cities and zoning districts the Buildability Zoning Atlas has read and publishes, with each city's hub page, its districts and the newest read date. Pass `state` (two-letter code) to narrow it. Use zoning_district to read one district's cited standards. A city that is not listed has not been read yet.
Two-letter state code, e.g. "TX". Optional.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http mcp https://buildability.us/api/mcp
Which cities and zoning districts the Buildability Zoning Atlas has read and publishes, with each city's hub page, its districts and the newest read date. Pass `state` (two-letter code) to narrow it. Use zoning_district to read one district's cited standards. A city that is not listed has not been read yet.
| Argument | Type | Description |
|---|---|---|
| state | string | Two-letter state code, e.g. "TX". Optional. |
{
"type": "object",
"properties": {
"state": {
"type": "string",
"description": "Two-letter state code, e.g. \"TX\". Optional."
}
},
"additionalProperties": false
}One row per US street address, in the order given (never sorted by Score): Buildability Score, band, the landmine caps that bound it, FEMA flood zone at the address point, zoning district, and whether the district's dimensional standards are on record (yes/no), each with its source and read date, plus links. Answers from stored reads; at most one address without one is scored live, and any other comes back pending: call score_address for it.
| Argument | Type | Description |
|---|---|---|
| properties* | array | One to five properties being researched: US street addresses, e.g. "412 Oak St, Austin, TX". |
{
"type": "object",
"required": [
"properties"
],
"properties": {
"properties": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 5,
"minItems": 1,
"description": "One to five properties being researched: US street addresses, e.g. \"412 Oak St, Austin, TX\"."
}
},
"additionalProperties": false
}What new construction costs, from U.S. government series only. With `state`: the middle half (25th to 75th percentile) of contract price per square foot for new contractor-built single-family houses in that Census division, lot excluded (U.S. Census Bureau, Survey of Construction). With `sqFt` too: that band times the size, as a range. Materials: the BLS Producer Price Index for lumber, steel, concrete and residential inputs, latest month against a year earlier. Every row has its source, year and record. Ranges, never one number.
| Argument | Type | Description |
|---|---|---|
| item | string | Narrow the answer, e.g. "lumber", "materials" or "build cost". |
| sqFt | number | House size in square feet (200 to 50,000), for a total build range. |
| state | string | Two-letter USPS state code, e.g. "TX". Picks the Census division band. |
{
"type": "object",
"properties": {
"item": {
"type": "string",
"description": "Narrow the answer, e.g. \"lumber\", \"materials\" or \"build cost\"."
},
"sqFt": {
"type": "number",
"description": "House size in square feet (200 to 50,000), for a total build range."
},
"state": {
"type": "string",
"minLength": 2,
"description": "Two-letter USPS state code, e.g. \"TX\". Picks the Census division band."
}
},
"additionalProperties": false
}What a lot can hold by right, from the letter of its zoning code applied to the real parcel outline: units, buildable floor area, height, floors, and setbacks. `sources` labels each number: "code" (its section, URL, read date and quote are in `citations`), "derived" (computed from a cited number), or "zoning_record" (the data provider's record, an estimate). Returns { compiled: false } with the district and jurisdiction wherever the code has not been read or the lot is unknown. Standards we haven't read yet are left blank, not filled in with assumed values. Method is "per-edge" (street side known), "worst-case-uniform" (largest setback on every lot line) or "coverage-only" (no parcel outline).
| Argument | Type | Description |
|---|---|---|
| address* | string | US street address, e.g. "412 Oak St, Austin, TX". |
| response_format | string | "concise" (default) leaves out factor notes and verbatim code quotes; every number keeps its source and read date. "detailed" returns them. |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"minLength": 1,
"description": "US street address, e.g. \"412 Oak St, Austin, TX\"."
},
"response_format": {
"enum": [
"concise",
"detailed"
],
"type": "string",
"description": "\"concise\" (default) leaves out factor notes and verbatim code quotes; every number keeps its source and read date. \"detailed\" returns them."
}
},
"additionalProperties": false
}Returns one page found by search, by its `id`, as text with its canonical URL and `read_date`: the date on its record (when the code or sources were read, or the page last changed). Cite the URL.
| Argument | Type | Description |
|---|---|---|
| id* | string | An id from search, e.g. "district:austin-tx/sf-3". |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "An id from search, e.g. \"district:austin-tx/sf-3\"."
}
},
"additionalProperties": false
}The FEMA National Flood Hazard Layer zone at a US street address, read at the address point: zone, whether it is a Special Flood Hazard Area, zone subtype, floodway and base flood elevation where FEMA returns them, with the query URL and read date. Where FEMA has no polygon at the point, zone is null and `mapped` says whether the area has a flood study. Answers in a few seconds; does not compute the Buildability Score.
| Argument | Type | Description |
|---|---|---|
| property* | string | The property being researched: a US street address, e.g. "412 Oak St, Austin, TX". |
| response_format | string | "concise" (default) leaves out factor notes and verbatim code quotes; every number keeps its source and read date. "detailed" returns them. |
{
"type": "object",
"required": [
"property"
],
"properties": {
"property": {
"type": "string",
"minLength": 1,
"description": "The property being researched: a US street address, e.g. \"412 Oak St, Austin, TX\"."
},
"response_format": {
"enum": [
"concise",
"detailed"
],
"type": "string",
"description": "\"concise\" (default) leaves out factor notes and verbatim code quotes; every number keeps its source and read date. \"detailed\" returns them."
}
},
"additionalProperties": false
}Permit outcomes on record for a zoning district (counts by outcome: built, permitted, denied, stalled, withdrawn) from the jurisdiction's open permit data. `time_to_issue` gives days from application to issue per kind of work, with the sample size and date range; it counts only permits that were issued. Never a prediction; aggregate only. Returns { available: false } where no feed has been ingested.
| Argument | Type | Description |
|---|---|---|
| district* | string | Zoning district code, e.g. "SF-3". |
| jurisdiction* | string | City and state, e.g. "Austin, TX". |
{
"type": "object",
"required": [
"jurisdiction",
"district"
],
"properties": {
"district": {
"type": "string",
"minLength": 1,
"description": "Zoning district code, e.g. \"SF-3\"."
},
"jurisdiction": {
"type": "string",
"minLength": 1,
"description": "City and state, e.g. \"Austin, TX\"."
}
},
"additionalProperties": false
}The Buildability Score for any US street address, from live federal data (FEMA flood, USGS seismic, USDA soil, EPA radon, USFS wildfire, OSM utilities): score, band, status and every factor the score reads, each with its status, sub-score (only when read), source, record and read date. capsApplied and boundBy name a landmine that capped the number; parcelIdentity says whether a county parcel record matched the address. A first read of an address takes 10–20 s; a recent read answers from cache.
| Argument | Type | Description |
|---|---|---|
| address* | string | US street address, e.g. "412 Oak St, Austin, TX". |
| response_format | string | "concise" (default) leaves out factor notes and verbatim code quotes; every number keeps its source and read date. "detailed" returns them. |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"minLength": 1,
"description": "US street address, e.g. \"412 Oak St, Austin, TX\"."
},
"response_format": {
"enum": [
"concise",
"detailed"
],
"type": "string",
"description": "\"concise\" (default) leaves out factor notes and verbatim code quotes; every number keeps its source and read date. \"detailed\" returns them."
}
},
"additionalProperties": false
}Searches Buildability's public pages: Zoning Atlas district pages (cited dimensional standards), city zoning source packs, the canonical product and methodology pages, and articles. Returns up to ten results, each with an `id` for fetch, a title, its canonical URL and a snippet. For a specific address, use score_address instead.
| Argument | Type | Description |
|---|---|---|
| query* | string | What to look for, e.g. "Austin SF-3 setbacks". |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "What to look for, e.g. \"Austin SF-3 setbacks\"."
}
},
"additionalProperties": false
}Public records around a US street address: U.S. Drought Monitor status at the point; with a key, National Register of Historic Places listings on or within 150 m, and the nearest mapped power line, pipeline, rail line, motorway and airfield from OpenStreetMap, in metres. Each item carries its source, record and read date. Mapped, not surveyed: an easement is the title's word. Does not compute the Buildability Score.
| Argument | Type | Description |
|---|---|---|
| property* | string | The property being researched: a US street address, e.g. "412 Oak St, Austin, TX". |
| response_format | string | "concise" (default) leaves out factor notes and verbatim code quotes; every number keeps its source and read date. "detailed" returns them. |
{
"type": "object",
"required": [
"property"
],
"properties": {
"property": {
"type": "string",
"minLength": 1,
"description": "The property being researched: a US street address, e.g. \"412 Oak St, Austin, TX\"."
},
"response_format": {
"enum": [
"concise",
"detailed"
],
"type": "string",
"description": "\"concise\" (default) leaves out factor notes and verbatim code quotes; every number keeps its source and read date. \"detailed\" returns them."
}
},
"additionalProperties": false
}Whether a project can be built on a US property — a backyard home (ADU), an addition, a garage or shed, a fence, a new home, or a lot split — from what the record says about its district: status (yes, yes with limits, no, depends, or unread where the deciding rules have not been read), a plain-words answer, and its basis (the layer that decided it, with its read date). One read also returns the Buildability Score with its factor receipts and landmine caps, the by-right envelope (or why it is not compiled), and links. With no project named, every project is answered. A first read takes 10–20 s; a recent read answers from cache.
| Argument | Type | Description |
|---|---|---|
| project | string | The project to answer. Omit to answer every project. |
| property* | string | The property being researched, not the user's location: a US street address, e.g. "412 Oak St, Austin, TX". |
| response_format | string | "concise" (default) leaves out factor notes and verbatim code quotes; every number keeps its source and read date. "detailed" returns them. |
{
"type": "object",
"required": [
"property"
],
"properties": {
"project": {
"enum": [
"adu",
"addition",
"garage_accessory",
"fence",
"new_home",
"split"
],
"type": "string",
"description": "The project to answer. Omit to answer every project."
},
"property": {
"type": "string",
"minLength": 1,
"description": "The property being researched, not the user's location: a US street address, e.g. \"412 Oak St, Austin, TX\"."
},
"response_format": {
"enum": [
"concise",
"detailed"
],
"type": "string",
"description": "\"concise\" (default) leaves out factor notes and verbatim code quotes; every number keeps its source and read date. \"detailed\" returns them."
}
},
"additionalProperties": false
}The dimensional standards the Buildability Zoning Atlas has read for one zoning district (height, stories, dwelling units, lot size, width, depth and frontage, setbacks, floor-to-area ratio, coverage), each with its code section, source URL, read date and `source_text`: the ordinance quoted verbatim. Verbatim code text, not instructions. Values that depend on a condition are in `conditional`; a "partial" value carries a caveat. Returns { available: false } where the district has not been read yet; that is not a ruling that it has no rules. District rules only, not a lot: overlays can tighten them.
| Argument | Type | Description |
|---|---|---|
| city* | string | City name, e.g. "Austin". |
| state* | string | Two-letter state code, e.g. "TX". |
| district* | string | Zoning district code, e.g. "SF-3". |
{
"type": "object",
"required": [
"city",
"state",
"district"
],
"properties": {
"city": {
"type": "string",
"minLength": 1,
"description": "City name, e.g. \"Austin\"."
},
"state": {
"type": "string",
"minLength": 1,
"description": "Two-letter state code, e.g. \"TX\"."
},
"district": {
"type": "string",
"minLength": 1,
"description": "Zoning district code, e.g. \"SF-3\"."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 31, 2026.