{"tools":[{"name":"search_deals","description":"Search scored live listings (Phase 2) and/or top-scoring census tracts by strategy. strategy: 'flip'|'brrrr'. Returns ranked results with scores and economics.","inputSchema":{"type":"object","properties":{"metro":{"type":"string","default":"chicago"},"strategy":{"type":"string","enum":["flip","brrrr"],"default":"brrrr"},"min_score":{"type":"number","default":70},"max_price":{"type":"number"},"limit":{"type":"number","default":10},"since_hours":{"type":"number","description":"only listings first seen in the last N hours"}}}},{"name":"get_tract_report","description":"Full signal report for one census tract (11-digit GEOID): scores, all factor percentiles, tax/reassessment, S8 arbitrage, commute, risks.","inputSchema":{"type":"object","properties":{"geoid":{"type":"string"}},"required":["geoid"]}},{"name":"underwrite","description":"Underwrite an address or lat/lon: joins it to its tract, runs flip + BRRRR deal math at a given price. Returns DSCR, cash-on-cash, flip net, max loan at DSCR 1.2.","inputSchema":{"type":"object","properties":{"address":{"type":"string"},"lat":{"type":"number"},"lon":{"type":"number"},"price":{"type":"number"},"rehab":{"type":"number"},"rent":{"type":"number"},"units":{"type":"number"},"rate":{"type":"number"}},"required":["price"]}},{"name":"market_pulse","description":"County-wide pulse: top tracts per strategy, best S8-arbitrage ZIPs, reassessment-shock leaders, data vintages.","inputSchema":{"type":"object","properties":{"metro":{"type":"string","default":"chicago"}}}},{"name":"comps","description":"REAL comp-based ARV for an address or lat/lon. Fetches the neighborhood's recent arms-length sales live from Cook County, time-indexes each to today, and returns Conservative/Base/Aggressive ARV + a confidence score + the best comps AND the rejected ones with reasons. Deterministic appraisal methodology, not an estimate. prop_type: 'mf2_4' (2-4 flat) | 'sfh'.","inputSchema":{"type":"object","properties":{"address":{"type":"string"},"lat":{"type":"number"},"lon":{"type":"number"},"prop_type":{"type":"string","enum":["mf2_4","sfh"],"default":"mf2_4"}}}},{"name":"risk_report","description":"Separate Risk Score (0-100) for an address or lat/lon, with each risk flag's stated reason. Covers tax shock after purchase, tax trap, basement/flood, rising violent crime, distress proximity, closing friction, legal-unit mismatch, appraisal ceiling, vintage-stock. Risk is shown separately from opportunity — high-opportunity/high-risk is a valid state.","inputSchema":{"type":"object","properties":{"address":{"type":"string"},"lat":{"type":"number"},"lon":{"type":"number"},"listing_units":{"type":"number"},"year_built":{"type":"number"}}}}],"auth":"PUBLIC BETA — no key required on /mcp (30 calls/min/IP); OAuth 2.1 planned","docs":"/developers/mcp"}