dealcheck: US property deal-check

Any US address: flood, HUD rent, county tax. Parcel zoning/STR rules: Nashville, Denver, Scottsdale.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
95%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,333Tokens (tool definitions)
~1.9 KBTypical response size
Moderate attention impact (1.04% 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": {
    "dealcheck": {
      "url": "https://dealcheck.daderader.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://dealcheck.daderader.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢ziplot_deal_check(address, value, bedrooms, include)

Public-record due-diligence facts for a US residential address. Any US address: FEMA flood zone at the geocoded point, HUD FY2026 Small Area FMR (or area FMR) by bedrooms, and a property-tax estimate: official rates in Nashville (Metro rate), Denver (levy by tax district), Chicago (Cook County tax code) and Maricopa County cities (tax area code), elsewhere a rough county-level estimate from Census ACS, labeled as such. Full parcel-level coverage (zoning district, overlays, STR permit eligibility for owner-occupied vs non-owner-occupied, caps, existing STR permits/licenses) only in Nashville/Davidson County TN, Denver CO, Scottsdale AZ, and Chicago IL (building size, Prohibited Buildings List, Restricted Residential Zones). New York City (city-wide rules plus a per-building Prohibited Buildings List and registration check by BIN) and Austin TX (city-wide rules plus a per-parcel full/limited-purpose/ETJ check) are also covered, as are Phoenix, Mesa, and Tempe AZ (city-wide rules); str.granularity says which. Elsewhere zoning/STR return not_covered. Every value carries a source and as-of date. HOA/deed restrictions are not checked. Informational only; not legal/tax/insurance/lending advice. Same tool as nashville_deal_check. Status values. Top-level status: ok = every evaluated section answered; needs_review = partial answer, at least one section needs a person or a retry (read each section's status and the warnings); unavailable = no section could be answered (address not found, or every source failed); out_of_scope = no evaluated section applies at this address. Section status uses the same words plus not_covered (this area is not evaluated). str.status follows the two permit determinations: new_non_owner_occupied_permit.value (allowed, not_allowed, needs_review, out_of_scope, not_covered, unavailable) and owner_occupied_permit.value (possible, not_allowed, needs_review, out_of_scope, not_covered, unavailable). Both firm = ok, one firm and one not = needs_review, none usable = unavailable. str.supporting_data_status appears when side lookups such as permit counts or building lists were incomplete.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "US street address including city and state, e.g. '321 50th Ave N, Nashville, TN'"
    },
    "value": {
      "type": "number",
      "description": "Optional purchase price or value in USD. Echoed in query.value. Where no Assessor value exists it drives property_tax.estimated_annual_tax; where one exists, the estimate at your value is in property_tax.estimate_at_your_value."
    },
    "bedrooms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 4,
      "description": "For HUD rent benchmark. Defaults to 2."
    },
    "include": {
      "type": "array",
      "items": {
        "enum": [
          "rent",
          "tax",
          "flood",
          "str",
          "zoning"
        ]
      }
    }
  },
  "required": [
    "address"
  ]
}
🟢nashville_deal_check(address, value, bedrooms, include)

Deprecated: use ziplot_deal_check. Public-record due-diligence facts for a US residential address. Any US address: FEMA flood zone at the geocoded point, HUD FY2026 Small Area FMR (or area FMR) by bedrooms, and a property-tax estimate: official rates in Nashville (Metro rate), Denver (levy by tax district), Chicago (Cook County tax code) and Maricopa County cities (tax area code), elsewhere a rough county-level estimate from Census ACS, labeled as such. Full parcel-level coverage (zoning district, overlays, STR permit eligibility for owner-occupied vs non-owner-occupied, caps, existing STR permits/licenses) only in Nashville/Davidson County TN, Denver CO, Scottsdale AZ, and Chicago IL (building size, Prohibited Buildings List, Restricted Residential Zones). New York City (city-wide rules plus a per-building Prohibited Buildings List and registration check by BIN) and Austin TX (city-wide rules plus a per-parcel full/limited-purpose/ETJ check) are also covered, as are Phoenix, Mesa, and Tempe AZ (city-wide rules); str.granularity says which. Elsewhere zoning/STR return not_covered. Every value carries a source and as-of date. HOA/deed restrictions are not checked. Informational only; not legal/tax/insurance/lending advice. Ziplot tool (original name kept for compatibility; ziplot_deal_check is the same tool). Status values. Top-level status: ok = every evaluated section answered; needs_review = partial answer, at least one section needs a person or a retry (read each section's status and the warnings); unavailable = no section could be answered (address not found, or every source failed); out_of_scope = no evaluated section applies at this address. Section status uses the same words plus not_covered (this area is not evaluated). str.status follows the two permit determinations: new_non_owner_occupied_permit.value (allowed, not_allowed, needs_review, out_of_scope, not_covered, unavailable) and owner_occupied_permit.value (possible, not_allowed, needs_review, out_of_scope, not_covered, unavailable). Both firm = ok, one firm and one not = needs_review, none usable = unavailable. str.supporting_data_status appears when side lookups such as permit counts or building lists were incomplete.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "US street address including city and state, e.g. '321 50th Ave N, Nashville, TN'"
    },
    "value": {
      "type": "number",
      "description": "Optional purchase price or value in USD. Echoed in query.value. Where no Assessor value exists it drives property_tax.estimated_annual_tax; where one exists, the estimate at your value is in property_tax.estimate_at_your_value."
    },
    "bedrooms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 4,
      "description": "For HUD rent benchmark. Defaults to 2."
    },
    "include": {
      "type": "array",
      "items": {
        "enum": [
          "rent",
          "tax",
          "flood",
          "str",
          "zoning"
        ]
      }
    }
  },
  "required": [
    "address"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools