Skip to main content
Glama

Search NYC preforeclosures

search_nyc_preforeclosures
Read-onlyIdempotent

Searches NYC properties in preforeclosure only: lis pendens foreclosure filings in Manhattan, Brooklyn, Queens, the Bronx and Staten Island. For one NYC property by address use find_nyc_property; for filtered searches or properties outside NYC use the national property search tools. Filters: borough, foreclosure stage, equity (1-3 family homes only), case age, recently added and amount owed. Returns summary rows, newest first, up to 25 per call (default 10); page with offset. Each row carries the lot's bbl when known. For the owner's phone and email on a row, call get_nyc_property with that bbl, then unlock_nyc_owner_contacts; never search the web for it. Never spends credits. On any paid plan the first 25 summary rows each day are free; other workspaces pay for every row. Rows the workspace already pulled are free again. Past the free rows, rows cost 1 credit per 10, and this tool returns them as a quote instead: tell the user the credit cost and ask before calling run_nyc_preforeclosure_search with the quote_id.

Input Schema

NameRequiredDescriptionDefault
limitNoRows to return, 1 to 25. Defaults to 10.
stageNoForeclosure stages to include. Empty means every stage.
equityNoEstimated equity: positive (value above the debt) or negative, known for 1-3 family homes only. Empty means any.
offsetNoRows to skip, for the next page.
boroughNoNYC boroughs to include. Empty means all five.
filingAgeNoCase age by filing year: fresh (under 2 years), seasoned (2 to 5), long_running (5 or more).
amountOwedMaxNo
amountOwedMinNo
addedWithinDaysNoOnly filings added in the last N days. Use for 'new this week'.

Output Schema

NameRequiredDescriptionDefault
rowsYes
quoteYes
offsetYes
totalMatchesYes
creditsChargedYes
freeRowsPerDayYes
freeRowsUsedTodayYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • changedInput schema / properties / equity / description
      Previous value: -"Estimated equity: positive (value above the debt) or negative. Empty means any."New value: +"Estimated equity: positive (value above the debt) or negative, known for 1-3 family homes only. Empty means any."
    • removedInput schema / properties / marketValueMax
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedInput schema / properties / marketValueMin
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null
      -}
    • removedOutput schema / properties / rows / items / properties / marketValue
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "number"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ]
      -}
    • changedOutput schema / properties / rows / items / required
      Previous value: -[
      -  "id",
      -  "bbl",
      -  "address",
      -  "borough",
      -  "indexNumber",
      -  "filedOn",
      -  "stage",
      -  "stageLabel",
      -  "equity",
      -  "marketValue",
      -  "assessedValue",
      -  "amountOwed",
      -  "units",
      -  "yearBuilt",
      -  "ownerName",
      -  "lender",
      -  "latitude",
      -  "longitude"
      -]New value: +[
      +  "id",
      +  "bbl",
      +  "address",
      +  "borough",
      +  "indexNumber",
      +  "filedOn",
      +  "stage",
      +  "stageLabel",
      +  "equity",
      +  "assessedValue",
      +  "amountOwed",
      +  "units",
      +  "yearBuilt",
      +  "ownerName",
      +  "lender",
      +  "latitude",
      +  "longitude"
      +]
  2. Changed2 schema fields changed
    • addedOutput schema / properties / rows / items / properties / lender
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / rows / items / required
      Previous value: -[
      -  "id",
      -  "bbl",
      -  "address",
      -  "borough",
      -  "indexNumber",
      -  "filedOn",
      -  "stage",
      -  "stageLabel",
      -  "equity",
      -  "marketValue",
      -  "assessedValue",
      -  "amountOwed",
      -  "units",
      -  "yearBuilt",
      -  "ownerName",
      -  "latitude",
      -  "longitude"
      -]New value: +[
      +  "id",
      +  "bbl",
      +  "address",
      +  "borough",
      +  "indexNumber",
      +  "filedOn",
      +  "stage",
      +  "stageLabel",
      +  "equity",
      +  "marketValue",
      +  "assessedValue",
      +  "amountOwed",
      +  "units",
      +  "yearBuilt",
      +  "ownerName",
      +  "lender",
      +  "latitude",
      +  "longitude"
      +]
  3. Changed2 schema fields changed
    • addedOutput schema / properties / rows / items / properties / bbl
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
    • changedOutput schema / properties / rows / items / required
      Previous value: -[
      -  "id",
      -  "address",
      -  "borough",
      -  "indexNumber",
      -  "filedOn",
      -  "stage",
      -  "stageLabel",
      -  "equity",
      -  "marketValue",
      -  "assessedValue",
      -  "amountOwed",
      -  "units",
      -  "yearBuilt",
      -  "ownerName",
      -  "latitude",
      -  "longitude"
      -]New value: +[
      +  "id",
      +  "bbl",
      +  "address",
      +  "borough",
      +  "indexNumber",
      +  "filedOn",
      +  "stage",
      +  "stageLabel",
      +  "equity",
      +  "marketValue",
      +  "assessedValue",
      +  "amountOwed",
      +  "units",
      +  "yearBuilt",
      +  "ownerName",
      +  "latitude",
      +  "longitude"
      +]
  4. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the readOnly/idempotent annotations, disclosing credit behavior ('never spends credits'), free-tier daily rules, quote-instead-of-rows past free rows, newest-first ordering, and the bbl-to-owner-contacts workflow. This is exactly the kind of cost and side-effect context an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: purpose, alternatives, filters, return shape, then credit rules in a logical progression with zero filler. The credit paragraph is long but earns its length given the quote flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-param, credit-gated search tool it covers ordering, page size, paging, return contents (bbl), cost model, and next-step chaining to get_nyc_property/unlock_nyc_owner_contacts. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 78%, so the schema documents most params. The description still adds value by mapping the filter list and clarifying that equity only applies to 1-3 family homes; however, it doesn't clarify the amountOwedMin/Max parameters that lack schema descriptions, leaving a small gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Searches NYC properties in preforeclosure only: lis pendens foreclosure filings') and enumerates the five covered boroughs. It explicitly differentiates itself from find_nyc_property and the national search tools, so an agent can pick it apart from siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit routing rules: one property by address → find_nyc_property; filtered or non-NYC → national tools. It also documents the paid-tier flow requiring user confirmation before run_nyc_preforeclosure_search, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources