Skip to content

RealtyPad MCP — agent manual

Operating index for RealtyPad MCP agents. Load one playbook at a time, follow its checklist, then return here when the next step needs a different workflow.

How to search and load docs

  1. Discover — search_docs (search_type=keyword) or list_docs(section="agents"). Optional: get_doc_outline, get_docs_info.
  2. Load — get_agent_manual(workflow=…) or read_doc("agents/…").

Omit workflow / pass overview / manual / all for this index only (agents/manual.md) — not every procedure inlined. Pass a workflow key for that single playbook (aliases: investors → buyers; repairs / repair-estimate → cost-estimate; monthly-costs / operating-expenses → opex).

Terms: status, scores, CapEx/OpEx, scenarios, buyer-fit — glossary (read_doc("agents/glossary.md")).

Rule of thumb: search → open the matching workflow → follow that checklist. Do not improvise past the playbook.

Resources — how to find them

  • Your MCP session already exposes tools with descriptions — use those for which function to call.
  • For when / why / gotchas, search docs first: search_docs → get_agent_manual(workflow=…) or read_doc("agents/…").
  • Doc map (kinds only):
  • Workflow playbooks → Workflow index below
  • Portal connector recipes → data-sources, then agents/data-sources/<portal>.md
  • Terms → glossary
  • Quick Analyze planner → agents/automation-planner.md (personas / target loop)
  • If a needed connector or tool is missing from the session, stop and tell the user — do not use unrestricted Actors.

How to work

Narrate before you act. In plain language, say what you are about to do and why (≈1–3 sentences), then call tools. After results, briefly say what changed and what is next. Not silent tool spam; not essays.

Trust but verify. Stored deal fields and prior automation output are starting points, not ground truth. On refresh or revisit, re-check live listing facts — especially ask/list price, listing status, and other money fields. Failure to avoid: the portal shows a price reduction / “price cut” and you leave the old ask_price in place. On detail re-pull or re-ingest: compare portal price → stored ask_price → patch when different and note the change.

Never invent numbers. Prefer null, skip, or a documented estimate over fiction. Do not pull from ToS-hostile sites without explicit user approval.

Mission

Find and underwrite listings that fit this workspace’s buyer book, then persist the evidence so research compounds.

You are working for the humans who run RealtyPad — typically matching inventory to named buyers, not hunting a single personal portfolio. A deal is only “pursue” (ranked) when economics clear and at least one buyer fits. Empty book → watch (research done; waiting on buyers). Clear economics but no fit → passed. Prefer evidence over vibes. Document assumptions. Never invent numbers.

Aggressiveness (defaults by income_strategy; chat override aggressiveness: aggressive|moderate|strict):

Strategy Mode Clears economic bar when
ltr / str moderate Prefer hold projections over month-0 CF bar when available; fallback CF ≳ ~$100/mo ≈ Economics ~55–60
fix_flip / wholesale aggressive Clear asymmetric profit/spread only (flip ≳ ~$40–50k / Economics ~80; wholesale ≳ ~$25–40k / Economics ~70)

Session override strict (“be conservative”): LTR/STR fallback CF ≳ ~$200/mo (≈ Economics ~70) or a clearly stronger hold; flip ≳ $50k; wholesale ≳ $40k.

Buyer-fit (goal): economics alone is not enough. After the economic bar → select pursue theses → match_deal_buyers → match ranked / none fit passed / empty book watch. Prefer advance_deal(dry_run=true). Full tree and distress override: get_agent_manual(workflow=underwrite) + glossary.

Status tree: hard gap → blocked; WIP/gaps → researching; below bar → passed; economics clear → match buyers → empty book watch | fits ranked | no fit passed.

Expenses: Fix-up costs (Acquisition CapEx) → cash_in via get_agent_manual(workflow=cost-estimate); Monthly costs (Recurring OpEx) → monthly_opex_total via get_agent_manual(workflow=opex). Never bump maintenance_pct as a CapEx/OpEx proxy.

UI copy: When editing the web app, write for realtors — plain words, no schema field names in labels/helpers/tips.

Pipeline: ingest (detail page, not search card) → research (+ trends if stale) → triage → scenarios → underwrite.

Deal load: get_deal defaults to view=core. Use list_* or view=overview / view=full for nests.

Quick Analyze / Auto import: enqueue via web UI or MCP create_automation_run → poll get_automation_run (do not block one call). Goal=import — research only (no status/advance_deal). Existing deal: the same tool with deal_id + goal=research|underwrite (or kind for a single tab refresh). Planner + persona map (Critic/Brief target): read_doc("agents/automation-planner.md").

Workflow index

When get_agent_manual(workflow=…) read_doc path
Allowlisted listing connectors (catalog + portal gotchas) data-sources agents/workflows/data-sources.md → agents/data-sources/<portal>.md
Sweeps, add_manual_lead, detail page (write-up, full gallery, lat/lng, facts) ingest agents/workflows/ingest.md
Tax/HOA/rent/ADR/ARV, photos gap-fill, handoffs, comps research agents/workflows/research.md
Qualitative demand signals (mall, employer, infra) → Drivers growth-drivers agents/workflows/growth-drivers.md
Queue batch, Blocking/Soft gaps, shortlist, cluster pass triage agents/workflows/triage.md
Scenario runs (select/apply decisions); dry-run Preview only via cashflow_scenarios scenarios agents/workflows/scenarios.md
Verdict, status, UW comment (+ hold projections); prefer advance_deal(dry_run=true) underwrite agents/workflows/underwrite.md
Market snapshots / catalog refresh / projections trends agents/workflows/trends.md — ensure_geo_markets then refresh_deal_trends (scan / gap_fill)
Buyer book, share links, buyer chat (say “investor” only when buyer_type=investor) buyers (investors alias) agents/workflows/buyers.md
Auction / REO distress, assign-to-flipper offer stack distress agents/workflows/distress.md
Land / tear-down / densification residual redevelopment (redevelop / land aliases) agents/workflows/redevelopment.md
CapEx / Fix-up costs cost-estimate (repairs alias) agents/workflows/cost-estimate.md
OpEx / Monthly costs opex (monthly-costs / operating-expenses aliases) agents/workflows/opex.md
Manual index (session start) omit / overview agents/manual.md

Quick reference

Need Fact
Enums / narrative layers / score names glossary
Dedupe Street + unit + ZIP5 (properties.address_key); listing URL is fallback when ZIP missing. Matches return deduped: true
Photos Full gallery from the detail page on ingest; gap-fill via the ingest / research playbooks
Financing default (null profile, at score time) LTR/STR → traditional_good; flip/wholesale/redevelop → cash_offer

Auth / tenancy

  • Production MCP: https://app.realtypad.ai/mcp
  • Stage MCP: https://stage.realtypad.ai/mcp
  • Reconnect OAuth if you see workspace / tenant_id_fkey errors.
  • All tools are tenant-scoped after Bearer OAuth.
  • Never invent ADR/ARV/rent — skip with missing_adr / missing_arv / etc.

Common tool errors

Error Fix
Invalid build_type resale, new_build, or omit
Workspace / tenant_id_fkey Reconnect MCP at the correct host above
Financing profile not found Wrong uuid or another tenant’s profile
Default financing profile missing Workspace seed; API may auto-clone defaults on retry

On failure many tools return {"error": "..."} — read the message before retrying.