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
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
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
claude mcp add perkinsandre-investra-ai-mcp -- npx -y investra-ai-mcp
codex mcp add perkinsandre-investra-ai-mcp -- npx -y investra-ai-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"perkinsandre-investra-ai-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"investra-ai-mcp"
],
"enabled": true
}
}
} openclaw mcp add perkinsandre-investra-ai-mcp --command npx --arg -y --arg investra-ai-mcp
mcp_servers:
perkinsandre-investra-ai-mcp:
command: "npx"
args: ["-y", "investra-ai-mcp"] {
"mcpServers": {
"perkinsandre-investra-ai-mcp": {
"command": "npx",
"args": [
"-y",
"investra-ai-mcp"
]
}
}
} 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.
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.
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.
analyze_market ~54
Get comprehensive market analysis for a specific city including pricing trends, rental data, and economic indicators
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City name |
| state | string | yes | Two-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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | — | Filter by city |
| dealType | string | — | Filter by investment strategy |
| limit | number | — | Number of results (max 50) |
| minRoi | number | — | Minimum projected ROI percentage |
| state | string | — | Two-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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Property address |
| arv | number | — | [flip/brrrr] After Repair Value in $ (e.g. 250000). REQUIRED for flip and brrrr strategies. |
| baths | number | — | Bathrooms |
| beds | number | — | Bedrooms (improves rent estimate) |
| carryingCostsMonthly | number | — | [flip] Carrying costs per month in $ (utilities + insurance + taxes during hold). Default 500. |
| city | string | — | City (improves tax + insurance estimates) |
| closingCostsPct | number | — | [rental] Closing costs as % of purchase price (e.g. 3 = 3%). Default 3%. |
| downPaymentPct | number | — | [rental/flip/brrrr] Down payment percent (e.g. 25 = 25%). Default 25. |
| financingRatePct | number | — | [flip] Hard money / bridge loan rate as % (e.g. 12). Default 12%. |
| hoaMonthly | number | — | [rental] Monthly HOA fees in $ (e.g. 250). Default 0. |
| holdingPeriod | number | — | [flip] Holding period in months (e.g. 6). Default 6. |
| insuranceMonthly | number | — | [rental/brrrr] Override monthly insurance in $ (e.g. 100). |
| interestRate | number | — | [rental] Mortgage rate percent (e.g. 7.25 = 7.25%). Defaults to 7%. |
| landlordPaysUtilities | boolean | — | [rental] If true, adds utility expense to the landlord side |
| loanTermYears | number | — | [rental/brrrr] Loan term in years. Default 30. |
| maintenancePct | number | — | [rental] Maintenance as % of monthly rent (e.g. 5 = 5%). Default 5%. |
| monthlyRent | number | — | [brrrr] Post-rehab monthly rent in $ (e.g. 1800). REQUIRED for brrrr. |
| monthlyRentOverride | number | — | [rental] Override the auto-estimated monthly rent in $ (e.g. 1500). Useful when you have a known lease or comp. |
| price | number | yes | Purchase price in USD |
| propertyManagementPct | number | — | [rental/brrrr] Property management as % of rent (e.g. 10 = 10%). Default 10%, unless selfManaged=true. |
| propertyTaxAnnual | number | — | [rental/brrrr] Override annual property tax in $ (e.g. 4800). |
| propertyType | string | — | e.g. 'house', 'condo', 'multifamily' |
| purchaseClosingPct | number | — | [flip] Purchase closing costs as % of purchase price (e.g. 2). Default 2%. |
| refinanceLTVPct | number | — | [brrrr] Refinance loan-to-value % (e.g. 75 = 75% of ARV). Default 75%. |
| refinanceRatePct | number | — | [brrrr] Refinance interest rate as % (e.g. 6.5). Default 6.5%. |
| rehabScope | string | — | [rental] Rehab scope — adds to upfront cash needed. |
| renovation | number | — | [flip/brrrr] Renovation budget in $ (e.g. 35000). REQUIRED for flip and brrrr strategies. |
| saleClosingPct | number | — | [flip] Sale closing costs as % of ARV (e.g. 6). Default 6%. |
| selfManaged | boolean | — | [rental] If true, removes the property management expense line. Overrides propertyManagementPct. |
| sqft | number | — | Square footage |
| state | string | — | Two-letter state code |
| strategy | string | — | Investment 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… |
| type | string | — | For rental strategy only — type of breakdown. 'full' returns the complete underwrite. Ignored for flip/brrrr. |
| utilitiesMonthly | number | — | [rental] Override monthly landlord-paid utilities in $. |
| vacancyRatePct | number | — | [rental/brrrr] Vacancy rate as % (e.g. 8 = 8%). Default 5%. |
| yearBuilt | number | — | Year built (drives maintenance + capex) |
| zipcode | string | — | ZIP 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.
| Name | Type | Req | Description |
|---|---|---|---|
| partnerType | string | — | Optional partner type filter |
| query | string | yes | Free-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.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | The 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
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | — | Filter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City |
| state | string | yes | Two-letter state code |
| street | string | yes | Street address |
| zip | string | yes | ZIP 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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Full 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
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Property address |
| baths | number | — | Number of bathrooms |
| beds | number | — | Number of bedrooms |
| sqft | number | — | Square footage |
No output schema declared.
No examples provided.
get_sales_comps ~79
Find recently sold comparable properties to estimate After Repair Value (ARV)
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Property address to find comps for |
| baths | number | — | Number of bathrooms |
| beds | number | — | Number of bedrooms |
| currentPrice | number | — | Current listing or purchase price |
| sqft | number | — | Square 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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | — | City name (returns all matching ZIPs) |
| state | string | — | Two-letter state code |
| zip | string | — | 5-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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | — | City name (e.g. 'Charlotte') |
| confirmOffMarketIntent | boolean | yes | REQUIRED. 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… |
| limit | number | — | Results per page (max 200) |
| maxPrice | number | — | Maximum value (assessed/market/last-sale) |
| minPrice | number | — | Minimum value (assessed/market/last-sale) |
| offset | number | — | Pagination offset (0 = first page). Use returned hasMore flag to know when to stop. |
| propertyType | string | — | Property type filter |
| state | string | — | Two-letter state code |
| zip | string | — | ZIP 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cashFlowOnly | boolean | — | If true, only return properties with positive estimated monthly cash flow |
| limit | number | — | Results per page (max 40) |
| location | string | yes | City, 'City, ST', ZIP code, or full address |
| maxPrice | number | — | Maximum listing price in USD |
| page | number | — | Page number for pagination (1 = first page). Use this to load more results. |
| propertyType | string | — | Property 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.
| Name | Type | Req | Description |
|---|---|---|---|
| city | string | yes | City |
| state | string | yes | Two-letter state code |
| street | string | yes | Street address |
| zip | string | yes | ZIP code |
No output schema declared.
No examples provided.