# How to Use the ATTOM Data MCP to Pull Comps for Real Estate Agents
> Configure the ATTOM Data MCP server in Claude and chain it with the Real Estate Vault to pull comparable sales, build a CMA outline, and draft the listing description — without leaving the chat.
**Author:** [Alex Lowe](https://theaicareerlab.com/about) — Founder, The AI Career Lab
**Published:** 2026-05-24
**Canonical URL:** https://theaicareerlab.com/blog/attom-mcp-real-estate-agents-comps-automation
**Profession:** real-estate
**Category:** how-to
**Tags:** real estate, real estate agents, MCP, ATTOM Data, comps, CMA, agentic AI, 2026
---Pulling comps for a CMA used to be 45 minutes of cross-referencing the MLS, the public records portal, and a few Zillow tabs. With the [ATTOM Data MCP server](https://api.developer.attomdata.com/docs) wired into Claude, and the [Real Estate AI Cowork Vault](https://clowealex.gumroad.com/l/cqvdol) handling the downstream drafting, the same work is under 10 minutes and the output is consistent across every listing you take.

This post walks through the full setup. By the end, you'll have ATTOM Data flowing into Claude, comps pulled by ZIP and property type, and a CMA outline + listing description generated by the vault — all in one conversation.

> 💡 **The stack at a glance.** The ATTOM Data MCP server is the comps source. The [Real Estate AI Cowork Vault](https://clowealex.gumroad.com/l/cqvdol) is the agentic layer that turns those comps into a CMA outline, a listing description, and an open-house promo plan in your voice. **$14 one-time, lifetime updates.** Both Claude Cowork and Microsoft 365 Copilot plugins included.

## What the ATTOM Data MCP server actually does

ATTOM Data aggregates property records, sales history, tax assessments, mortgage data, and parcel boundaries across 155M+ U.S. parcels. The [ATTOM Data API](https://api.developer.attomdata.com/docs) exposes that as REST endpoints. The MCP server is the bridge that lets Claude call those endpoints directly — by address, by ZIP, by APN, by lat/lng radius — and return structured property data into the conversation context.

What you can pull through it (relevant to listing prep):

- **Recent sales** within a radius or ZIP, filtered by property type, beds/baths, year built, square footage
- **Property attributes** for any single address (sale history, tax assessment, owner of record, lot size, livable square footage)
- **Foreclosure / pre-foreclosure flags** for distress-aware pricing context
- **Median sale price trends** for the ZIP or neighborhood over the past 12–60 months

What it does *not* do: live MLS data. ATTOM aggregates from public records and licensed feeds, but for the most recent week, your MLS is still the source of truth. The vault's CMA skill handles that explicitly.

## Pre-flight: what you need installed

- **Claude Cowork** (desktop) or **Claude Code** — current versions support MCP servers
- An **ATTOM Data API key** — free tier from the [ATTOM developer portal](https://api.developer.attomdata.com)
- **Node.js 20+** if you're running the community MCP server locally, or any hosted-MCP wrapper if you prefer
- The **[Real Estate AI Cowork Vault](https://clowealex.gumroad.com/l/cqvdol)** installed in your Cowork Project (this is what the comps feed *into*)

## Configure the MCP server in Claude

Open your Claude Cowork config (on macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`; on Windows: `%APPDATA%\Claude\claude_desktop_config.json`).

Add the ATTOM MCP server to the `mcpServers` block:

```json
{
  "mcpServers": {
    "attom-data": {
      "command": "npx",
      "args": ["-y", "@attom/mcp-server"],
      "env": {
        "ATTOM_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

Restart Claude Cowork. Open the **Customize** panel and confirm the ATTOM server shows as connected. If it doesn't, check the developer console for an MCP handshake error — usually a typo in the API key or a Node version older than 20.

## Run your first comps pull

Inside a Cowork session attached to your Project, type:

```text
Use the ATTOM MCP to pull sales in ZIP 78704 from the last 6 months for single-family homes 
between 1,400 and 1,800 sqft, 3 bed minimum. Return the address, sale date, sale price, 
beds/baths, sqft, and a $/sqft for each.
```

ATTOM returns the comps. Claude formats them into a table. Eyeball the outliers (a property that sold for half the median is usually a teardown or family transfer — flag and exclude).

## Chain it with the vault's CMA outline skill

This is where the agentic layer earns its keep. With the comps in context, call the vault skill:

```text
/cma-outline
Subject property: 1234 Oak St, Austin TX 78704
Subject details: 3/2, 1,620 sqft, built 1978, recently updated kitchen
Comps: [paste the table Claude returned, or just say "use the ATTOM pull above"]
Pricing strategy: aggressive — listing in spring, want offers in 7 days
```

The vault produces a structured CMA outline:

- Subject summary
- Comparable sales table (the comps you pulled, re-formatted with adjustments)
- Adjustments rationale (size, age, condition deltas)
- Suggested list price range with reasoning
- Days-on-market projection
- Pricing strategy narrative for the seller conversation

You'll edit the adjustments — that's a human judgment call — but the structure and the seller-facing narrative are done.

## Draft the listing description from the same context

The CMA work also gives the vault enough context to draft the listing description in one more step:

```text
/listing-description
Property: 1234 Oak St (use the CMA above for property details)
Voice: warm, neighborhood-aware, no clichés
Target buyer: first-time buyer, dual-income, young family
Highlight: kitchen reno, walkable to Zilker
Compliance: fair-housing safe
```

The vault's `/listing-description` skill produces the description with the fair-housing guard active — meaning no language that could be read as steering by age, family status, race, or any other protected class. (Yes, this is a real failure mode of generic AI prompts. No, the vault's guard is not a feature you have to remember to invoke; it runs on every listing-description call.)

## Chain into the open-house plan

The same context can feed the vault's `/open-house-promo-plan`:

```text
/open-house-promo-plan
Property: 1234 Oak St
Open house: Sunday April 6, 12-3pm
Channels: Instagram, Facebook, email blast to past clients, sign on street
```

Output: a promo schedule for the week leading up to the open house, with copy for each channel, the email subject line, the sign copy, and a follow-up sequence for attendees.

The full sequence — comps → CMA → description → open-house plan — is one continuous conversation, with the ATTOM MCP supplying data and the vault supplying the agentic layer.

## Common failure modes (and the fix)

- **Comps return zero results.** ATTOM's geo-filtering can be strict. Widen the radius first, then narrow filters. If you specified a ZIP that's small (under 1,000 parcels), use the bordering ZIPs.
- **Comps look stale.** ATTOM updates on a 7–14 day rolling basis. For the most recent week, supplement with your MLS — the vault's `/cma-outline` prompts for this explicitly.
- **Adjustments feel arbitrary.** Don't let Claude invent adjustment magnitudes. Give the vault your firm's standard adjustment grid (sqft, age, condition, garage, pool) as part of setup-wizard input, and the CMA will use it.
- **Fair-housing flagged on a listing description.** The guard fires when language drifts into protected-class steering. Re-scope: the property has features, neighborhoods have features, *buyers* don't get described.

## When you'd skip this stack

- **You list fewer than 8 properties a year.** The MCP setup time isn't worth it; do CMAs manually.
- **You're 100% in one tight market.** If you already know every comp in your service area by memory, the MCP is making explicit what you already do implicitly. Still useful for the *output structure*, but the data lift is minimal.
- **Your MLS already has a CMA-builder you trust.** Use it. The vault's downstream skills (listing description, open-house plan) still apply.

## Sources

- ATTOM Data: [Developer API documentation](https://api.developer.attomdata.com/docs)
- Anthropic: [Model Context Protocol (MCP) introduction](https://modelcontextprotocol.io)
- NAR: [Code of Ethics — Article 12 (fair housing)](https://www.nar.realtor/about-nar/governing-documents/code-of-ethics)
## Frequently asked questions

### Do I need an ATTOM Data subscription to use the MCP?

Yes. The ATTOM Data MCP is a bridge to ATTOM's property data API — it doesn't bring its own data. You'll need an ATTOM Data API key, available on their developer portal. They offer a free tier sufficient for a few hundred property lookups a month, which is enough for a working solo agent.

### Can I run this without Claude Cowork?

The MCP server protocol is supported by Claude desktop, Claude Code, and a growing list of Cowork-compatible IDEs. You'll need at least one of those — running an MCP server purely through claude.ai's web UI is not supported. If you're using Microsoft 365 Copilot, the equivalent integration runs through the agentConnectors mechanism, not raw MCP.

### Is the data fresh enough for CMA work?

ATTOM updates property records on a rolling basis — recent sales typically appear within 7–14 days of recording, which is fast enough for most CMAs. For the most recent week's activity, cross-reference with your local MLS. The vault's `/cma-outline` skill prompts you for an MLS supplement step explicitly.

---

*Canonical version: https://theaicareerlab.com/blog/attom-mcp-real-estate-agents-comps-automation*
*This document is the Markdown companion served for AI crawlers and answer engines. See the canonical URL for the rendered version with navigation, related content, and interactive elements.*