Realty.Bingo

Property search, comparison, investment analysis and watchlists with change alerts

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
76%
Naming quality
98%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~5,360Tokens (tool definitions)
~3.7 KBTypical response size
Significant attention impact (4.19% 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": {
    "realty": {
      "url": "https://realty.bingo/mcp"
    }
  }
}

Remote endpoints

https://realty.bingo/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_properties(listing_type, location, property_types, exclude_property_types, min_price, ...)

Find active U.S. homes for sale or rent in a city+state, ZIP codes, a radius around a point, or a polygon. Hard requirements (max_price, min_bedrooms, min_bathrooms, property_types, must_have) filter; soft preferences (ideal_max_price, preferred_bedrooms, nice_to_have, styles) rank; avoid and exclude_property_types exclude. Each result has a 0-100 match score with reasons and uncertainties, the features the listing states (with evidence class), source details and when it was last confirmed active. Features a listing does not mention are UNKNOWN, never assumed. Reuses data fetched in the last 12 hours; otherwise makes a live request if the daily allowance permits. Source: Realtor.com (via RapidAPI) with RentCast as fallback; each result names its source. Never present results beyond what is returned.

Input Schema

{
  "type": "object",
  "properties": {
    "listing_type": {
      "type": "string",
      "enum": [
        "sale",
        "rental"
      ]
    },
    "location": {
      "type": "object",
      "properties": {
        "city": {
          "type": "string",
          "minLength": 2,
          "maxLength": 80
        },
        "state": {
          "type": "string",
          "pattern": "^[A-Za-z]{2}$"
        },
        "zip_codes": {
          "minItems": 1,
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^\\d{5}$"
          }
        },
        "center": {
          "type": "object",
          "properties": {
            "latitude": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "longitude": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            }
          },
          "required": [
            "latitude",
            "longitude"
          ],
          "additionalProperties": false
        },
        "radius_miles": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 50
        },
        "polygon": {
          "minItems": 3,
          "maxItems": 100,
          "type": "array",
          "items": {
            "type": "array",
            "prefixItems": [
              {
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              {
                "type": "number",
                "minimum": -180,
                "maximum": 180
              }
            ],
            "items": false,
            "minItems": 2,
            "maxItems": 2
          }
        },
        "preferred_zip_codes": {
          "maxItems": 20,
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^\\d{5}$"
          }
        }
      },
      "additionalProperties": false
    },
    "property_types": {
      "maxItems": 7,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single_family",
          "condo",
          "townhouse",
          "multi_family",
          "apartment",
          "manufactured",
          "land"
        ]
      }
    },
    "exclude_property_types": {
      "maxItems": 7,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "single_family",
          "condo",
          "townhouse",
          "multi_family",
          "apartment",
          "manufactured",
          "land"
        ]
      }
    },
    "min_price": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000000
    },
    "max_price": {
      "description": "Hard ceiling: listings above it are excluded.",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000000
    },
    "ideal_max_price": {
      "description": "Soft target: listings above it rank lower but stay in.",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000000
    },
    "min_bedrooms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 20
    },
    "preferred_bedrooms": {
      "type": "integer",
      "minimum": 0,
      "maximum": 20
    },
    "bedrooms_exception": {
      "description": "e.g. 'three bedrooms, but two is fine with an office': min_bedrooms 3 plus {min_bedrooms: 2, requires: ['home office']}",
      "type": "object",
      "properties": {
        "min_bedrooms": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20
        },
        "requires": {
          "minItems": 1,
          "maxItems": 5,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 2,
            "maxLength": 60
          }
        }
      },
      "required": [
        "min_bedrooms",
        "requires"
      ],
      "additionalProperties": false
    },
    "min_bathrooms": {
      "type": "number",
      "minimum": 0,
      "maximum": 20
    },
    "min_living_area": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000
    },
    "min_lot_area": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 100000000
    },
    "min_year_built": {
      "type": "integer",
      "minimum": 1600,
      "maximum": 2100
    },
    "max_hoa_fee": {
      "type": "number",
      "minimum": 0,
      "maximum": 100000
    },
    "must_have": {
      "description": "Mandatory features, e.g. garage, fireplace. Unmentioned = unverified, not excluded (unless strict_unknowns).",
      "maxItems": 15,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 60
      }
    },
    "nice_to_have": {
      "description": "Soft features that improve ranking.",
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 60
      }
    },
    "styles": {
      "description": "Architectural styles, e.g. Craftsman, Victorian, mid-century modern.",
      "maxItems": 10,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 60
      }
    },
    "avoid": {
      "description": "Features that exclude a listing when the listing states them, e.g. fixer-upper, pool.",
      "maxItems": 15,
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 2,
        "maxLength": 60
      }
    },
    "max_distance": {
      "description": "Straight-line distance from a place the user names (e.g. work). Not driving time.",
      "type": "object",
      "properties": {
        "place": {
          "type": "object",
          "properties": {
            "latitude": {
              "type": "number",
              "minimum": -90,
              "maximum": 90
            },
            "longitude": {
              "type": "number",
              "minimum": -180,
              "maximum": 180
            }
          },
          "required": [
            "latitude",
            "longitude"
          ],
          "additionalProperties": false
        },
        "miles": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 100
        },
        "label": {
          "type": "string",
          "maxLength": 60
        }
      },
      "required": [
        "place",
        "miles"
      ],
      "additionalProperties": false
    },
    "strict_unknowns": {
      "description": "Exclude listings that do not state a must_have feature (default false: keep and flag).",
      "type": "boolean"
    },
    "investment": {
      "type": "object",
      "properties": {
        "min_gross_yield_pct": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 100
        },
        "max_price_per_sqft": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 100000
        }
      },
      "additionalProperties": false
    },
    "notes": {
      "description": "The user's own words, kept for reference; terms in it that match the feature list become soft preferences.",
      "type": "string",
      "maxLength": 500
    },
    "limit": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    },
    "offset": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 500
    },
    "sort": {
      "default": "match",
      "type": "string",
      "enum": [
        "match",
        "price_low",
        "price_high",
        "newest"
      ]
    },
    "allow_live_request": {
      "default": true,
      "description": "false = stored data only (no provider request).",
      "type": "boolean"
    },
    "include_non_matching": {
      "default": false,
      "description": "true = also return listings that fail a hard requirement, with the reason.",
      "type": "boolean"
    }
  },
  "required": [
    "listing_type",
    "location"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_property_details(property_id, listing_id, refresh)

Everything Realty.Bingo holds on one property (property_id) or listing (listing_id): attributes, current and other listings, listing contact as published, features with evidence, identity-resolution confidence, recent changes and any stored rent/value estimates (labelled as estimates). refresh: true fetches the latest record if the stored one is over a day old.

Input Schema

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string",
      "pattern": "^rrp_[a-f0-9]{24}$"
    },
    "listing_id": {
      "type": "string",
      "pattern": "^rrl_[a-f0-9]{24}$"
    },
    "refresh": {
      "default": false,
      "description": "Fetch the latest listing record from its source if the stored one is over 24 hours old (uses a live refresh).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡save_property_watchlist(name, criteria, alert_prefs, monitoring, priority)

Save the user's search criteria once as a named, persistent watchlist (same criteria as search_properties) with alert preferences (min_score, new listings, price drops with optional minimum percent or amount, back on market). Realty.Bingo then monitors the area on a schedule, independent of any conversation, and records new matching listings, price reductions and relistings as alerts. Saving again with the same name replaces it. Returns how the criteria were interpreted (hard vs soft vs excluded) and a preview from stored data. Preferences about the people in a neighbourhood are refused (fair housing).

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "criteria": {
      "type": "object",
      "properties": {
        "listing_type": {
          "type": "string",
          "enum": [
            "sale",
            "rental"
          ]
        },
        "location": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "minLength": 2,
              "maxLength": 80
            },
            "state": {
              "type": "string",
              "pattern": "^[A-Za-z]{2}$"
            },
            "zip_codes": {
              "minItems": 1,
              "maxItems": 10,
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^\\d{5}$"
              }
            },
            "center": {
              "type": "object",
              "properties": {
                "latitude": {
                  "type": "number",
                  "minimum": -90,
                  "maximum": 90
                },
                "longitude": {
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180
                }
              },
              "required": [
                "latitude",
                "longitude"
              ],
              "additionalProperties": false
            },
            "radius_miles": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 50
            },
            "polygon": {
              "minItems": 3,
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  }
                ],
                "items": false,
                "minItems": 2,
                "maxItems": 2
              }
            },
            "preferred_zip_codes": {
              "maxItems": 20,
              "type": "array",
              "items": {
                "type": "string",
                "pattern": "^\\d{5}$"
              }
            }
          },
          "additionalProperties": false
        },
        "property_types": {
          "maxItems": 7,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "single_family",
              "condo",
              "townhouse",
              "multi_family",
              "apartment",
              "manufactured",
              "land"
            ]
          }
        },
        "exclude_property_types": {
          "maxItems": 7,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "single_family",
              "condo",
              "townhouse",
              "multi_family",
              "apartment",
              "manufactured",
              "land"
            ]
          }
        },
        "min_price": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 1000000000
        },
        "max_price": {
          "description": "Hard ceiling: listings above it are excluded.",
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 1000000000
        },
        "ideal_max_price": {
          "description": "Soft target: listings above it rank lower but stay in.",
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 1000000000
        },
        "min_bedrooms": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20
        },
        "preferred_bedrooms": {
          "type": "integer",
          "minimum": 0,
          "maximum": 20
        },
        "bedrooms_exception": {
          "description": "e.g. 'three bedrooms, but two is fine with an office': min_bedrooms 3 plus {min_bedrooms: 2, requires: ['home office']}",
          "type": "object",
          "properties": {
            "min_bedrooms": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "requires": {
              "minItems": 1,
              "maxItems": 5,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 2,
                "maxLength": 60
              }
            }
          },
          "required": [
            "min_bedrooms",
            "requires"
          ],
          "additionalProperties": false
        },
        "min_bathrooms": {
          "type": "number",
          "minimum": 0,
          "maximum": 20
        },
        "min_living_area": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 100000
        },
        "min_lot_area": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 100000000
        },
        "min_year_built": {
          "type": "integer",
          "minimum": 1600,
          "maximum": 2100
        },
        "max_hoa_fee": {
          "type": "number",
          "minimum": 0,
          "maximum": 100000
        },
        "must_have": {
          "description": "Mandatory features, e.g. garage, fireplace. Unmentioned = unverified, not excluded (unless strict_unknowns).",
          "maxItems": 15,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 2,
            "maxLength": 60
          }
        },
        "nice_to_have": {
          "description": "Soft features that improve ranking.",
          "maxItems": 25,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 2,
            "maxLength": 60
          }
        },
        "styles": {
          "description": "Architectural styles, e.g. Craftsman, Victorian, mid-century modern.",
          "maxItems": 10,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 2,
            "maxLength": 60
          }
        },
        "avoid": {
          "description": "Features that exclude a listing when the listing states them, e.g. fixer-upper, pool.",
          "maxItems": 15,
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 2,
            "maxLength": 60
          }
        },
        "max_distance": {
          "description": "Straight-line distance from a place the user names (e.g. work). Not driving time.",
          "type": "object",
          "properties": {
            "place": {
              "type": "object",
              "properties": {
                "latitude": {
                  "type": "number",
                  "minimum": -90,
                  "maximum": 90
                },
                "longitude": {
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180
                }
              },
              "required": [
                "latitude",
                "longitude"
              ],
              "additionalProperties": false
            },
            "miles": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 100
            },
            "label": {
              "type": "string",
              "maxLength": 60
            }
          },
          "required": [
            "place",
            "miles"
          ],
          "additionalProperties": false
        },
        "strict_unknowns": {
          "description": "Exclude listings that do not state a must_have feature (default false: keep and flag).",
          "type": "boolean"
        },
        "investment": {
          "type": "object",
          "properties": {
            "min_gross_yield_pct": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 100
            },
            "max_price_per_sqft": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 100000
            }
          },
          "additionalProperties": false
        },
        "notes": {
          "description": "The user's own words, kept for reference; terms in it that match the feature list become soft preferences.",
          "type": "string",
          "maxLength": 500
        }
      },
      "required": [
        "listing_type",
        "location"
      ],
      "additionalProperties": false
    },
    "alert_prefs": {
      "type": "object",
      "properties": {
        "min_score": {
          "type": "integer",
          "minimum": 1,
          "maximum": 100
        },
        "new_listings": {
          "type": "boolean"
        },
        "price_drops": {
          "type": "boolean"
        },
        "min_drop_pct": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 90
        },
        "min_drop_amount": {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 100000000
        },
        "back_on_market": {
          "type": "boolean"
        },
        "status_changes": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "monitoring": {
      "default": "active",
      "type": "string",
      "enum": [
        "active",
        "paused"
      ]
    },
    "priority": {
      "default": "normal",
      "type": "string",
      "enum": [
        "normal",
        "high"
      ]
    }
  },
  "required": [
    "name",
    "criteria"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴manage_property_watchlist(action, name, confirm)

list, get, pause, resume or delete (confirm: true) the user's watchlists by name, or 'matches' to see the best-scoring current listings for one. Also shows plan limits.

Input Schema

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "list",
        "get",
        "pause",
        "resume",
        "delete",
        "matches"
      ]
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60
    },
    "confirm": {
      "type": "boolean"
    }
  },
  "required": [
    "action"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴get_property_alerts(types, watchlist, include_already_retrieved, limit)

New alerts from monitoring: NEW_MATCHING_PROPERTY, NEW_STRONG_STYLE_MATCH, PRICE_DROP, RENT_DROP, PRICE_THRESHOLD_REACHED, RENT_THRESHOLD_REACHED, PROPERTY_BACK_ON_MARKET, LISTING_STATUS_CHANGED, SAVED_PROPERTY_UPDATED, INVESTMENT_CRITERIA_MATCHED. Filter by types (e.g. price changes only) or watchlist. Each alert has the property, source, previous and current values, detection time, freshness and why it matched. Returned alerts are marked retrieved. Relay the message wording; do not upgrade it (a price drop is not a bargain, a removed listing is not a sale).

Input Schema

{
  "type": "object",
  "properties": {
    "types": {
      "description": "Filter, e.g. ['PRICE_DROP','RENT_DROP'] for price changes or ['NEW_MATCHING_PROPERTY','NEW_STRONG_STYLE_MATCH'] for new matches.",
      "maxItems": 14,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "NEW_MATCHING_PROPERTY",
          "NEW_LISTING_OBSERVED",
          "PRICE_DROP",
          "PRICE_INCREASE",
          "PRICE_THRESHOLD_REACHED",
          "RENT_DROP",
          "RENT_THRESHOLD_REACHED",
          "PROPERTY_BACK_ON_MARKET",
          "LISTING_STATUS_CHANGED",
          "PROPERTY_PENDING",
          "PROPERTY_SOLD",
          "SAVED_PROPERTY_UPDATED",
          "NEW_STRONG_STYLE_MATCH",
          "INVESTMENT_CRITERIA_MATCHED"
        ]
      }
    },
    "watchlist": {
      "type": "string",
      "maxLength": 60
    },
    "include_already_retrieved": {
      "default": false,
      "type": "boolean"
    },
    "limit": {
      "default": 20,
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴track_property(action, property_id, listing_id, price_below, min_drop_pct, ...)

Follow one property (track), stop (untrack) or list tracked ones. Optional price_below threshold and min_drop_pct. Tracked properties produce alerts on every verified price or status change.

Input Schema

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "track",
        "untrack",
        "list"
      ]
    },
    "property_id": {
      "type": "string",
      "pattern": "^rrp_[a-f0-9]{24}$"
    },
    "listing_id": {
      "type": "string",
      "pattern": "^rrl_[a-f0-9]{24}$"
    },
    "price_below": {
      "description": "Alert when the asking price (or rent) drops below this.",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000000
    },
    "min_drop_pct": {
      "description": "Only alert on reductions at least this large (percent).",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 90
    },
    "note": {
      "type": "string",
      "maxLength": 200
    }
  },
  "required": [
    "action"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_property_history(property_id, listing_id)

Price and status history for a property: what Realty.Bingo observed (with dates), detected changes, and the listing source's own reported history, kept separate and labelled. Includes cumulative change since first observed. Never infers an earlier price.

Input Schema

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string",
      "pattern": "^rrp_[a-f0-9]{24}$"
    },
    "listing_id": {
      "type": "string",
      "pattern": "^rrl_[a-f0-9]{24}$"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢compare_properties(property_ids, watchlist)

Side-by-side comparison of 2-5 properties (property_id) on price, price per sq ft, size, age, HOA, time observed, price changes and stated features (unknown where the listing is silent); optional match scores against a saved watchlist.

Input Schema

{
  "type": "object",
  "properties": {
    "property_ids": {
      "minItems": 2,
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^rrp_[a-f0-9]{24}$"
      }
    },
    "watchlist": {
      "description": "Score each against this saved search.",
      "type": "string",
      "maxLength": 60
    }
  },
  "required": [
    "property_ids"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢analyze_property_investment(property_id, listing_id, monthly_rent, use_rent_estimate, assumptions)

Gross rental yield, gross annual rent, price-to-rent and price per sq ft for a sale listing, from the user's monthly_rent, an active rental listing for the same property, or a RentCast rent estimate (labelled). With assumptions (down payment, rate, taxes, insurance, vacancy, repairs, management, capex) also cash flow, cap rate and cash-on-cash, plus a sensitivity table. Gross yield is not a return; always relay the disclaimer.

Input Schema

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string",
      "pattern": "^rrp_[a-f0-9]{24}$"
    },
    "listing_id": {
      "type": "string",
      "pattern": "^rrl_[a-f0-9]{24}$"
    },
    "monthly_rent": {
      "description": "The user's own rent assumption; used instead of an estimate.",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000
    },
    "use_rent_estimate": {
      "default": true,
      "description": "Use a RentCast rent estimate when no monthly_rent is given (may use a live refresh).",
      "type": "boolean"
    },
    "assumptions": {
      "type": "object",
      "properties": {
        "down_payment_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "mortgage_rate_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 30
        },
        "loan_years": {
          "type": "integer",
          "minimum": 1,
          "maximum": 40
        },
        "property_tax_annual": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000000
        },
        "insurance_annual": {
          "type": "number",
          "minimum": 0,
          "maximum": 10000000
        },
        "hoa_monthly": {
          "type": "number",
          "minimum": 0,
          "maximum": 1000000
        },
        "vacancy_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "repairs_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "management_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "capex_pct": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        }
      },
      "additionalProperties": false
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟡record_property_feedback(property_id, listing_id, feedback, reasons)

Record the user's reaction to a property: like, save (also tracks it), dislike, dismiss (never shown again), hide, contacted_agent, toured, with optional reasons (price, hoa, location, size, condition, style, layout, lot, noise, other). Only when the user says so. Returns learned preference suggestions and clarifying questions to ask.

Input Schema

{
  "type": "object",
  "properties": {
    "property_id": {
      "type": "string",
      "pattern": "^rrp_[a-f0-9]{24}$"
    },
    "listing_id": {
      "type": "string",
      "pattern": "^rrl_[a-f0-9]{24}$"
    },
    "feedback": {
      "type": "string",
      "enum": [
        "like",
        "save",
        "dislike",
        "dismiss",
        "hide",
        "contacted_agent",
        "toured"
      ]
    },
    "reasons": {
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "price",
          "hoa",
          "location",
          "size",
          "condition",
          "style",
          "layout",
          "lot",
          "noise",
          "other"
        ]
      }
    }
  },
  "required": [
    "feedback"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🔴manage_realtybingo_account(action, key, webhook_url, confirm)

view the account, plan, usage and every stored preference with its provenance; confirm, reject or delete a learned preference; clear personalization or delete the account (both need confirm: true and an explicit request); set or remove a signed webhook for alerts (paid plans).

Input Schema

{
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "enum": [
        "view",
        "confirm_preference",
        "reject_preference",
        "delete_preference",
        "clear_personalization",
        "set_webhook",
        "remove_webhook",
        "delete_account"
      ]
    },
    "key": {
      "type": "string",
      "maxLength": 120
    },
    "webhook_url": {
      "type": "string",
      "maxLength": 500
    },
    "confirm": {
      "type": "boolean"
    }
  },
  "required": [
    "action"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_realtybingo_brief

A personalized digest: pending alert counts and the top few, each watchlist's best current matches and data age, tracked properties and their changes this week, learned-preference suggestions and questions worth asking. Does not mark alerts retrieved.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools