io.github.ccedacero/nyc-property-intel
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Versions
0.1.1latestTools 18
get_building_permits Get DOB building permit filings and job applications for a property. Shows new building, alteration, and demolition applications with costs, status, proposed changes (stories, units, height), and applicant info. Use this to understand planned or completed construction activity.
get_311_complaints Get 311 service request complaints filed at or near a property address. Queries the local 311 database (NYC Open Data). Covers noise, rodents, illegal dumping, graffiti, heat/hot water, illegal parking, street conditions, and ~200 other complaint types. 311 data is a leading-indicator for neighborhood quality and building distress — complaints are filed *before* violations are issued. High complaint volume at an address is a red flag for active tenant issues. Provide either `address` OR `bbl` (not both). Args: address: Street address, e.g. "37-06 80th Street, Queens". bbl: 10-digit NYC BBL. Resolved to street address via PAD table. complaint_type: Filter by complaint type keyword, e.g. "NOISE", "RODENT", "HEAT", "ILLEGAL PARKING". Case-insensitive. since_year: Return only complaints from this year onward (2010–present). status: Filter by status: "Open" or "Closed". limit: Max complaints to return (1–100, default 30).
get_liens_and_encumbrances Get tax liens and mortgage/encumbrance records for a property. Shows DOF tax lien sale list entries and ACRIS recorded documents — mortgages, satisfactions, condo common-charge liens (LOCC), tax lien sale certificates (TLS/ATL/AMTL), and tax-lien discharges (DTL/RTXL) — including party names and amounts. Use this to assess a property's debt profile and lien exposure. Not covered (different filing systems): federal tax liens, mechanic's liens, and court-filed lis pendens.
get_property_issues Get HPD housing violations, DOB building code violations, and ECB/OATH violations for a property. HPD Class C violations are immediately hazardous. ECB violations include penalties and balances due. Returns both summary counts and violation details. Use this to assess a building's regulatory risk profile. Note on historical depth: our local DB retains all historical HPD violations and complaints, while NYC's live Socrata API rolls older records out of its public feed. As a result, the totals reported here may exceed what data.cityofnewyork.us shows for the same BBL — the extra rows are real, just no longer surfaced by NYC Open Data.
get_evictions Get marshal eviction execution records for a property address. Returns evictions that were *executed* (marshal removed tenant), not just filed. Covers residential and commercial evictions citywide from 2017. BBL queries use a local indexed database for fast, exact lookups. Address queries use the Socrata API for full 126K-row dataset coverage. Use this to assess tenant instability and cash-flow risk. Many executed evictions at a building may indicate distressed management, problematic tenants, or an owner pushing out rent-stabilized tenants. Provide either `address` OR `bbl` (not both). Args: address: Street address, e.g. "123 Main St, Brooklyn". bbl: 10-digit NYC BBL. Queried directly via BBL index. eviction_type: Filter by type: "Residential" or "Commercial". since_year: Return only evictions from this year onward (2017–present). limit: Max records to return (1–100, default 25).
get_property_history Get the history of a NYC property including sales and ownership transfers. Pulls sales from DOF records and ownership transfers from ACRIS deed records. Shows sale prices, dates, buyer/seller names, and document types. Use this to understand a property's transaction history and price trajectory.
lookup_property Look up a NYC property by address or BBL. Returns the full property profile including building details, zoning, assessed value, owner, and lot characteristics. This is always the first tool to call — you need a BBL before using other tools.
search_comps Find comparable property sales and neighborhood market statistics. Can search by zip code, building class, size, and time period. If a reference BBL is provided, uses that property's characteristics as defaults. Returns individual sales with price per sqft and quarterly market trends.
search_neighborhood_stats Get aggregate neighborhood statistics for market research and area analysis. Combines property stock data, sales market activity, violation patterns, and rent stabilization counts at the zip code or neighborhood level. Use this to compare areas, identify investment hotspots, or understand a neighborhood's character before drilling into individual properties. At least one of zip_code or neighborhood is required.
get_hpd_litigations Get HPD litigation history — cases where HPD sued the building owner. HPD only litigates the worst-offending buildings. This is a strong red flag for investors. Shows case types (heat/services, harassment, tenant protection), harassment findings, open judgements, and penalties. A building with HPD litigation history carries significant regulatory risk.
get_tax_info Get property tax assessment, market value, and exemption details. Shows assessed and market values (land and total), tax class, taxable value, and any active tax exemptions like 421a, J-51, or STAR.
get_rent_stabilization Get rent stabilization history for a property. Shows stabilized unit counts from 2007-2017 and whether counts are estimated or confirmed by DHCR. Use this to check if a building is rent-stabilized and track unit count changes over time.
get_fdny_fire_incidents Get FDNY fire and emergency incident history for a property address. Queries the local FDNY incident database (NYC Open Data dataset 8m42-w767). Returns fire incidents, structural fires, EMS responses, and other emergency calls associated with a property's zip code and borough. Falls back to the Socrata API for finer-grained address matching if local table unavailable. Use this to identify fire history, structural fire risk, repeated emergency responses, or patterns of emergency calls at a property's location. Provide either `address` OR `bbl` (not both). If BBL is given, the tool resolves it to a zip code before querying. Args: address: Street address, e.g. "37-06 80th Street, Queens" or "350 5th Ave, Manhattan". Borough or zip code recommended. bbl: 10-digit NYC BBL, e.g. "4008020015". Alternative to address. incident_type: Filter by incident type keyword, e.g. "FIRE", "STRUCTURAL", "EMS", "MEDICAL". Case-insensitive. since_year: Return only incidents from this year onward, e.g. 2018. Data available from 2013. limit: Max incidents to return (1–100, default 20).
get_hpd_registration Get HPD building registration and contact info. Shows the managing agent, corporate owner, head officer, and site manager for a registered NYC building. Required for buildings with 3+ residential units. Use this to find who manages or owns a building.
get_hpd_complaints Get HPD tenant complaints and reported problems for a property. Complaints are leading indicators of building distress — they show what tenants are reporting before formal violations are issued. Categories include PLUMBING, PAINT/PLASTER, HEAT/HOT WATER, PEST CONTROL, etc. Use this alongside violations to assess a building's condition. Note on historical depth: our local DB retains all historical HPD complaints, while NYC's live Socrata API rolls older records out of its public feed. As a result, totals reported here may exceed what data.cityofnewyork.us shows for the same BBL — the extra rows are real, just no longer surfaced by NYC Open Data.
analyze_property Generate a comprehensive due diligence summary for a NYC property. Combines data from 14 sources concurrently: property profile, HPD/DOB violations, HPD complaints, HPD litigations, HPD registration, evictions, building permits, 311 complaints, sales history, tax assessment, tax liens, ACRIS mortgages, rent stabilization, and comparable sales. Use this when the user wants a complete picture of a property for investment analysis.
get_dob_complaints Get DOB complaints filed against a property with the Dept of Buildings. Queries the DOB Complaints Received dataset (NYC Open Data `eabe-havv`). Complaints are filed *before* formal violations are issued — they trigger DOB inspections and are the earliest public signal of construction, safety, or code issues at a building. Key insight: compare this with `get_property_issues` violations. If a property has many complaints but few violations, DOB may not be inspecting. If complaints are recent and unresolved, it flags active safety concerns. Common complaint categories: illegal construction (01), elevator (02), plumbing (03), illegal conversion (04), boiler (05), structural (06), facade (07), fire egress (09), work without permit (10), electrical (11). Provide either `address` OR `bbl` (not both). Args: address: Street address, e.g. "350 5th Ave, Manhattan". bbl: 10-digit NYC BBL. Resolved via BIN lookup for accurate matching. category: Filter by complaint category code, e.g. "01" for construction without permit, "04" for illegal conversion. status: Filter by status keyword, e.g. "OPEN", "CLOSED", "REFERRED TO DA". since_year: Return only complaints from this year onward. limit: Max complaints to return (1–100, default 25).
get_nypd_crime Get NYPD crime complaints within a radius of a property. Queries the local NYPD complaint database (NYC Open Data) using a geospatial bounding-box search centered on the property's lat/lon. Returns all complaint types — felonies, misdemeanors, and violations — filed within the specified radius. Falls back to Socrata API if local table is unavailable. Uses the property's PLUTO coordinates (lot centroid) for accuracy. Default radius of 300 m covers roughly 3 city blocks in any direction. Use this to assess neighborhood safety for buyers, lenders, or underwriters. Compare felony vs misdemeanor breakdown, trend over years, and dominant offense types (assault, burglary, grand larceny, etc.). Provide either `address` OR `bbl` (not both). Args: address: Street address, e.g. "350 5th Ave, Manhattan". bbl: 10-digit NYC BBL. Coordinates resolved from PLUTO. radius_meters: Search radius in meters (50–800, default 300 ≈ 3 blocks). law_category: Filter by "FELONY", "MISDEMEANOR", or "VIOLATION". Case-insensitive. offense: Filter by offense keyword, e.g. "ASSAULT", "BURGLARY", "GRAND LARCENY", "ROBBERY". Case-insensitive. since_year: Return only complaints from this year onward (2006–present). limit: Max complaints to return (1–200, default 50).
Permissions 5
network medium filesystem low shell high database medium env_vars low