Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.perkinsandre/investra-ai-mcp

NPM · INVESTRA-AI-MCP · SCANNED AUG 3

Real estate investment intelligence: search, comps, cash flow, off-market leads, skip trace.

Available components

+18 this week 54 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (95 of 96), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (95 of 96), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency19
  • Repository check failed: the declared repository URL returned HTTP 404. See how to fix → View diagnostics → Fail
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 112 days ago).Pass
  • Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability26
  • AI-judged instruction clarity (poor).Fail
  • Context-footprint check failed: tool/resource definitions use about 3788 tokens (~252/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
  • Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · investra-ai-mcp

# add to Claude Code
claude mcp add perkinsandre-investra-ai-mcp -- npx -y investra-ai-mcp
# add to Codex CLI
codex mcp add perkinsandre-investra-ai-mcp -- npx -y investra-ai-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "perkinsandre-investra-ai-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "investra-ai-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add perkinsandre-investra-ai-mcp --command npx --arg -y --arg investra-ai-mcp
# ~/.hermes/config.yaml
mcp_servers:
  perkinsandre-investra-ai-mcp:
    command: "npx"
    args: ["-y", "investra-ai-mcp"]
// mcp.json
{
  "mcpServers": {
    "perkinsandre-investra-ai-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "investra-ai-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +15
    • Known CVEs: partial → unverified security
    • Malware scan: unverified → pass security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Dependency health: partial → unverified functional
    • Tool coverage: 100 → unverified functional
    • Capabilities: pass → unverified functional
    • Stability: unverified → 0.20 functional
  • 1 Aug 26 +26
    • Provenance: unverified → fail security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • MCP protocol: unverified → pass functional
    • License: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Maintenance: unverified → pass functional
    • Schema quality: unverified → poor functional
    • Licence: MIT functional
  • 31 Jul 26 −6
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 0
    • Malware scan: pass → unverified security
    • Tool coverage: unverified → 100 functional
  • 28 Jul 26 −18
    • Tool coverage: 100 → unverified functional
    • First check of Schema quality: unverified functional
  • 27 Jul 26 36

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 95 packages

95 packages in the resolved dependency tree · 95 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 15 exposed · ~3,302 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
analyze_market ~54

Get comprehensive market analysis for a specific city including pricing trends, rental data, and economic indicators

NameTypeReqDescription
citystringyesCity name
statestringyesTwo-letter state code (e.g. TX, CA)

No output schema declared.

No examples provided.

browse_deals ~99

Browse investment deals posted by other investors. Returns a summary list — use get_deal_details with the Deal ID for full financials and property data.

NameTypeReqDescription
citystringFilter by city
dealTypestringFilter by investment strategy
limitnumberNumber of results (max 50)
minRoinumberMinimum projected ROI percentage
statestringTwo-letter state code

No output schema declared.

No examples provided.

estimate_costs ~1,265

Run a full investment underwrite on a property using one of three strategies: 'rental' (Buy-Hold-Rent), 'flip' (Fix & Flip), or 'brrrr' (Buy-Rehab-Rent-Refinance-Repeat). Each strategy mirrors the exact calculation engine used by Investra's PropertyDetails modal — every slider the user can tune in the platform UI is exposed here as an optional parameter, so you can pass the same scenario assumptions a real investor would. For RENTAL: returns financing, monthly cash flow, cap rate, cash-on-cash, DSCR, 1% rule, GRM, and an A–F investment grade. For FLIP: returns total investment, net profit, ROI, profit margin, annualized ROI. For BRRRR: returns refinance amount, capital recovered, post-refi cash flow, infinite-return flag. Defaults match the platform: rental = 25% down, 7% rate, 30yr term, 5% vacancy, 10% management, 5% maintenance; flip = 6mo hold, 2% buy closing, 6% sale closing, 12% hard money, $500/mo carry; brrrr = 75% LTV refi, 6.5% refi rate. To compare scenarios, call this tool multiple times with different assumption values.

NameTypeReqDescription
addressstringyesProperty address
arvnumber[flip/brrrr] After Repair Value in $ (e.g. 250000). REQUIRED for flip and brrrr strategies.
bathsnumberBathrooms
bedsnumberBedrooms (improves rent estimate)
carryingCostsMonthlynumber[flip] Carrying costs per month in $ (utilities + insurance + taxes during hold). Default 500.
citystringCity (improves tax + insurance estimates)
closingCostsPctnumber[rental] Closing costs as % of purchase price (e.g. 3 = 3%). Default 3%.
downPaymentPctnumber[rental/flip/brrrr] Down payment percent (e.g. 25 = 25%). Default 25.
financingRatePctnumber[flip] Hard money / bridge loan rate as % (e.g. 12). Default 12%.
hoaMonthlynumber[rental] Monthly HOA fees in $ (e.g. 250). Default 0.
holdingPeriodnumber[flip] Holding period in months (e.g. 6). Default 6.
insuranceMonthlynumber[rental/brrrr] Override monthly insurance in $ (e.g. 100).
interestRatenumber[rental] Mortgage rate percent (e.g. 7.25 = 7.25%). Defaults to 7%.
landlordPaysUtilitiesboolean[rental] If true, adds utility expense to the landlord side
loanTermYearsnumber[rental/brrrr] Loan term in years. Default 30.
maintenancePctnumber[rental] Maintenance as % of monthly rent (e.g. 5 = 5%). Default 5%.
monthlyRentnumber[brrrr] Post-rehab monthly rent in $ (e.g. 1800). REQUIRED for brrrr.
monthlyRentOverridenumber[rental] Override the auto-estimated monthly rent in $ (e.g. 1500). Useful when you have a known lease or comp.
pricenumberyesPurchase price in USD
propertyManagementPctnumber[rental/brrrr] Property management as % of rent (e.g. 10 = 10%). Default 10%, unless selfManaged=true.
propertyTaxAnnualnumber[rental/brrrr] Override annual property tax in $ (e.g. 4800).
propertyTypestringe.g. 'house', 'condo', 'multifamily'
purchaseClosingPctnumber[flip] Purchase closing costs as % of purchase price (e.g. 2). Default 2%.
refinanceLTVPctnumber[brrrr] Refinance loan-to-value % (e.g. 75 = 75% of ARV). Default 75%.
refinanceRatePctnumber[brrrr] Refinance interest rate as % (e.g. 6.5). Default 6.5%.
rehabScopestring[rental] Rehab scope — adds to upfront cash needed.
renovationnumber[flip/brrrr] Renovation budget in $ (e.g. 35000). REQUIRED for flip and brrrr strategies.
saleClosingPctnumber[flip] Sale closing costs as % of ARV (e.g. 6). Default 6%.
selfManagedboolean[rental] If true, removes the property management expense line. Overrides propertyManagementPct.
sqftnumberSquare footage
statestringTwo-letter state code
strategystringInvestment strategy. 'rental' = Buy-Hold-Rent (cash flow, cap rate). 'flip' = Fix & Flip (renovation + ARV, profit, ROI). 'brrrr' = Buy-Rehab-Rent-Refinance-Repeat (capital recovery via cash-out refi…
typestringFor rental strategy only — type of breakdown. 'full' returns the complete underwrite. Ignored for flip/brrrr.
utilitiesMonthlynumber[rental] Override monthly landlord-paid utilities in $.
vacancyRatePctnumber[rental/brrrr] Vacancy rate as % (e.g. 8 = 8%). Default 5%.
yearBuiltnumberYear built (drives maintenance + capex)
zipcodestringZIP code

No output schema declared.

No examples provided.

find_local_partners ~112

Find local service partners for a specific market: mortgage lenders, property managers, home inspectors, contractors/GCs, real estate agents. Useful when an investor is building a deal team in a new city. Backed by Google Places.

NameTypeReqDescription
partnerTypestringOptional partner type filter
querystringyesFree-text search string — typically '<partner type> in <city, state>' (e.g. 'mortgage lender in Austin, TX', 'property manager near Charlotte, NC')

No output schema declared.

No examples provided.

get_deal_details ~72

Get full details for a specific investment deal by ID — includes financials, property data, owner info, and engagement stats. Use get_sales_comps or get_rent_estimate with the deal address for comps.

NameTypeReqDescription
dealIdstringyesThe deal ID (UUID) from browse_deals results

No output schema declared.

No examples provided.

get_interest_rate ~20

Get the current 30-year fixed mortgage interest rate

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_market_data ~33

Get current mortgage rates, housing market trends, and economic indicators

NameTypeReqDescription
categorystringFilter by data category

No output schema declared.

No examples provided.

get_off_market_details ~76

Get enriched details for an off-market property including motivation score, deal quality, and owner information. Requires paid subscription. Uses 1 search credit.

NameTypeReqDescription
citystringyesCity
statestringyesTwo-letter state code
streetstringyesStreet address
zipstringyesZIP code

No output schema declared.

No examples provided.

get_property_details ~59

Look up property information by street address. ONLY use this for addresses NOT already returned by search_properties, browse_deals, or get_deal_details — those tools already include property data.

NameTypeReqDescription
addressstringyesFull street address of the property

No output schema declared.

No examples provided.

get_rent_estimate ~60

Estimate rental income with comparable rental listings and sensitivity analysis

NameTypeReqDescription
addressstringyesProperty address
bathsnumberNumber of bathrooms
bedsnumberNumber of bedrooms
sqftnumberSquare footage

No output schema declared.

No examples provided.

get_sales_comps ~79

Find recently sold comparable properties to estimate After Repair Value (ARV)

NameTypeReqDescription
addressstringyesProperty address to find comps for
bathsnumberNumber of bathrooms
bedsnumberNumber of bedrooms
currentPricenumberCurrent listing or purchase price
sqftnumberSquare footage

No output schema declared.

No examples provided.

get_zip_market_data ~165

Get hard-data market statistics for a ZIP code from Investra's indexed market_data table: HUD Fair Market Rents (by bedroom count), Census ACS demographics, median home value, median rent, vacancy rate, owner-occupied %, year-over-year appreciation, days on market, $/sqft, unemployment, job growth, crime index, school rating, and flood-zone exposure. Use this BEFORE running estimate_costs or analyze_market when you want grounded, real-source data instead of LLM guesses. Pass either a single zip OR a city+state to search.

NameTypeReqDescription
citystringCity name (returns all matching ZIPs)
statestringTwo-letter state code
zipstring5-digit ZIP code (most precise)

No output schema declared.

No examples provided.

search_off_market ~608

**RESTRICTED tool — off-market lead generation ONLY.** Returns address-only records from public-record databases (~40M parcels with last-sale, assessed value, owner name, parcel ID) for users running cold-outreach acquisition campaigns. NO listing photos, NO list price, NO listing agent, NO MLS data, NO cash flow analysis. **STRUCTURAL GUARD: this tool has a REQUIRED `confirmOffMarketIntent` boolean parameter that you MUST set true ONLY if the user's literal message contains one of these EXACT keywords:** 'off-market', 'off market', 'distressed', 'foreclosure', 'pre-foreclosure', 'absentee owner', 'absentee', 'tax delinquent', 'motivated seller', 'wholesale leads', 'skip trace candidates', or 'unlisted properties'. **If the user's message does NOT contain one of those exact keywords, set `confirmOffMarketIntent` to false — and the call will be rejected with an error telling you to use search_properties instead.** Generic phrases like 'investment opportunities', 'opportunities in [city]', 'good deals', 'best deals', 'deals in [city]', 'investment properties', 'cash flowing properties', 'rentals', 'find me properties', 'show me properties', 'investments in [city]', 'good buys' MUST NOT trigger this tool — those refer to MLS-listed properties (use search_properties). Costs 1 search credit per query. Requires PAID Investra subscription — free-tier users get 403; route them to search_properties.

NameTypeReqDescription
citystringCity name (e.g. 'Charlotte')
confirmOffMarketIntentbooleanyesREQUIRED. Set to TRUE only if the user's literal message contained one of these exact keywords: 'off-market', 'off market', 'distressed', 'foreclosure', 'pre-foreclosure', 'absentee owner', 'absentee…
limitnumberResults per page (max 200)
maxPricenumberMaximum value (assessed/market/last-sale)
minPricenumberMinimum value (assessed/market/last-sale)
offsetnumberPagination offset (0 = first page). Use returned hasMore flag to know when to stop.
propertyTypestringProperty type filter
statestringTwo-letter state code
zipstringZIP code (most precise filter)

No output schema declared.

No examples provided.

search_properties ~529

**ALWAYS use this tool FIRST for any property/deal/investment/opportunity request.** This is the primary discovery tool — covers active for-sale MLS listings (Zillow + Realtor.com via Scrapeak primary, RapidAPI fallback) and is what users want 95% of the time. **DECISION TREE — read this before picking another tool:** If the user's message contains ANY of these phrases or anything semantically similar, USE THIS TOOL: 'show me properties', 'find houses', 'find properties', 'investment properties', 'investment opportunities', 'opportunities in [city]', 'good deals', 'best deals', 'deals in [city]', 'cash flowing properties', 'cash flow properties', 'rentals', 'rental properties', 'houses for sale', 'properties for sale', 'good buys', 'best buys', 'find me a property', 'find me investments', 'looking to invest in [city]', 'show me what is available', 'what is on the market in [city]', or simply names a city/zip code with no other qualifier. Each result is pre-enriched with estimated rent, monthly cash flow, cap rate, PITI, utilities, photos, and lat/lng — so you can immediately identify cash-flowing deals without any follow-up tool calls. Do NOT call get_property_details, get_rent_estimate, or estimate_costs on these results unless the user explicitly drills into ONE specific property. For pagination, increment `page` (page 2 = next 40). **CRITICAL: Generic words like 'deals', 'opportunities', 'investments' do NOT mean off-market.** Only route to search_off_market if the user explicitly types one of these LITERAL keywords: 'off-market', 'off market', 'distressed', 'foreclosure', 'pre-foreclosure', 'absentee owner', 'tax delinquent', 'motivated seller', 'wholesale leads', 'skip trace', or 'unlisted properties'. If those exact words are absent, USE search_properties.

NameTypeReqDescription
cashFlowOnlybooleanIf true, only return properties with positive estimated monthly cash flow
limitnumberResults per page (max 40)
locationstringyesCity, 'City, ST', ZIP code, or full address
maxPricenumberMaximum listing price in USD
pagenumberPage number for pagination (1 = first page). Use this to load more results.
propertyTypestringProperty type filter

No output schema declared.

No examples provided.

skip_trace ~71

Get owner contact information (phone, email) for an off-market property. Requires Pro Plus subscription. Uses 1 lead credit.

NameTypeReqDescription
citystringyesCity
statestringyesTwo-letter state code
streetstringyesStreet address
zipstringyesZIP code

No output schema declared.

No examples provided.