housing_metro_demand

Pack: housing-intel · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/housing_metro_demand for the schema, then POST the same URL with its arguments for the data.

Demand + rent-durability signals for a shortlist of US metros in ONE call — population & 5-year growth, renter share, median household income, and unemployment, straight from Census ACS. Deterministic by metro (CBSA-keyed) — NO FRED series-ID guessing. Pass metros (“City, ST”, e.g. the top results from housing_market_screen). This is the Stage-2 “is the demand real?” filter on a yield shortlist — high yield in a shrinking metro is a trap. No API key needed. HIGHEST-LAG SOURCE IN THIS PACK: figures are a Census ACS 5-YEAR rolling average (currently 2018-2022, released Dec 2023) — for structural demand, not a current-quarter read. freshness states the exact age.

Parameters

NameTypeRequiredDescription
metrosarrayyesMetro names to enrich, “City, ST” form, e.g. [“Lubbock, TX”,“Pittsburgh, PA”] — match the housing_market_screen output. Required.
itemsstringno
limitnumbernoMax metros to enrich (default 25, max 100).

Example call

Arguments

{
  "metros": [
    "Lubbock, TX",
    "Pittsburgh, PA"
  ]
}

curl

curl -X POST https://gateway.pipeworx.io/housing-intel/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"housing_metro_demand","arguments":{"metros":["Lubbock, TX","Pittsburgh, PA"]}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('housing_metro_demand', {
  "metros": [
    "Lubbock, TX",
    "Pittsburgh, PA"
  ]
});

More examples

{
  "metros": [
    "Denver, CO",
    "Austin, TX",
    "Boise, ID"
  ],
  "limit": 10
}

Response shape

FieldTypeDescription
analysisstring
acs_yearnumber
population_growth_basisstring
matchednumber
metrosarray
notestring
freshnessobject
Full JSON Schema
{
  "type": "object",
  "properties": {
    "analysis": {
      "type": "string"
    },
    "acs_year": {
      "type": "number"
    },
    "population_growth_basis": {
      "type": "string"
    },
    "matched": {
      "type": "number"
    },
    "metros": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "metro": {
            "type": "string"
          },
          "cbsa": {
            "type": "string"
          },
          "population": {
            "type": "number"
          },
          "population_growth_5yr_pct": {
            "type": "number"
          },
          "median_household_income": {
            "type": "number"
          },
          "renter_share_pct": {
            "type": "number"
          },
          "unemployment_rate_pct": {
            "type": "number"
          }
        }
      }
    },
    "note": {
      "type": "string"
    },
    "freshness": {
      "type": "object",
      "properties": {
        "as_of": {
          "type": "string"
        },
        "acs_5yr_release_date": {
          "type": [
            "string",
            "null"
          ]
        },
        "age_days_since_release": {
          "type": "number"
        },
        "statement": {
          "type": "string"
        }
      }
    }
  }
}

Connect

Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://pipeworx.io/mcp"
    }
  }
}
Connect to just the housing-intel pack
{
  "mcpServers": {
    "housing-intel": {
      "url": "https://gateway.pipeworx.io/housing-intel/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build October 11, 2026