# io.github.IsaiahDupree/realtystack-mcp (remote · realtystack-mcp.vercel.app)

U.S. real-estate data: property records, AVM value + rent estimates, sale/rental listings.

- Trust score: 71/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `realtystack-mcp.vercel.app`: 71/100 (this document), [markdown](https://verifymcp.io/servers/isaiahdupree-realtystack-mcp/realtystack-mcp.md), [page](https://verifymcp.io/servers/isaiahdupree-realtystack-mcp/realtystack-mcp)

## Channel facts

- Endpoint: `https://realtystack-mcp.vercel.app/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.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**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - 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**: 63/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1986 tokens (~331/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 7/100
  - Stability observed for 2 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.
- **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 isaiahdupree-realtystack-mcp https://realtystack-mcp.vercel.app/mcp
```

### Codex

```toml
[mcp_servers.isaiahdupree-realtystack-mcp]
url = "https://realtystack-mcp.vercel.app/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "isaiahdupree-realtystack-mcp": {
      "type": "remote",
      "url": "https://realtystack-mcp.vercel.app/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add isaiahdupree-realtystack-mcp --url https://realtystack-mcp.vercel.app/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  isaiahdupree-realtystack-mcp:
    url: "https://realtystack-mcp.vercel.app/mcp"
```

### Other

```json
{
  "mcpServers": {
    "isaiahdupree-realtystack-mcp": {
      "type": "http",
      "url": "https://realtystack-mcp.vercel.app/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-03 (score 71, +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-08-02 (score 70, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-08-01 (score 70)

First indexed and scored.

## MCP tools (6)

### `search_properties` (~435 tokens)

Search property records

Search normalized U.S. property records (owner, structural attributes, tax assessments, tax + sale history) by location. Pin a location one of three ways: a full address, a city+state(+zipCode), or a latitude+longitude point with a radius (miles). All other parameters narrow the result set. Records are cached 24h upstream, so meta.cached may be true on repeat queries.

Input parameters:

- `address` (string): Full address, format "Street, City, State, Zip". Alternative to city/state/zipCode or lat+long. e.g. "5500 Grand Lake Dr, San Antonio, TX, 78244".
- `bathrooms` (string): Bathroom count; supports fractions, ranges, and multiple values.
- `bedrooms` (string): Bedroom count; supports ranges and multiple values.
- `city` (string): City name; combine with state (and optionally zipCode) for an area search.
- `includeTotalCount` (boolean): When true, RentCast also returns the total matching count. Default false.
- `latitude` (number): Latitude of the search center; requires longitude and radius.
- `limit` (integer): Max records to return per page. Default 50.
- `longitude` (number): Longitude of the search center; requires latitude and radius.
- `lotSize` (string): Lot size in square feet; supports ranges and multiple values.
- `offset` (integer): Number of records to skip, for pagination. Default 0.
- `propertyType` (string): Filter by property type.
- `radius` (number): Search radius in miles (max 100); used with latitude/longitude.
- `saleDateRange` (string): Days since last sale (min 1) — restricts to properties last sold within that window.
- `squareFootage` (string): Living-area square footage; supports ranges and multiple values.
- `state` (string): 2-character state abbreviation, e.g. TX.
- `yearBuilt` (string): Year built; supports ranges and multiple values.
- `zipCode` (string): 5-digit ZIP code.

### `get_property` (~114 tokens)

Get one property record by id

Full detail for a single property record, keyed by its RentCast id (the same id returned on every search_properties, avm_value, avm_rent, and listings record). Returns 404 if no property matches the id. Cached 24h upstream.

Input parameters:

- `id` (string, required): RentCast property id (from a prior search_properties, avm_value/avm_rent, or listings response), e.g. "5500-Grand-Lake-Dr,-San-Antonio,-TX-78244".

### `avm_value` (~329 tokens)

AVM sale-value estimate with comparables

Run RentCast's automated valuation model for a subject property and return a point price estimate, a priceRangeLow/priceRangeHigh band, the resolved subjectProperty, and comparables[] — recent comparable sales each scored with a distance (miles) and correlation (0-1 similarity). Pin the subject with either address or latitude+longitude; when subject attributes are unknown, supply propertyType/bedrooms/bathrooms/squareFootage (or leave lookupSubjectAttributes true to have RentCast fill them). Cached 6h upstream.

Input parameters:

- `address` (string): Subject property address. Required unless latitude+longitude are given. e.g. "5500 Grand Lake Dr, San Antonio, TX, 78244".
- `bathrooms` (number): Subject bathroom count; supports fractions.
- `bedrooms` (number): Subject bedroom count; 0 indicates a studio.
- `compCount` (integer): Number of comparables to use in the estimate. Default 15.
- `daysOld` (integer): Max days since comparable listings were last seen (min 1).
- `latitude` (number): Subject latitude; alternative to address (requires longitude).
- `longitude` (number): Subject longitude; alternative to address (requires latitude).
- `lookupSubjectAttributes` (boolean): When true, RentCast looks up any missing subject attributes from its records. Default true.
- `maxRadius` (number): Max distance between comparables and subject, in miles.
- `propertyType` (string): Subject property type; improves comparable selection.
- `squareFootage` (number): Subject living-area square footage.

### `avm_rent` (~301 tokens)

AVM long-term-rent estimate with comparables

Run RentCast's automated model for long-term (12-month lease) rent and return a point rent estimate, a rentRangeLow/rentRangeHigh band, the resolved subjectProperty, and comparables[] — recent comparable rentals each scored with distance and correlation. Same subject-pinning rules as avm_value (address or latitude+longitude, plus optional subject attributes). Cached 6h upstream.

Input parameters:

- `address` (string): Subject property address. Required unless latitude+longitude are given. e.g. "5500 Grand Lake Dr, San Antonio, TX, 78244".
- `bathrooms` (number): Subject bathroom count; supports fractions.
- `bedrooms` (number): Subject bedroom count; 0 indicates a studio.
- `compCount` (integer): Number of comparable rentals to use in the estimate. Default 15.
- `daysOld` (integer): Max days since comparable rentals were last seen (min 1).
- `latitude` (number): Subject latitude; alternative to address (requires longitude).
- `longitude` (number): Subject longitude; alternative to address (requires latitude).
- `lookupSubjectAttributes` (boolean): When true, RentCast looks up any missing subject attributes from its records. Default true.
- `maxRadius` (number): Max distance between comparables and subject, in miles.
- `propertyType` (string): Subject property type; improves comparable selection.
- `squareFootage` (number): Subject living-area square footage.

### `search_sale_listings` (~416 tokens)

Search active (or inactive) sale listings

Return a page of for-sale listings (list price, status, days on market, MLS name/number, listing agent + office contact, and price/status history) for a location. Same location-pinning rules as search_properties (address, city+state(+zipCode), or latitude+longitude+radius). Each record is tagged listingKind:"sale". Listings move faster than records, so these are cached only 30 minutes upstream.

Input parameters:

- `address` (string): Full address to match a specific listing.
- `bathrooms` (string): Bathroom count; supports fractions, ranges, and multiple values.
- `bedrooms` (string): Bedroom count; supports ranges and multiple values.
- `city` (string): City name; combine with state for an area search.
- `daysOld` (string): Max days since the listing was last seen (min 1).
- `includeTotalCount` (boolean): When true, RentCast also returns the total matching count. Default false.
- `latitude` (number): Latitude of the search center; requires longitude and radius.
- `limit` (integer): Max listings to return per page. Default 50.
- `longitude` (number): Longitude of the search center; requires latitude and radius.
- `lotSize` (string): Lot size in square feet; supports ranges and multiple values.
- `offset` (integer): Number of listings to skip, for pagination. Default 0.
- `price` (string): Listed price; supports ranges and multiple values.
- `propertyType` (string): Filter by property type.
- `radius` (number): Search radius in miles (max 100); used with latitude/longitude.
- `squareFootage` (string): Living-area square footage; supports ranges and multiple values.
- `state` (string): 2-character state abbreviation.
- `status` (string): Listing status to return; defaults to Active.
- `yearBuilt` (string): Year built; supports ranges and multiple values.
- `zipCode` (string): 5-digit ZIP code.

### `search_rental_listings` (~391 tokens)

Search active (or inactive) long-term rental listings

Return a page of long-term (12-month lease) rental listings — same record shape as search_sale_listings (monthly price is the asking rent), but each record is tagged listingKind:"rental-long-term". Same location-pinning rules and 30-minute upstream cache as the sale-listings endpoint.

Input parameters:

- `address` (string): Full address to match a specific listing.
- `bathrooms` (string): Bathroom count; supports fractions, ranges, and multiple values.
- `bedrooms` (string): Bedroom count; supports ranges and multiple values.
- `city` (string): City name; combine with state for an area search.
- `daysOld` (string): Max days since the listing was last seen (min 1).
- `includeTotalCount` (boolean): When true, RentCast also returns the total matching count. Default false.
- `latitude` (number): Latitude of the search center; requires longitude and radius.
- `limit` (integer): Max listings to return per page. Default 50.
- `longitude` (number): Longitude of the search center; requires latitude and radius.
- `lotSize` (string): Lot size in square feet; supports ranges and multiple values.
- `offset` (integer): Number of listings to skip, for pagination. Default 0.
- `price` (string): Listed rent; supports ranges and multiple values.
- `propertyType` (string): Filter by property type.
- `radius` (number): Search radius in miles (max 100); used with latitude/longitude.
- `squareFootage` (string): Living-area square footage; supports ranges and multiple values.
- `state` (string): 2-character state abbreviation.
- `status` (string): Listing status to return; defaults to Active.
- `yearBuilt` (string): Year built; supports ranges and multiple values.
- `zipCode` (string): 5-digit ZIP code.

## Diagnostics

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

## Score history

- 2026-08-03: 71
- 2026-08-02: 70
- 2026-08-01: 70

## Links

- Remote endpoint: https://realtystack-mcp.vercel.app/mcp
- Repository: https://github.com/IsaiahDupree/realtystack-mcp
- Website: https://realtystack-mcp.vercel.app/
- Changelog RSS feed: https://verifymcp.io/servers/isaiahdupree-realtystack-mcp/realtystack-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/isaiahdupree-realtystack-mcp/realtystack-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/isaiahdupree-realtystack-mcp/realtystack-mcp
