# CRE Intelligence (remote · cre-intelligence-mcp.onrender.com)

Live CRE analysis: Federal Reserve rates, Census 1/3/5-mile demographics, DCF models, IC memos.

- Trust score: 66/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `cre-intelligence-mcp.onrender.com`: 66/100 (this document), [markdown](https://verifymcp.io/servers/zwondra-cre-intelligence-mcp/cre-intelligence-mcp.md), [page](https://verifymcp.io/servers/zwondra-cre-intelligence-mcp/cre-intelligence-mcp)

## Channel facts

- Endpoint: `https://cre-intelligence-mcp.onrender.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 13 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 72/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1724 tokens (~132/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http zwondra-cre-intelligence-mcp https://cre-intelligence-mcp.onrender.com/mcp
```

### Codex

```toml
[mcp_servers.zwondra-cre-intelligence-mcp]
url = "https://cre-intelligence-mcp.onrender.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zwondra-cre-intelligence-mcp": {
      "type": "remote",
      "url": "https://cre-intelligence-mcp.onrender.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add zwondra-cre-intelligence-mcp --url https://cre-intelligence-mcp.onrender.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  zwondra-cre-intelligence-mcp:
    url: "https://cre-intelligence-mcp.onrender.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "zwondra-cre-intelligence-mcp": {
      "type": "http",
      "url": "https://cre-intelligence-mcp.onrender.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 66, +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.

### 2026-07-31 (score 65, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 65, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-28 (score 64, +1)

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

### 2026-07-27 (score 63, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 62)

First indexed and scored.

## MCP tools (13)

### `get_current_rates` (~83 tokens)

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.

### `get_market_demographics` (~111 tokens)

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.

Input parameters:

- `address` (string, required): Full US property address (e.g. "1234 Main St, Charlotte, NC 28202")

### `get_radius_demographics` (~160 tokens)

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.

Input parameters:

- `address` (string, required): 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)

### `screen_land_market` (~177 tokens)

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.

Input parameters:

- `county` (string, required): County name (e.g. "Mohave" or "Mohave County")
- `state` (string, required): 2-letter state abbreviation (e.g. "AZ") or 2-digit state FIPS

### `screen_parcel_dd` (~167 tokens)

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.

Input parameters:

- `lat` (number, required): Parcel latitude (decimal degrees)
- `lng` (number, required): Parcel longitude (decimal degrees)

### `get_inflation_data` (~56 tokens)

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.

### `get_cre_market_data` (~54 tokens)

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.

### `analyze_rent_roll` (~86 tokens)

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.

Input parameters:

- `property_name`: Optional property name for context
- `text` (string, required): Raw text copied from a rent roll PDF

### `abstract_lease` (~68 tokens)

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.

Input parameters:

- `text` (string, required): Raw text copied from a commercial lease PDF

### `flag_lease_risks` (~68 tokens)

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.

Input parameters:

- `rent_roll_json` (string, required): JSON string from the analyze_rent_roll tool output

### `build_dcf_model` (~211 tokens)

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.

Input parameters:

- `amortization_years` (integer): Loan amortization period (default 30 years)
- `equity_pct` (number): Equity as % of purchase price (default 35%)
- `exit_cap_rate`: Exit cap rate % — if None, uses entry cap + 25bps (conservative)
- `hold_years` (integer): Hold period in years (default 10)
- `loan_rate`: Loan interest rate % — if None, fetches live SOFR + 175bps
- `noi_growth_rate` (number): Annual NOI growth rate % (default 3.0)
- `noi_year1` (number, required): Year 1 Net Operating Income ($)
- `purchase_price` (number, required): Acquisition price ($)

### `generate_deal_memo` (~136 tokens)

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.

Input parameters:

- `additional_context`: Any additional deal notes, seller info, market color
- `asking_price` (number, required): Asking price ($)
- `noi` (number, required): Net Operating Income ($)
- `property_address` (string, required): Full property address
- `property_type` (string, required): Multifamily / Office / Retail / Industrial / Mixed-Use
- `rent_roll_summary`: Optional: paste output from analyze_rent_roll or flag_lease_risks

Output parameters:

- `result` (string)

### `export_dcf_excel` (~227 tokens)

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.

Input parameters:

- `address`: Optional property address — adds a demographics sheet
- `amortization_years` (integer): Amortization (default 30)
- `equity_pct` (number): Equity as % of price (default 35)
- `exit_cap_rate`: Exit cap % — default entry cap + 25bps
- `hold_years` (integer): Hold period (default 10)
- `loan_rate`: Loan rate % — default live SOFR + 175bps
- `noi_growth_rate` (number): Annual NOI growth % (default 3.0)
- `noi_year1` (number, required): Year 1 Net Operating Income ($)
- `property_name`: Optional label for the model header
- `purchase_price` (number, required): Acquisition price ($)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/zwondra-cre-intelligence-mcp/cre-intelligence-mcp#diagnostics

## Score history

- 2026-08-03: 66
- 2026-08-02: 66
- 2026-08-01: 65
- 2026-07-31: 65
- 2026-07-30: 65
- 2026-07-29: 64
- 2026-07-28: 64
- 2026-07-27: 63
- 2026-07-26: 62

## Links

- Remote endpoint: https://cre-intelligence-mcp.onrender.com/mcp
- Repository: https://github.com/Zwondra/cre-intelligence-mcp
- Website: https://cre-intelligence-mcp.vercel.app/
- Changelog RSS feed: https://verifymcp.io/servers/zwondra-cre-intelligence-mcp/cre-intelligence-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/zwondra-cre-intelligence-mcp/cre-intelligence-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/zwondra-cre-intelligence-mcp/cre-intelligence-mcp
