Skip to main content
Glama
redfin-mcp
by chrischall

Exhaustively sweep a Redfin map area

redfin_sweep_area
Idempotent

Sweep a map bounding box or ZIP list for all for-sale Redfin listings, avoiding the 350-home API cap with recursive quartering and ZIP fallback to prevent silent truncation.

Instructions

Enumerate EVERY for-sale Redfin listing inside a bounding box without silent truncation. Redfin's gis API returns at most 350 homes per call and ignores server-side filters, so this tool searches drawn-map polygons, recursively quarters any tile that hits the cap, dedupes by property_id and re-applies the caller's filters locally. Homes outside the box and tiles where Redfin drifted to another region are left out. Alternatively pass zips (ZIP mode) to sweep a list of ZIP regions instead of map tiles, when Redfin ignores drawn-map polygons. Returns a completeness summary (requests, tiles or ZIPs, unique listings, tiles/ZIPs still at the cap, drift warnings) plus the listings inline by default; pass the optional output_path to write them to a new JSON file instead, for large areas (inside the output directory: REDFIN_OUTPUT_DIR, default ~/Downloads/redfin-mcp). Sequential requests with a delay. Read-only against Redfin; the only write is the optional local output file.

Input Schema

NameRequiredDescriptionDefault
zipsNoZIP mode: sweep these ZIP regions instead of map tiles (fallback when Redfin ignores drawn-map polygons). Each ZIP is checked by the homes' own ZIPs; a ZIP that returns the 350-home cap is reported as capped.
boundsNoBox to sweep (lat/lng). Required unless `zips` is given.
beds_minNo
delay_msNoPause between requests (default 1200).
locationNoOptional city (e.g. "San Jose, CA") whose region lets the polygon probe try region-pinned request shapes.
baths_minNo
max_depthNoMax quarterings per tile (default 6).
price_maxNo
price_minNo
home_typesNo
output_pathNoOptional NEW .json file to write the full results (and per-tile counts) to: a file name (e.g. "san-jose.json") written into the output directory (REDFIN_OUTPUT_DIR, default ~/Downloads/redfin-mcp), or an absolute path inside it. Paths outside that directory are refused, and an existing file is never overwritten. Omit to get the results inline; use a file for large areas so the listings stay out of the conversation.
max_requestsNoHard request budget (default 120).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.2.5
    • changedInput schema / properties / output_path / description
      Previous value: -"Optional absolute path of a NEW JSON file to write the full results (and per-tile counts) to; a relative path or an existing file is refused rather than overwritten. Omit to get the results inline; use a file for large areas so the listings stay out of the conversation."New value: +"Optional NEW .json file to write the full results (and per-tile counts) to: a file name (e.g. \"san-jose.json\") written into the output directory (REDFIN_OUTPUT_DIR, default ~/Downloads/redfin-mcp), or an absolute path inside it. Paths outside that directory are refused, and an existing file is never overwritten. Omit to get the results inline; use a file for large areas so the listings stay out of the conversation."
  2. Addedv1.2.1

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare the coarse safety profile; the description adds substantial behavioral context beyond them: the 350-home server cap, recursive quartering, property_id dedup, local filter re-application, drift exclusion, sequential requests with a delay, and the completeness summary returned. Crucially it explains why readOnlyHint=false despite being read-only against Redfin (the only write is the local output file), which reconciles the annotation rather than contradicting it.

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

Conciseness4/5

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

The lead sentence front-loads the core purpose and scope, and the following sentences each add distinct operational detail (cap, recursion, dedup, drift, output handling, request pacing). It is dense but nearly every clause earns its place for a tool this complex; only mild tightening is possible.

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

Completeness5/5

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

For a 12-parameter, nested-object tool with no output schema, the description covers the essentials: what is returned (completeness summary plus listings, inline or to a file), the safety/write profile, rate-limit pacing, and path-sandboxing rules. An agent has enough to invoke it correctly and interpret results.

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

Parameters3/5

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

Schema coverage is 58%, so the schema does part of the work. The description adds real meaning for `zips` (ZIP mode alternative to bounds) and `output_path` (directory constraint, no-overwrite), but says nothing about beds_min, baths_min, price_min/max, or home_types, leaving those filters undocumented in both places. The baseline of 3 for partial coverage is appropriate.

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 names a specific verb (enumerate/sweep) and resource (every for-sale Redfin listing in a bounding box), plus the defining constraint: exhaustive, no silent truncation. This clearly distinguishes it from sibling tools like redfin_search_properties (a normal search) or redfin_get_property (single home), so an agent can route correctly without opening the schema.

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?

It gives explicit internal guidance: use `zips` (ZIP mode) when Redfin ignores drawn-map polygons, and use `output_path` for large areas to keep listings out of the conversation. It does not, however, explicitly compare against sibling tools such as redfin_search_properties for lighter queries, so routing across the toolset still requires some inference.

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