Attain Warehouse

Anonymized Attain data, public housing-market data and the release history of every Attain app, ready for Claude to analyze.

Data as of Nov 6, 2026, 7:46 AM Los Angeles time. Rebuilt every night at 2:00 AM Los Angeles time. Internal to the Attain team.

Connector URL

Add this as a custom connector in Claude. Sign-in uses your Attain email and password.

https://warehouse.attain.app/mcp

Connect Claude

claude.ai, Claude Desktop and mobile

  1. Once for the organization (an Owner): Organization settings → Connectors → Add → Custom → Web. Name it Attain Warehouse, paste the URL above, and add it. No client ID or secret is needed.
  2. Each team member: Customize → Connectors, find Attain Warehouse and click Connect. Sign in with your Attain email and password.
  3. In a chat, make sure the connector is on in the tools menu, then ask a question. It also works in Projects and scheduled tasks.

Claude Code

claude mcp add --transport http attain-warehouse https://warehouse.attain.app/mcp

Then run /mcp in Claude Code, pick attain-warehouse and choose Authenticate. A browser window opens for the sign-in.

Other AI tools

Any client that supports remote MCP servers over Streamable HTTP with OAuth 2.1 (dynamic client registration and PKCE) can connect. Sign-in redirects are limited to Claude’s callbacks and localhost; another tool’s redirect has to be added to the server’s allow-list first.

Who can connect

Attain team members with the WAREHOUSE role. To get it, ask an admin to run pnpm script grantWarehouseRole --email you@attain.app in attain-platform.

Your role is checked when you sign in. Claude stays connected for up to 90 days without signing in again; an admin can end access at any time, and it stops within the hour.

Try asking

Claude resolves phrases like “last quarter” to exact dates and tells you which ones it used. Days are in Los Angeles time and weeks start on Monday. Internal (attain.app) accounts are left out, like on the support dashboard.

What Claude can use

Tools

All read-only.

get_metricA defined metric by day, week, month or year over a date range, matching the support dashboard.
list_releasesReleases of every app and the platform, with their changes, to line up numbers with what shipped.
list_tablesEvery table, view and metric function, with row counts and the dates covered.
describe_tableA table’s columns, their meaning and the values of coded columns.
run_queryOne read-only SQL query on the analytics schema, for anything the metrics don’t cover.

Metrics

Each takes a grain (day, week, month or year) and a date range.

signupsnew accounts per period (signups), and how many were validated (validated)
conversionthe support dashboard conversion chart: validated accounts (account_created), completed onboardings (onboarded), assessments (assessment_complete) and pre-approval requests (mortgage), each counted in the period it happened
funnelaccounts reaching each funnel stage for the first time (lead, account_created, onboarded, assessment_complete, mortgage, home_search, closing, homeowner), counted in the period they reached it, from the platform status log
retentionsignup cohorts per period (signups), how many of them have completed onboarding today (onboarded) and the share (onboarded_share). This is the support dashboard’s retention definition
buying_poweraccounts per buying power band ($50k bands) per period, from each account’s last calculation in the period; one row per period and band
purchasesvalidated in-app purchases per period: purchases, distinct buyers, revenue_usd, and revenue per store (app_store_usd, google_play_usd). Test purchases are left out
ai_chatmessages in Atty (AI) chats per period, sent by users (user_messages) and by Atty (ai_messages)

Attain accounts (anonymized)

dim_accountOne row per account that is not deleted: customers and also team, partner and demo accounts (see the is_* flags).
fact_funnel_transitionThe first day each account reached each funnel stage, from the platform’s status log.
fact_pre_approval_requestEvery pre-approval request (agent GET_PRE_APPROVED_BY_LENDER).
fact_buying_power_snapshotBuying power over time: the last calculation of each day for each account.
fact_purchaseIn-app purchases validated with the App Store or Google Play.
fact_subscriptionAccess records from the subscription collection, one per account.
fact_engagementDaily activity counts per account: messages the user sent in chat, and calls.
fact_ai_chat_dailyMessages per day in AI (Atty) chats, by sender, like the support dashboard’s AI chat chart.

Market data (public)

market_ratesMortgage rates from Zillow, refreshed weekly (Sundays) per state, loan type, credit bucket and loan-to-value bucket.
market_pricesTypical home values (Zillow ZHVI) per ZIP code, month and bedroom count.
market_property_taxEffective property tax rate per state, latest year only (Tax Foundation).
market_insuranceAverage homeowner insurance premium per state, latest year only.
market_down_payment_aidDown payment assistance programs per state.

Release history

dim_releaseReleases of every Attain app and the platform, from GitHub.
fact_release_changeOne row per change in a release: kind, area and a one-line summary.

Privacy

Accounts appear only as a one-way key. There are no names, emails, phone numbers, addresses, SSNs or dates of birth, and no credit report, Plaid, document, note, chat or call content. Amounts and credit scores are bands, locations stop at the state and the first 3 digits of the ZIP code, and dates are days.

Safeguards

Every query is read-only, limited to the analytics tables, stopped after 15 seconds and capped at 1,000 rows. Every tool call is logged with who made it.