NYC Property Facts

Public records for any NYC property by address or BBL: permits, violations, sales, owners.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
91%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,263Tokens (tool definitions)
~1.6 KBTypical response size
Moderate attention impact (0.99% 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": {
    "nyc-property-facts": {
      "url": "https://nycpropertyfacts.com/mcp"
    }
  }
}

Remote endpoints

https://nycpropertyfacts.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢lookup_property(address, borough, zip)

Resolve a free-text NYC address to its tax lot (BBL) and return the property facts: summary, owner of record, building, assessment, last priced deed and open-item counts. Returns the best match with a 0-1 confidence, a plain-English confidence_explanation, a machine-readable match_type, the HTML/Markdown/JSON URLs and up to 4 alternatives. Requires "address". Use get_property for a known BBL/BIN.

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "NYC street address, e.g. \"98 Grattan St, Brooklyn\". Units (Apt 3B), borough and ZIP are optional; a 10-digit BBL or 7-digit BIN also works."
    },
    "borough": {
      "type": "string",
      "description": "Optional: Manhattan, Bronx, Brooklyn, Queens or Staten Island"
    },
    "zip": {
      "type": "string",
      "description": "Optional 5-digit ZIP, sent as text"
    }
  },
  "required": [
    "address"
  ]
}
🟢get_property(bbl, bin)

Return the full fact sheet for a tax lot by 10-digit BBL (borough-block-lot, e.g. 3030090016) or by 7-digit DOB building number (BIN). Requires "bbl" or "bin" (if both are sent, bbl is used).

Input Schema

{
  "type": "object",
  "properties": {
    "bbl": {
      "type": "string",
      "description": "10-digit BBL (borough-block-lot), e.g. \"3030090016\". Send it as text. Required unless \"bin\" is given."
    },
    "bin": {
      "type": "string",
      "description": "7-digit DOB building number (BIN), e.g. \"3070696\". Send it as text. Required unless \"bbl\" is given."
    }
  }
}
🟢list_open_issues(address, borough, zip, bbl, bin, ...)

List every open item for a property: DOB jobs with a permit issued but no sign-off, active DOB and ECB violations, open HPD violations, and OATH tickets with an unpaid balance or a pending hearing. Each record has status, dates, a plain-English description and its source dataset. Requires one of "address", "bbl" or "bin".

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "NYC street address, e.g. \"98 Grattan St, Brooklyn\". Units (Apt 3B), borough and ZIP are optional; a 10-digit BBL or 7-digit BIN also works."
    },
    "borough": {
      "type": "string",
      "description": "Optional: Manhattan, Bronx, Brooklyn, Queens or Staten Island"
    },
    "zip": {
      "type": "string",
      "description": "Optional 5-digit ZIP, sent as text"
    },
    "bbl": {
      "type": "string",
      "description": "10-digit BBL (borough-block-lot), e.g. \"3030090016\". Send it as text."
    },
    "bin": {
      "type": "string",
      "description": "7-digit DOB building number (BIN), e.g. \"3070696\". Send it as text."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 50,
      "description": "Maximum records per section"
    }
  }
}
🟢get_sales_history(address, borough, zip, bbl, bin, ...)

Deeds recorded with the NYC City Register (ACRIS) for a property: date, stated price (0 = non-market transfer), grantors, grantees, and whether the deed covers several lots. Requires one of "address", "bbl" or "bin".

Input Schema

{
  "type": "object",
  "properties": {
    "address": {
      "type": "string",
      "description": "NYC street address, e.g. \"98 Grattan St, Brooklyn\". Units (Apt 3B), borough and ZIP are optional; a 10-digit BBL or 7-digit BIN also works."
    },
    "borough": {
      "type": "string",
      "description": "Optional: Manhattan, Bronx, Brooklyn, Queens or Staten Island"
    },
    "zip": {
      "type": "string",
      "description": "Optional 5-digit ZIP, sent as text"
    },
    "bbl": {
      "type": "string",
      "description": "10-digit BBL (borough-block-lot), e.g. \"3030090016\". Send it as text."
    },
    "bin": {
      "type": "string",
      "description": "7-digit DOB building number (BIN), e.g. \"3070696\". Send it as text."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 25,
      "description": "Maximum deeds returned"
    }
  }
}
🟢search_properties(street, zip, borough, house_number, limit, ...)

List tax lots on a street (prefix match, e.g. "Grattan St") and/or in a ZIP code, with address, building class, units, owner of record and open-item count. Requires "street" and/or "zip"; borough and house_number only narrow the search. Paginate with limit/offset; total is the number of matches.

Input Schema

{
  "type": "object",
  "properties": {
    "street": {
      "type": "string",
      "description": "Street name, e.g. \"Grattan St\" or \"5th Ave\". Required unless \"zip\" is given."
    },
    "zip": {
      "type": "string",
      "description": "5-digit ZIP, sent as text. Required unless \"street\" is given."
    },
    "borough": {
      "type": "string",
      "description": "Optional borough name"
    },
    "house_number": {
      "type": "string",
      "description": "Optional house number, sent as text"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200,
      "default": 25
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    }
  }
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools