io.github.perkinsandre/investra-ai-mcp
NPM · INVESTRA-AI-MCP · SCANNED SEP 20
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 → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 96 dependencies flagged as unhealthy. 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 160 days ago).Pass
- Security-disclosure policy not yet verified: we couldn't inspect the source repository.Unverified
Schema Quality & AI Usability63
- AI-judged instruction clarity (excellent).Pass
- 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 Management90
- Stability observed for 27 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
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.perkinsandre/investra-ai-mcp server?
io.github.perkinsandre/investra-ai-mcp runs locally as an npm package, launched with npx -y investra-ai-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · investra-ai-mcp
claude mcp add perkinsandre-investra-ai-mcp -- npx -y investra-ai-mcp
{
"mcpServers": {
"perkinsandre-investra-ai-mcp": {
"command": "npx",
"args": [
"-y",
"investra-ai-mcp"
]
}
}
} {
"servers": {
"perkinsandre-investra-ai-mcp": {
"command": "npx",
"args": [
"-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": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"investra-ai-mcp"
]
}
}
} assistant mcp add perkinsandre-investra-ai-mcp -t stdio -c npx -a -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.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 −4
- Stability: pass → 0.77 functional
- 15 Sept 26 +1
- Stability: 0.97 → pass security
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 9 Sept 26 −3
- Stability: pass → 0.80 functional
- 8 Sept 26 +1
- Stability: 0.97 → pass security
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 20 Sept 2026 · Analysed npm/investra-ai-mcp@2.3.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 96 packages
| Packages resolved | 96 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
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. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
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.
What is the io.github.perkinsandre/investra-ai-mcp server?
io.github.perkinsandre/investra-ai-mcp is listed in the public MCP registry as io.github.perkinsandre/investra-ai-mcp. Real estate investment intelligence: search, comps, cash flow, off-market leads, skip trace. This page covers its npm package (investra-ai-mcp).
Is the io.github.perkinsandre/investra-ai-mcp server safe to use?
io.github.perkinsandre/investra-ai-mcp scores 75 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.perkinsandre/investra-ai-mcp server expose?
io.github.perkinsandre/investra-ai-mcp exposes 15 tools: search_properties, get_property_details, get_market_data, analyze_market, get_sales_comps, and 10 more. Their descriptions and schemas cost roughly 3,302 tokens of context every time the server is loaded.
Is the io.github.perkinsandre/investra-ai-mcp server still maintained?
io.github.perkinsandre/investra-ai-mcp is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.perkinsandre/investra-ai-mcp server under?
io.github.perkinsandre/investra-ai-mcp declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.