Live CRE analysis: Federal Reserve rates, Census 1/3/5-mile demographics, DCF models, IC memos.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Extract all key terms from a commercial lease document. Returns term, base rent schedule, escalations, TI allowance, CAM structure, renewal options, termination rights, exclusivity, co-tenancy, and red flags.
Raw text copied from a commercial lease PDF
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Extract all key terms from a commercial lease document. Returns term, base rent schedule, escalations, TI allowance, CAM structure, renewal options, termination rights, exclusivity, co-tenancy, and red flags.
| Argument | Type | Description |
|---|---|---|
| text* | string | Raw text copied from a commercial lease PDF |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Raw text copied from a commercial lease PDF"
}
},
"additionalProperties": false
}Extract structured tenant and lease data from a rent roll document. Paste the text content of your rent roll PDF here (copy-paste from PDF reader). Returns tenant list, suite/SF, lease dates, monthly rent, escalations, and options.
| Argument | Type | Description |
|---|---|---|
| text* | string | Raw text copied from a rent roll PDF |
| property_name | any | Optional property name for context |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Raw text copied from a rent roll PDF"
},
"property_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional property name for context"
}
},
"additionalProperties": false
}Build a levered DCF model using live Federal Reserve rates. Automatically fetches current SOFR to derive the loan rate if not provided. Returns: annual cash flows, IRR, equity multiple, cash-on-cash, DSCR, and exit analysis.
| Argument | Type | Description |
|---|---|---|
| loan_rate | any | Loan interest rate % — if None, fetches live SOFR + 175bps |
| noi_year1* | number | Year 1 Net Operating Income ($) |
| equity_pct | number | Equity as % of purchase price (default 35%) |
| hold_years | integer | Hold period in years (default 10) |
| exit_cap_rate | any | Exit cap rate % — if None, uses entry cap + 25bps (conservative) |
| purchase_price* | number | Acquisition price ($) |
| noi_growth_rate | number | Annual NOI growth rate % (default 3.0) |
| amortization_years | integer | Loan amortization period (default 30 years) |
{
"type": "object",
"required": [
"noi_year1",
"purchase_price"
],
"properties": {
"loan_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Loan interest rate % — if None, fetches live SOFR + 175bps"
},
"noi_year1": {
"type": "number",
"description": "Year 1 Net Operating Income ($)"
},
"equity_pct": {
"type": "number",
"default": 35,
"description": "Equity as % of purchase price (default 35%)"
},
"hold_years": {
"type": "integer",
"default": 10,
"description": "Hold period in years (default 10)"
},
"exit_cap_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Exit cap rate % — if None, uses entry cap + 25bps (conservative)"
},
"purchase_price": {
"type": "number",
"description": "Acquisition price ($)"
},
"noi_growth_rate": {
"type": "number",
"default": 3,
"description": "Annual NOI growth rate % (default 3.0)"
},
"amortization_years": {
"type": "integer",
"default": 30,
"description": "Loan amortization period (default 30 years)"
}
},
"additionalProperties": false
}Generate a downloadable Excel (.xlsx) underwriting model with LIVE formulas — editable assumptions, PMT/FV amortization, IRR, equity multiple, a sensitivity grid, live Fed rates, and (if an address is given) Census trade-area demographics. Returns a download link valid for 60 minutes.
| Argument | Type | Description |
|---|---|---|
| address | any | Optional property address — adds a demographics sheet |
| loan_rate | any | Loan rate % — default live SOFR + 175bps |
| noi_year1* | number | Year 1 Net Operating Income ($) |
| equity_pct | number | Equity as % of price (default 35) |
| hold_years | integer | Hold period (default 10) |
| exit_cap_rate | any | Exit cap % — default entry cap + 25bps |
| property_name | any | Optional label for the model header |
| purchase_price* | number | Acquisition price ($) |
| noi_growth_rate | number | Annual NOI growth % (default 3.0) |
Analyze a parsed rent roll for investment risks. Feed the output from analyze_rent_roll directly into this tool. Returns: rollover risk, tenant concentration, credit risk, and actionable recommendations.
| Argument | Type | Description |
|---|---|---|
| rent_roll_json* | string | JSON string from the analyze_rent_roll tool output |
{
"type": "object",
"required": [
"rent_roll_json"
],
"properties": {
"rent_roll_json": {
"type": "string",
"description": "JSON string from the analyze_rent_roll tool output"
}
},
"additionalProperties": false
}Generate a formatted CRE acquisition memo / Investment Committee memo. Automatically pulls live rates from FRED and demographics from Census Bureau to provide real market context — not guesses.
| Argument | Type | Description |
|---|---|---|
| noi* | number | Net Operating Income ($) |
| asking_price* | number | Asking price ($) |
| property_type* | string | Multifamily / Office / Retail / Industrial / Mixed-Use |
| property_address* | string | Full property address |
| rent_roll_summary | any | Optional: paste output from analyze_rent_roll or flag_lease_risks |
| additional_context | any | Any additional deal notes, seller info, market color |
{
"type": "object",
"required": [
"property_address",
"property_type",
"noi",
"asking_price"
],
"properties": {
"noi": {
"type": "number",
"description": "Net Operating Income ($)"
},
"asking_price": {
"type": "number",
"description": "Asking price ($)"
},
"property_type": {
"type": "string",
"description": "Multifamily / Office / Retail / Industrial / Mixed-Use"
},
"property_address": {
"type": "string",
"description": "Full property address"
},
"rent_roll_summary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional: paste output from analyze_rent_roll or flag_lease_risks"
},
"additional_context": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Any additional deal notes, seller info, market color"
}
},
"additionalProperties": false
}Get Commercial Real Estate price index and broader market data from the Federal Reserve. Returns CRE price trends, office/retail/industrial vacancy proxies, and credit spreads. Provides macro context for deal underwriting and cap rate analysis.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Get live interest rates from the Federal Reserve (FRED). Returns SOFR, 10-year Treasury, 5-year Treasury, Fed Funds Rate, and 30-day SOFR average. Also calculates implied cap rate ranges based on current treasury spreads. Use this BEFORE any DCF model or loan underwriting. These are real-time numbers Claude cannot access on its own.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Get current CPI and rent inflation data from the Federal Reserve. Returns overall inflation, shelter inflation, and rent-specific CPI with YoY changes. Use this to calibrate rent growth assumptions in your DCF model — don't guess.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Get Census Bureau demographics for any US property address. Returns median income, population, employment rate, housing vacancy, median rents, and education levels for the census tract. This is address-specific data from the actual Census tract — not estimates. Claude cannot access this without the MCP. For 1/3/5-mile trade-area rings, use get_radius_demographics instead.
| Argument | Type | Description |
|---|---|---|
| address* | string | Full US property address (e.g. "1234 Main St, Charlotte, NC 28202") |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "Full US property address (e.g. \"1234 Main St, Charlotte, NC 28202\")"
}
},
"additionalProperties": false
}Get aggregated Census demographics for radius rings around a US property address — the standard 1/3/5-mile trade-area format used in CRE site analysis. Aggregates every census tract whose centroid falls within each radius: population, household-weighted median income, employment rate, college attainment, housing vacancy, renter share, and median rent. Use this for trade-area / site analysis. Use get_market_demographics for the single census tract immediately around the address.
| Argument | Type | Description |
|---|---|---|
| address* | string | Full US property address (e.g. "1234 Main St, Charlotte, NC 28202") |
| radii_miles | string | Comma-separated radii in miles (default "1,3,5", each capped at 15) |
{
"type": "object",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"description": "Full US property address (e.g. \"1234 Main St, Charlotte, NC 28202\")"
},
"radii_miles": {
"type": "string",
"default": "1,3,5",
"description": "Comma-separated radii in miles (default \"1,3,5\", each capped at 15)"
}
},
"additionalProperties": false
}Screen a US county as a LAND-INVESTING market (raw-land flip / Podolsky style). Grades the county on the signals that matter for buying cheap rural land and reselling on terms: population growth, demographics, owner share, and affordability. IMPORTANT: This screens on FREE Census data only (growth + demographics + a home-value affordability proxy). It does NOT include actual land sale prices or comps — those require county records or a paid service, and must be verified per-parcel before buying. Use this to rank/shortlist markets, not to buy.
| Argument | Type | Description |
|---|---|---|
| state* | string | 2-letter state abbreviation (e.g. "AZ") or 2-digit state FIPS |
| county* | string | County name (e.g. "Mohave" or "Mohave County") |
{
"type": "object",
"required": [
"state",
"county"
],
"properties": {
"state": {
"type": "string",
"description": "2-letter state abbreviation (e.g. \"AZ\") or 2-digit state FIPS"
},
"county": {
"type": "string",
"description": "County name (e.g. \"Mohave\" or \"Mohave County\")"
}
},
"additionalProperties": false
}Pre-screen a land parcel's location for the AUTOMATABLE due-diligence red flags: FEMA flood zone and federal wetlands. Pulls live from FEMA's National Flood Hazard Layer and the US Fish & Wildlife National Wetlands Inventory. Use this to kill obviously-bad parcels (flood zone, wetlands) at scale BEFORE spending time on manual due diligence. IMPORTANT: Checks flood + wetlands only. It does NOT check legal ACCESS (landlocked — the #1 land deal-killer), title/liens, or zoning — those stay MANUAL, per-parcel checks via county records. A clean screen here is necessary, NOT sufficient.
| Argument | Type | Description |
|---|---|---|
| lat* | number | Parcel latitude (decimal degrees) |
| lng* | number | Parcel longitude (decimal degrees) |
{
"type": "object",
"required": [
"lat",
"lng"
],
"properties": {
"lat": {
"type": "number",
"description": "Parcel latitude (decimal degrees)"
},
"lng": {
"type": "number",
"description": "Parcel longitude (decimal degrees)"
}
},
"additionalProperties": false
}| amortization_years | integer | Amortization (default 30) |
{
"type": "object",
"required": [
"noi_year1",
"purchase_price"
],
"properties": {
"address": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional property address — adds a demographics sheet"
},
"loan_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Loan rate % — default live SOFR + 175bps"
},
"noi_year1": {
"type": "number",
"description": "Year 1 Net Operating Income ($)"
},
"equity_pct": {
"type": "number",
"default": 35,
"description": "Equity as % of price (default 35)"
},
"hold_years": {
"type": "integer",
"default": 10,
"description": "Hold period (default 10)"
},
"exit_cap_rate": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"default": null,
"description": "Exit cap % — default entry cap + 25bps"
},
"property_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional label for the model header"
},
"purchase_price": {
"type": "number",
"description": "Acquisition price ($)"
},
"noi_growth_rate": {
"type": "number",
"default": 3,
"description": "Annual NOI growth % (default 3.0)"
},
"amortization_years": {
"type": "integer",
"default": 30,
"description": "Amortization (default 30)"
}
},
"additionalProperties": false
}