Skip to main content
Glama
chrischall
by chrischall

Get Redfin property details

redfin_get_property
Read-onlyIdempotent

Fetch a property's full Redfin record: address, beds/baths, sqft, lot size, year built, price, status, days on market, and photo. Accepts URL, property ID, or listing ID. Optionally include description, price history, or tax history.

Instructions

Fetch a property's full Redfin record. Provide one of: (a) url — full Redfin homedetails URL or path, resolved via the initialInfo endpoint; (b) property_id alone — resolved internally by following Redfin's /home/ redirect to the canonical listing, then initialInfo; or (c) property_id + listing_id — fastest, skips resolution and goes straight to aboveTheFold. Returns address, beds/baths, sqft, lot_size (sq ft), year built, price, status, days on market, the primary photo URL, plus derived fields (lot_size_acres, price_drop_*, hoa_monthly_usd, last_sold_*, tax_annual, extracted_features). lot_size / lot_size_acres are null (never 0) for condos and listings with no public-records lot. The raw marketing description is OMITTED by default — opt in with include_description: true. Set include_price_history: true to bundle the full price history (and the cross-MCP-normalized events_normalized view) inline; set include_tax_history: true for tax_history. Read-only; safe to call repeatedly.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoRedfin homedetails URL or path (e.g. /NY/Brooklyn/42-Monroe-St-11238/home/40732555)
listing_idNoNumeric Redfin listing ID. Optional; pairs with property_id to skip resolution.
property_idNoNumeric Redfin property ID. Sufficient on its own — when no listing_id/url is given it is resolved internally via the /home/<id> redirect. Pair with listing_id to skip that resolve step entirely.
include_descriptionNoInclude the raw marketing/public-remarks description string in the response. Default false to save context — `extracted_features` always carries the structured signal callers actually need.
include_tax_historyNoBundle the full tax history inline as `tax_history`. Default false. (#49)
include_price_historyNoBundle the full price history inline as `price_history` + `events_normalized`. Default false. Saves a follow-up redfin_get_price_history round trip — use this when a workflow needs both. (#49)
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, but the description adds valuable behavioral context: lot_size/lot_size_acres are null for condos, raw description is omitted by default to save context, and extracted_features always carries structured signals. It also explains internal resolution mechanisms. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose, then efficiently enumerates parameter options, return fields, and nullable notes. Every sentence adds value without wasted words. It is long but appropriately detailed for a complex tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately lists returned fields including derived ones. It explains optional includes and null behavior. However, it does not detail the structure of nested objects like extracted_features or events_normalized, leaving some ambiguity for agents needing to parse those fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds extra meaning beyond the schema: for url, it states resolution via initialInfo endpoint; for property_id, it explains the redirect; for include_description, it notes that extracted_features is the structured alternative. This adds value but not overwhelmingly beyond the already descriptive schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Fetch a property's full Redfin record,' which is a specific verb+resource combination. It distinguishes from siblings by noting that this tool returns a comprehensive set of fields and offers optional includes for price/tax history, contrasting with tools like redfin_get_price_history which focus solely on price history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use each parameter combination (url, property_id alone, property_id+listing_id) and explains the resolution process and performance trade-offs. It states the tool is read-only and safe to call repeatedly. However, it lacks explicit exclusions such as 'if you only need price history, consider redfin_get_price_history instead.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/redfin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server