Developers Β· MCP server

Tool catalog

Six tools spanning the full REIzer surface: the deal-analysis engine (all six strategies), the max-offer solver, and the licensed comps & STR market data feeds. Every example below shows real engine output.

  • 4 free analysis tools
  • 2 licensed-data tools
  • Real example responses
tools --list
analyze_deal     underwrite + report  free
best_use         rank strategies      free
solve_max_offer  price ceiling        free
list_strategies  input schemas        free
pull_comps       sale + rent comps    account
str_market_data  STR market data      account
my_deals         list saved deals     signed in
get_my_deal      one deal's inputs    signed in
save_deal        save to My Deals     signed in
9tools
4free, no key
5with your account
100%real example outputs
Docs navigation

analyze_deal FREE

The core tool: a full underwrite of one property under one strategy. Returns the 0–100 deal score, the strategy's headline metrics (the same ones the REIzer analyzer screens show), stress-test scenarios with verdicts, break-even thresholds, and a shareable 30-day report_url.

ArgumentDescription
strategyrequiredOne of ltr, str, brrr, multifamily, flip, newc.
inputsrequiredDeal inputs in camelCase engine keys. Minimum: price plus the income driver (see the strategy table below). Rates and percents are fractions β€” 0.0675, never 6.75. Omitted operating inputs get documented defaults, and the response lists them under assumptions.estimated_fields.
example β€” call
analyze_deal({
  "strategy": "ltr",
  "inputs": { "price": 285000, "marketRent": 3100,
              "downPct": 0.25, "rate": 0.0675, "term": 30,
              "closing": 6000, "vacancyPct": 0.05,
              "taxes": 3200, "insurance": 1500,
              "mgmtPct": 0.08, "maintPct": 0.05, "capexPct": 0.05 }
})
example β€” response (abbreviated)
{
  "score": 96, "verdict": "Strong",
  "metrics": { "monthly_cash_flow": 636.85, "dscr": 1.4594,
               "cap_rate": 0.0852, "cash_on_cash": 0.0989, … },
  "stress": [ 7 scenarios, each with a verdict ],
  "thresholds": { "break_even_rent": 2282.47, "max_rate": 0.0878, … },
  "summary": "Strong (96/100). $637/mo cash flow, DSCR 1.46, …",
  "report_url": "https://reizer.io/report.html?id=…"
}

best_use FREE

One property, every angle. Send a superset of inputs; REIzer runs every strategy the property qualifies for and ranks them by score. Strategies missing their required inputs are listed under skipped with the reason.

ArgumentDescription
inputsrequiredOne property's inputs across strategies β€” e.g. price, marketRent, adr + occupancy, rehabBudget, arv, units.
example β€” response (real ranking)
"best_use": "ltr"
"ranked":  1. ltr   91  Strong
         2. str   77  Strong
         3. brrr  29  Weak
         4. flip   5  Weak
"skipped": multifamily, newc  (missing unit / land inputs)

solve_max_offer FREE

Works backwards: instead of "is this price good?", it answers "what's the most I can pay?" β€” a binary search over the real engine, not a rule-of-thumb formula. Each strategy has sensible default targets; override any of them.

ArgumentDescription
strategyrequiredStrategy to solve under.
inputsrequiredDeal inputs. price is optional β€” an asking price or ARV anchors the price-derived defaults (taxes, insurance, closing); with neither, those defaults follow each price the solver tests.
targetsoptionalTarget overrides, e.g. {"monthlyCF": 400, "cocReturn": 0.08}. Rentals default to cash-on-cash β‰₯ 8%, DSCR β‰₯ 1.2, cash flow β‰₯ $0; flips to after-tax margin β‰₯ 10% and annualized ROI β‰₯ 15%; BRRRR adds capital recovery β‰₯ 80%.
example β€” response (real solve)
// same inputs as above, with targets { monthlyCF: 400, cocReturn: 0.08 }
"mao": 303657
"binding_constraint": { "label": "cash-on-cash return", "target": 0.08 }
"metrics_at_mao": { "monthlyCF": 546.10, "dscr": 1.3697, "cocReturn": 0.08 }
"ceilings_per_target": { "cocReturn": 303657, "dscr": 346599, "monthlyCF": 333691 }

list_strategies FREE

Machine-readable discovery: every strategy with its required and optional inputs and their meanings. AI clients call this first when unsure what a strategy needs β€” no arguments.

pull_comps ACCOUNT

Needs a REIzer account: connect https://reizer.io/mcp/account and sign in, or send an API key header.

Real comparables from licensed data β€” the same feed as the in-app comps panel. Returns comparable sales (with a value estimate and range), rental comps (with a rent estimate), and ZIP-level market stats. Counts against the account's monthly property-comp allowance.

ArgumentDescription
streetrequiredStreet address incl. house number, e.g. "812 7th St SE".
cityrequiredCity name.
staterequiredTwo-letter state, e.g. "TX".
zipoptionalZIP code β€” disambiguates the address when a street name repeats in a metro.
saleCountoptionalComparable sales to return (default 10).
rentCountoptionalRental comps to return (default 10).
response shape
{
  "sales":   { "value", "valueRange": {low, high}, "medianPrice", "medianPpsf",
              "rows": [ {address, beds, baths, sqft, yearBuilt, price,
                        pricePerSqft, saleDate, distanceMi, …} ] },
  "rentals": { "rent", "rentRange", "medianRent", "rows": [ … ] },
  "market":  { "zip", "saleMedianPrice", "saleMedianDom", "saleYoyChange",
              "rentMedianPrice", "rentYoyChange", "saleHistory", … }
}

str_market_data ACCOUNT

Short-term-rental market performance for a property: nearby STR listings with ADR, occupancy, and revenue quartiles. Give the US address β€” REIzer places it on the map itself, and says so if it could only match the ZIP code. Coordinates work too if your AI already has them. Counts against the monthly STR-comp allowance; an address that can't be placed uses none.

ArgumentDescription
addressone ofFull US address in one line, e.g. "812 7th St SE, Minneapolis, MN 55414".
street, city, state, zipone ofThe same address in parts. A ZIP on its own searches around the ZIP's centre (approximate).
latitude, longitudeone ofOnly if your AI already has coordinates.
bedroomsoptionalBedrooms filter (default 2).
bathsoptionalBathrooms filter.
guestsoptionalGuest-capacity filter.

my_deals SIGNED IN

Your saved deals β€” the same list as My Deals on reizer.io and in the REIzer app β€” newest first, with each deal's id, strategy, address, last score, headline metric and a link that opens it in the analyzer. Only on the signed-in connector (https://reizer.io/mcp/account); it only ever sees the signed-in account's deals.

ArgumentDescription
strategyoptionalOnly deals of one strategy: ltr, str, brrr, multifamily, flip or newc.
queryoptionalText to match in the deal name or address.
limitoptionalHow many to return (default 10, max 25).

get_my_deal SIGNED IN

One saved deal by id: its full inputs and the metrics saved with it. The inputs use analyze_deal's keys, so your AI can re-run the deal with a different rate, rent or price and compare.

ArgumentDescription
idrequiredThe deal id from my_deals.

save_deal SIGNED IN

Saves a deal to My Deals. It runs the same analysis as analyze_deal and stores the inputs with the score, so the deal opens in the REIzer analyzer on the web and in the phone app exactly as if you had saved it there. Counts against the account's monthly saved-deal allowance.

ArgumentDescription
strategyrequiredltr, str, brrr, multifamily, flip or newc.
inputsrequiredSame keys and units as analyze_deal (rates and percents as fractions).
nameoptionalA name for the deal; defaults to the street address.
addressoptionalProperty address, e.g. "812 7th St SE, Minneapolis, MN 55414".

Money-field units

Same dollars periods as the REST API β€” send these to analyze_deal / best_use / solve_max_offer:

FieldUnitNotes
marketRent, ltrRent$/moGross monthly rent
hoa$/moAll strategies, including STR
utilities$/moOwner-paid utilities
taxes, insurance$/yrAnnual totals
reserves$/yrFlat annual reserve (not CapEx %)

Changelog (2026-08-16): hoa is monthly on every strategy, including STR (previously STR behaved as annual in the engine). Rates stay fractions (0.0675). API version remains v1.

Strategy input cheat-sheet

What analyze_deal minimally needs per strategy (everything else defaults, labeled in the response):

StrategyRequired inputsAnalyzes
ltrprice, marketRentLong-term rental: cash flow, DSCR, cap rate, 10-yr projection
strprice, adr, occupancyShort-term rental: revenue, break-even occupancy, levers
brrrprice, rehabBudget, marketRent, arvBRRRR: refi scenarios, capital recovery, post-refi cash flow
multifamilyprice, unitsRent-roll driven: NOI, value-add lift, per-unit economics
flipprice, rehabBudget, arvFix-n-flip: after-tax profit, 70% rule, break-even sale
newclandPrice, livingSqft, buildPsf, btsArvNew construction: build-to-sell vs build-to-rent head-to-head

See them in real conversations.

Prompts to steal, per investor type β€” deal screening, offers, comps, STR underwriting.

analyze_dealthe tool your AI reaches for first
$303,657a real solve_max_offer answer
96/100a real analyze_deal score