Skip to main content
Glama

Housing Market Snapshot

housing_market_snapshot
Read-onlyIdempotent

Get national housing market overview: mortgage rates, housing starts, Case-Shiller index, unemployment, construction employment. Optionally add metro-level prices (e.g., "Denver", "Atlanta"). For comparing Case-Shiller across multiple metros use case_shiller_metro_compare instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
_blsKeyNoBLS registration key (optional — raises the shared quota; https://data.bls.gov/registrationEngine/)
_fredKeyNoFRED API key (https://fred.stlouisfed.org/docs/api/api_key.html)
metro_nameNoMetro area name for metro-level FHFA HPI (e.g., "Denver", "Atlanta"). Supports top 50 US metros. National data is always included.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNoExplanation of data scope and sources
metroNoMetro name or 'National'
zillowNo
metro_hpiNo
case_shillerNo
unemploymentNo
mortgage_rateNo
snapshot_dateNoToday's date in YYYY-MM-DD format
housing_startsNo
owners_equiv_rentNo
construction_employmentNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • addedInput schema / properties / _blsKey
      Added value: +{
      +  "description": "BLS registration key (optional — raises the shared quota; https://data.bls.gov/registrationEngine/)",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "_fredKey": "your-housing-intel-api-key"
      -  },
      -  {
      -    "_fredKey": "your-housing-intel-api-key",
      -    "metro_name": "Denver"
      -  }
      -]New value: +[
      +  {},
      +  {
      +    "metro_name": "Denver"
      +  }
      +]
    • changedInput schema / required
      Previous value: -[
      -  "_fredKey"
      -]New value: +[]
  3. Changed1 schema field changed
    • changedOutput schema / properties / metro_hpi / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
  4. Changed19 schema fields changed
    • addedOutput schema / properties / case_shiller / properties / current / description
      Added value: +"Latest Case-Shiller index value"
    • addedOutput schema / properties / construction_employment / properties / current / description
      Added value: +"Construction employment in thousands"
    • addedOutput schema / properties / housing_starts / properties / 3mo_trend / items / properties / date / description
      Added value: +"ISO date YYYY-MM-DD"
    • changedOutput schema / properties / housing_starts / properties / current / description
      Previous value: -"Current housing starts value"New value: +"Latest housing starts in thousands"
    • changedOutput schema / properties / metro / description
      Previous value: -"Metro area name (National or requested metro)"New value: +"Metro name or 'National'"
    • addedOutput schema / properties / metro_hpi / properties / current / description
      Added value: +"Latest metro HPI value"
    • addedOutput schema / properties / metro_hpi / properties / metro / description
      Added value: +"Metro name"
    • changedOutput schema / properties / metro_hpi / properties / series / description
      Previous value: -"FRED series ID"New value: +"FRED series ID for metro FHFA HPI"
    • addedOutput schema / properties / metro_hpi / properties / yoy / properties / change / description
      Added value: +"Year-over-year absolute change"
    • addedOutput schema / properties / metro_hpi / properties / yoy / properties / pctChange / description
      Added value: +"Year-over-year percent change"
    • changedOutput schema / properties / mortgage_rate / properties / 4wk_ago / description
      Previous value: -"Rate from 4 weeks ago"New value: +"Mortgage rate 4 weeks ago"
    • changedOutput schema / properties / mortgage_rate / properties / current / description
      Previous value: -"Current mortgage rate (%)"New value: +"Current 30-year mortgage rate (percent)"
    • changedOutput schema / properties / mortgage_rate / properties / error / description
      Previous value: -"Error message if unavailable"New value: +"Error message if data unavailable"
    • changedOutput schema / properties / note / description
      Previous value: -"Data scope note"New value: +"Explanation of data scope and sources"
    • addedOutput schema / properties / owners_equiv_rent / properties / current / description
      Added value: +"Owners' equivalent rent index"
    • changedOutput schema / properties / snapshot_date / description
      Previous value: -"ISO date of snapshot"New value: +"Today's date in YYYY-MM-DD format"
    • addedOutput schema / properties / unemployment / properties / current / description
      Added value: +"Current unemployment rate (percent)"
    • addedOutput schema / properties / zillow
      Added value: +{
      +  "properties": {
      +    "error": {
      +      "description": "Error message if Zillow data unavailable",
      +      "type": "string"
      +    },
      +    "home_value_index": {
      +      "properties": {
      +        "date": {
      +          "description": "ISO date of observation",
      +          "type": "string"
      +        },
      +        "note": {
      +          "description": "Description of metric",
      +          "type": "string"
      +        },
      +        "value": {
      +          "description": "ZHVI value in USD",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "inventory": {
      +      "properties": {
      +        "date": {
      +          "type": "string"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "value": {
      +          "description": "For-sale inventory (smoothed)",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "median_sale_price": {
      +      "properties": {
      +        "date": {
      +          "type": "string"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "value": {
      +          "description": "Weekly median sale price in USD",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "new_listings": {
      +      "properties": {
      +        "date": {
      +          "type": "string"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "value": {
      +          "description": "Monthly new listings",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "region": {
      +      "description": "Region name (CBSA label or 'National')",
      +      "type": "string"
      +    },
      +    "rent_index": {
      +      "properties": {
      +        "date": {
      +          "type": "string"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "value": {
      +          "description": "ZORI value in USD/month",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "sales_count": {
      +      "properties": {
      +        "date": {
      +          "type": "string"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "value": {
      +          "description": "Monthly sales count",
      +          "type": [
      +            "number",
      +            "null"
      +          ]
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "scope": {
      +      "description": "Whether data is metro-specific or national",
      +      "enum": [
      +        "metro",
      +        "national"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "snapshot_date",
      -  "metro",
      -  "note",
      -  "mortgage_rate",
      -  "housing_starts",
      -  "case_shiller",
      -  "unemployment",
      -  "owners_equiv_rent",
      -  "construction_employment"
      -]
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "case_shiller": {
      +      "properties": {
      +        "3mo_trend": {
      +          "items": {
      +            "properties": {
      +              "date": {
      +                "type": "string"
      +              },
      +              "value": {
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "current": {
      +          "type": "number"
      +        },
      +        "error": {
      +          "type": "string"
      +        },
      +        "scope": {
      +          "enum": [
      +            "national"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "construction_employment": {
      +      "properties": {
      +        "current": {
      +          "type": "number"
      +        },
      +        "error": {
      +          "type": "string"
      +        },
      +        "scope": {
      +          "enum": [
      +            "national"
      +          ],
      +          "type": "string"
      +        },
      +        "trend": {
      +          "items": {
      +            "properties": {
      +              "date": {
      +                "type": "string"
      +              },
      +              "value": {
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "unit": {
      +          "enum": [
      +            "thousands"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "housing_starts": {
      +      "properties": {
      +        "3mo_trend": {
      +          "items": {
      +            "properties": {
      +              "date": {
      +                "type": "string"
      +              },
      +              "value": {
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "current": {
      +          "description": "Current housing starts value",
      +          "type": "number"
      +        },
      +        "error": {
      +          "type": "string"
      +        },
      +        "scope": {
      +          "enum": [
      +            "national"
      +          ],
      +          "type": "string"
      +        },
      +        "unit": {
      +          "enum": [
      +            "thousands"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "metro": {
      +      "description": "Metro area name (National or requested metro)",
      +      "type": "string"
      +    },
      +    "metro_hpi": {
      +      "properties": {
      +        "current": {
      +          "type": "number"
      +        },
      +        "error": {
      +          "type": "string"
      +        },
      +        "metro": {
      +          "type": "string"
      +        },
      +        "recent_data": {
      +          "items": {
      +            "properties": {
      +              "date": {
      +                "type": "string"
      +              },
      +              "value": {
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "series": {
      +          "description": "FRED series ID",
      +          "type": "string"
      +        },
      +        "trend": {
      +          "enum": [
      +            "rising",
      +            "falling",
      +            "stable"
      +          ],
      +          "type": "string"
      +        },
      +        "yoy": {
      +          "properties": {
      +            "change": {
      +              "type": "number"
      +            },
      +            "pctChange": {
      +              "type": "number"
      +            }
      +          },
      +          "type": "object"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "mortgage_rate": {
      +      "properties": {
      +        "4wk_ago": {
      +          "description": "Rate from 4 weeks ago",
      +          "type": "number"
      +        },
      +        "current": {
      +          "description": "Current mortgage rate (%)",
      +          "type": "number"
      +        },
      +        "error": {
      +          "description": "Error message if unavailable",
      +          "type": "string"
      +        },
      +        "scope": {
      +          "enum": [
      +            "national"
      +          ],
      +          "type": "string"
      +        },
      +        "trend": {
      +          "enum": [
      +            "rising",
      +            "falling",
      +            "stable"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "note": {
      +      "description": "Data scope note",
      +      "type": "string"
      +    },
      +    "owners_equiv_rent": {
      +      "properties": {
      +        "current": {
      +          "type": "number"
      +        },
      +        "error": {
      +          "type": "string"
      +        },
      +        "scope": {
      +          "enum": [
      +            "national"
      +          ],
      +          "type": "string"
      +        },
      +        "trend": {
      +          "items": {
      +            "properties": {
      +              "date": {
      +                "type": "string"
      +              },
      +              "value": {
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "snapshot_date": {
      +      "description": "ISO date of snapshot",
      +      "type": "string"
      +    },
      +    "unemployment": {
      +      "properties": {
      +        "current": {
      +          "type": "number"
      +        },
      +        "error": {
      +          "type": "string"
      +        },
      +        "scope": {
      +          "enum": [
      +            "national"
      +          ],
      +          "type": "string"
      +        },
      +        "trend": {
      +          "items": {
      +            "properties": {
      +              "date": {
      +                "type": "string"
      +              },
      +              "value": {
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "snapshot_date",
      +    "metro",
      +    "note",
      +    "mortgage_rate",
      +    "housing_starts",
      +    "case_shiller",
      +    "unemployment",
      +    "owners_equiv_rent",
      +    "construction_employment"
      +  ],
      +  "type": "object"
      +}
  6. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "_fredKey": "your-housing-intel-api-key"
      +  },
      +  {
      +    "_fredKey": "your-housing-intel-api-key",
      +    "metro_name": "Denver"
      +  }
      +]
  7. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover safety (read-only, idempotent, non-destructive), so the bar is lower. The description adds behavioral context by listing the exact national metrics included and the optional metro price addition, which goes beyond what annotations provide. It does not describe rate limits or API key behavior, but those are not central to the tool's core behavior.

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 two sentences, front-loaded with the main action ('Get national housing market overview'), and every sentence earns its place. The first sentence lists the data points; the second provides an explicit alternative. No wasted words.

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?

Given the tool's moderate complexity, the presence of an output schema, and full parameter documentation in the schema, the description is complete. It specifies what is returned, the optional metro parameter, and directs users to the right sibling for multi-metro comparisons. No key behavioral gaps remain.

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?

The schema already provides 100% parameter descriptions, so the baseline is 3. The description adds value with examples for metro_name ('Denver', 'Atlanta') and clarifies that adding a metro is optional and that national data is always included. It does not significantly enhance the _blsKey/_fredKey descriptions, but the schema covers those adequately.

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 clearly states the tool provides a 'national housing market overview' and enumerates specific indicators (mortgage rates, housing starts, Case-Shiller index, unemployment, construction employment). It also distinguishes itself from the sibling tool case_shiller_metro_compare, making the purpose unmistakable.

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

Usage Guidelines5/5

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

The description explicitly tells when to use this tool (when a national overview with optional single metro is needed) and provides a direct alternative for multi-metro Case-Shiller comparisons: 'For comparing Case-Shiller across multiple metros use case_shiller_metro_compare instead.' This gives clear when/when-not guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.6/5.0
Disambiguation2/5

Several tools intentionally overlap: ask_pipeworx, ask_pipeworx_beta, and ask_pipeworx_grounded share the same router, with the beta variant explicitly matching stable behavior right now. entity_profille/recent_changes/compare_entities and the multiple polymarket scanning tools also cover closely related jobs, so an agent must read carefully to avoid picking the wrong variant.

Naming Consistency3/5

All tools use lowercase snake_case, which is a consistent base style. However, the naming grammar is mixed: proper verb_noun tools like compare_entities and validate_claim sit beside noun-phrase/domain tools like housing_market_screen and polymarket_edges, plus the awkward compound case_shiller_metro_compare. The housing_ and polymarket_ prefixes help, but the pattern is not uniform enough for a 5.

Tool Count2/5

41 tools far exceeds the 25+ threshold and the typical well-scoped 3-15 range. Many tools pertyain to Polymarket, npm scanning, llms.txt generation, and memory, which have little to do with Housing Intel, so the count is not earned by the server's stated domain.

Completeness4/5

For the housing domain specifically, the coverage is strong: market snapshot, affordability, employment, mortgage history, rental/property analysis, metro demand, signal scanning, and Case-Shiller comparisons cover the main data needs. The generic ask_pipeworx and deep_research tools also backfill specialized queries. The weakness is scope blur, not obvious missing housing operations.