Realty.Bingo
by agentstructure · remote · no sign-in to list tools · v1.0.0 · published by GitHub user agentstructure
Property search, comparison, investment analysis and watchlists with change alerts
12 tools: 2 can delete or cancel things, 7 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things7Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http realty https://realty.bingo/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "search_properties" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "search_properties" says "search": a word for reading.
The server marks "get_property_details" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_property_details" says "get": a word for reading.
The server marks "get_property_alerts" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_property_alerts" says "get": a word for reading.
The server marks "analyze_property_investment" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "analyze_property_investment" says "analyze": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
12 tools
Deletes or cancels 2Claude Code: deny
manage_property_watchlistlist, get, pause, resume or delete (confirm: true) the user's watchlists by name, or 'matches' to see the best-scoring current listings for one.No findings
Why it is in this group
- The description's first verb is "list": a word for reading.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Manage watchlists
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
manage_realtybingo_accountview 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 nee…No findings
Why it is in this group
- The description's first verb is "view": a word for reading.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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).
Annotations the server declares
- title: Manage account and preferences
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
Changes things 7Claude Code: ask
analyze_property_investmentGross 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 Rent…1 finding
Why it is in this group
- The name "analyze_property_investment" says "analyze": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "analyze_property_investment" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "analyze_property_investment" says "analyze": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Analyze an investment property
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
get_property_alertsNew 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_…1 finding
Why it is in this group
- The name "get_property_alerts" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "get_property_alerts" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "get_property_alerts" says "get": a word for reading.
Description, as the server wrote it 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).
Annotations the server declares
- title: Get property alerts
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
get_property_detailsEverything Realty.Bingo holds on one property (property_id) or listing (listing_id): attributes, current and other listings, listing contact as published, features with evidence, i…1 finding
Why it is in this group
- The name "get_property_details" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "get_property_details" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "get_property_details" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get property details
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
record_property_feedbackRecord 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, locat…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Record property feedback
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
save_property_watchlistSave 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 optiona…No findings
Why it is in this group
- The name "save_property_watchlist" says "save": a word for a change.
Description, as the server wrote it 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).
Annotations the server declares
- title: Save a property watchlist
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
search_propertiesFind active U.S.1 finding
Why it is in this group
- The name "search_properties" says "search": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "search_properties" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":true}; The name "search_properties" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Search properties
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
track_propertyFollow one property (track), stop (untrack) or list tracked ones.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Track a property
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 3Claude Code: allow
compare_propertiesSide-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 si…No findings
Why it is in this group
- The name "compare_properties" says "compare": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Compare properties
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_property_historyPrice 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.No findings
Why it is in this group
- The name "get_property_history" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get property history
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_realtybingo_briefA 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 …No findings
Why it is in this group
- The name "get_realtybingo_brief" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Realty.Bingo brief
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http realty https://realty.bingo/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__realty__get_property_history",
"mcp__realty__compare_properties",
"mcp__realty__get_realtybingo_brief"
],
"ask": [
"mcp__realty__search_properties",
"mcp__realty__get_property_details",
"mcp__realty__save_property_watchlist",
"mcp__realty__get_property_alerts",
"mcp__realty__track_property",
"mcp__realty__analyze_property_investment",
"mcp__realty__record_property_feedback"
],
"deny": [
"mcp__realty__manage_property_watchlist",
"mcp__realty__manage_realtybingo_account"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as realty. Review it before you use it.
