# Realty.Bingo

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

- name: io.github.agentstructure/realty
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 80/100 flags: no-repository
- quality: 89/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.agentstructure%2Frealty
- tools: https://api.protogrid.dev/v1/servers/io.github.agentstructure%2Frealty/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "realty": {
      "type": "http",
      "url": "https://realty.bingo/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 45
- drivers: +website +reachable +uptime-100% +updated-5d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (new)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 12 of 12 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 5,390 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 4 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 12, about 5,390 tokens to load them all
- tool set hash: cc4c6e31a83621ef4d02e39a63171438
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.agentstructure/realty.svg)](https://protogrid.dev/servers/io.github.agentstructure/realty)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://realty.bingo/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (12)

- `analyze_property_investment`: 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.
- `compare_properties`: 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.
- `get_property_alerts`: 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).
- `get_property_details`: 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.
- `get_property_history`: 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.
- `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.
- `manage_property_watchlist`: 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.
- `manage_realtybingo_account`: 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).
- `record_property_feedback`: 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.
- `save_property_watchlist`: 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).
- `search_properties`: 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.
- `track_property`: 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.
