lizo.ai's MCP Server gives Claude access to 100+ KPIs across every US ZIP code and MSA (Metropolitan Statistical Area) — cap rates, rent growth, appreciation, occupancy, population trends, crime rates, income levels, and more.
lizo.ai's MCP Server gives ChatGPT access to 100+ KPIs across every US ZIP code and MSA (Metropolitan Statistical Area) — cap rates, rent growth, appreciation, occupancy, population trends, crime rates, income levels, and more.
Ask Claude to analyze a location, evaluate a deal, screen ZIP codes by investment criteria, or compare markets — all backed by lizo.ai's real estate database updated through 2026.
Ask ChatGPT to analyze a location, screen ZIP codes by investment criteria, compare markets, or pull data on a specific property — all backed by lizo.ai's real estate database updated through 2026.
Endpoint: https://app.lizo.ai/mcp/
· Auth: OAuth 2.0 (Authorization Code + PKCE)
Endpoint: https://app.lizo.ai/gptmcp/
· Auth: OAuth 2.0 (Authorization Code + PKCE)
Invoke this tool when the user wants to understand how a specific ZIP code or address
performs relative to its broader metro area. Typical triggers: "how does [ZIP] compare to the MSA," "is
this ZIP above or below metro average," "benchmark [ZIP] against the market," "how does this submarket
stack up."
Before calling: confirm you have a ZIP code. The MSA can be
inferred from the ZIP — do not require the user to name it explicitly.
After receiving
data: synthesize into a short market read and present a side-by-side comparison — ZIP value
vs. MSA average vs. 3-mile radius, 5-mile radius — for each key metric. Lead with the overall verdict:
is this ZIP a stronger or weaker submarket than the metro average, and on which metrics specifically.
Cover rent trajectory, occupancy trend, supply pipeline, and 3-year outlook. Conclude with an investment
climate rating. Flag any metric where the gap is unusually large (positive or negative).
Parameters
Invoke this tool when the user wants to get data or an analysis on a specific ZIP
code. Typical triggers: "what's the market like in [ZIP]," "give me the KPIs for [ZIP code]," "show me
data for 85281," "what are the rent and occupancy numbers in this ZIP."
Before
calling: confirm you have a ZIP code. Do not call without one. If the user provides an
address instead of a ZIP, extract or infer the ZIP before calling.
After receiving
data: lead with the strongest market signal — whether the ZIP is outperforming, in-line, or
underperforming vs. its MSA. Present rent, occupancy, and rent growth as the primary metrics. Highlight
the 3-year outlook if available. Synthesize into a short market read. Ask if the user wants full data.
Create the data in a table.
Parameters
Invoke this tool when the user wants to compare two or more metro areas against each
other. Typical triggers: "compare Phoenix and Atlanta," "which MSA is performing better," "show me
Dallas vs. Denver," "I'm deciding between two markets — which one is stronger."
Before
calling: confirm at least two MSA names. If the user provides city names instead of formal
MSA names, map them (e.g., "Chicago" → "Chicago-Naperville-Elgin MSA"). If only one MSA is given, ask
for the second before calling.
After receiving data: synthesize into a short
market read and present a structured comparison table with one row per MSA and columns for each key
metric. Declare a clear winner per metric. End with an overall summary of which MSA presents the
stronger opportunity, framed around the user's stated investment goal if known.
Parameters
Invoke this tool when the user wants to compare two or more specific ZIP codes
side-by-side. Typical triggers: "compare 60614 vs 60657," "which ZIP is performing better," "show me
these two submarkets," "60614, 60657, 60660 — rank them."
Before calling:
confirm you have at least two 5-digit ZIPs. With a single ZIP, use get_zip_code_data or
location_analysis instead.
After receiving data: present a structured
comparison table with one row per ZIP and columns for each key metric. Declare a clear winner per
metric. End with an overall summary of which ZIP presents the stronger opportunity, framed around the
user's stated investment goal if known.
Parameters
Invoke this tool when the user wants to search for or discover ZIP codes matching
specific criteria — not when they already have a ZIP and want data on it. Typical triggers: "find ZIP
codes in [city/state] with [characteristic]," "which ZIPs are near [area]," "what ZIP code is
[neighborhood/address] in," "find me submarkets in [market] that match [criteria]."
Before
calling: confirm the search criteria — geography (city, MSA, or state) and at least one
characteristic to filter by (rent range, occupancy threshold, property density, etc.). If the user
provides only a general location with no filter criteria, ask what they're looking for before calling.
Do not use this tool if the user already has a specific ZIP — use get_zip_code_data instead.
After receiving data: present the matching ZIP codes as a ranked or grouped list. For
each ZIP, surface the metric that made it match the search criteria. If the result set is large,
highlight the top 5 and offer to show more.
Parameters
{"cap_rate__gte": 6, "state": "TX"}
"-cap_rate" (default: highest cap rate first)
Filterable fields: cap_rate, rent_growth, appreciation, total_population, population_growth, median_household_income, share_of_renters, median_rent, employment_rate, median_house_value, violent_crime_rate, state, city
Invoke this tool when the user wants to search for or rank MSAs by KPI criteria.
Typical triggers: "which MSAs have strong rent growth," "find markets with low vacancy," "top metros for
multifamily in Texas."
Before calling: confirm at least one filter criterion
or geography. Do not use this if the user already named a specific MSA — use compare_msa instead.
After receiving data: present matching MSAs as a ranked list. For each MSA,
surface the metric that drove the ranking. Offer to drill into a specific MSA with compare_msa.
Parameters
{"rent_growth__gte": 3, "usstate": "TX"}
"-cap_rate")
Invoke this tool when the user wants to understand how a specific ZIP code performs
relative to its broader metro area. Typical triggers: "how does [ZIP] compare to the MSA," "is this ZIP
above or below metro average," "benchmark [ZIP] against the market," "how does this submarket stack up."
Before calling: confirm you have a ZIP code. The MSA is inferred automatically
— do not require the user to name it explicitly.
After receiving data:
synthesize into a short market read and present a side-by-side comparison — ZIP value vs. MSA average vs.
3-mile radius vs. 5-mile radius — for each key metric. Lead with the overall verdict: is this ZIP a
stronger or weaker submarket than the metro average, and on which metrics specifically. Use the
notable_gaps list to flag metrics where the ZIP diverges from its MSA by 15% or more — these are the
most actionable signals.
Parameters
Invoke this tool when the user wants to compare rent levels or rent growth across
markets, ZIP codes, or property types. Typical triggers: "where are rents growing fastest," "compare
rents in [A] vs. [B]," "show me rent trends across these ZIPs," "which property type is commanding
higher rents."
Before calling: collect at least two comparison targets (ZIP
codes or MSA codes). For a ranking ("top markets by rent growth"), use find_zip_code or find_msa
instead — this tool is for direct head-to-head comparison.
After receiving data:
lead with the highest and lowest performers (highest_rent_growth / lowest_rent_growth). Present
effective rent (median_rent) and rent_growth side by side for each geography. Break down
rent_by_unit_type (studio / 1BR / 2BR / 3BR) to show which bedroom type drives the spread. Flag
any market where rent growth is accelerating vs. plateauing — this is the most actionable signal for
investment decisions.
Parameters
Invoke this tool when the user wants the full property record for a specific apartment
by street address or asset name. Typical triggers: "show me data for [address]," "what's the asset class
on [property]," "pull up [property name]," "what's the occupancy at [address]."
Before
calling: confirm you have a full street address or asset name. A ZIP code alone is not
sufficient — use get_zip_code_data instead.
After receiving data: lead with
asset identification (asset_name, address, city/state/zip) and asset_class (A/B/C grade) alongside
headline operating metrics. Then break down unit counts and rents by bedroom type (studio/1BR/2BR/3BR,
including rent_psf), building details (built_year, built_year_effective, floors, total_units, management
company), special_type, amenities, school_district, walk/transit/bike scores, transportation, and policy
flags (is_mfh, is_furnished, is_pet_allowed). Flag any gap between the asset's class and its market
position.
Parameters
Invoke this tool when the user wants to search for apartment properties by location —
city, ZIP, MSA, or full address. Typical triggers: "find properties in [market]," "which assets in [ZIP]
are class A," "search for garden-style assets in [city]," "find me a comp for [property]."
Before calling: confirm at least a geography. Optionally filter by property_type
('multifamily') or numeric filters (total_units, built_year, floor, rent_1_br, rent_2_br, is_mfh). If
the user has already named a specific address, use get_asset_data instead.
After
receiving data: present matching assets as a ranked list. Each row carries the full property
record: identification (asset_id, asset_name, address, lat/lon), unit counts and rents by bedroom (with
rent_psf), building details (built_year, built_year_effective, floors, management company), asset_class
(A/B/C grade), special_type, amenities, school_district, walk/transit/bike scores, transportation, and
policy flags (is_mfh, is_furnished, is_pet_allowed). Surface asset_class up front when ranking — it's
the most actionable signal.
Parameters
Invoke this tool when the user wants to understand how a specific ZIP code or address
performs relative to its broader metro area. Typical triggers: "how does [ZIP] compare to the MSA," "is
this ZIP above or below metro average," "benchmark [ZIP] against the market," "how does this submarket
stack up."
Before calling: confirm you have a ZIP code, a full street address,
or a city/neighborhood description. The tool will geocode and extract the ZIP automatically.
After receiving data: synthesize into a short market read and present a side-by-side
comparison — ZIP value vs. MSA average vs. 3-mile radius, 5-mile radius — for each key metric. Lead
with the overall verdict: is this ZIP a stronger or weaker submarket than the metro average, and on
which metrics specifically. Cover rent trajectory, occupancy trend, supply pipeline, and 3-year outlook.
Conclude with an investment climate rating.
Parameters
Invoke this tool when the user wants raw data for a specific ZIP code — not a
comparative analysis. Typical triggers: "what's the market like in [ZIP]," "give me the KPIs for [ZIP
code]," "show me data for 85281," "what are the rent and occupancy numbers in this ZIP."
Before calling: confirm you have a 5-digit ZIP code. If the user provides an address
instead, extract or infer the ZIP first. For a market vs. metro benchmark, use location_analysis
instead.
After receiving data: lead with the strongest market signal — whether
the ZIP is outperforming, in-line, or underperforming. Present rent, occupancy, and rent growth as the
primary metrics. Surface the 3-year outlook if available. Offer the full KPI table on request.
Parameters
Invoke this tool when the user wants to compare two or more specific ZIP codes
side-by-side. Typical triggers: "compare 60614 vs 60657," "which ZIP is performing better," "show me
these two submarkets," "60614, 60657, 60660 — rank them."
Before calling:
confirm you have at least two 5-digit ZIPs. With a single ZIP, use get_zip_code_data or
location_analysis instead.
After receiving data: present a structured
comparison table with one row per ZIP and columns for each key metric. Declare a clear winner per
metric. End with an overall summary of which ZIP presents the stronger opportunity, framed around the
user's stated investment goal if known.
Parameters
Invoke this tool when the user wants to search for or discover ZIP codes matching
specific criteria — not when they already have a ZIP and want data on it. Typical triggers: "find ZIP
codes in [city/state] with [characteristic]," "screen submarkets with [criteria]," "top ZIPs by [KPI]."
Before calling: confirm the search criteria — geography (city, MSA, or state)
and at least one characteristic to filter by. Do not use this tool if the user already has a specific
ZIP — use get_zip_code_data instead.
After receiving data: present the matching
ZIP codes as a ranked list. For each ZIP, surface the metric that made it match. If the result set is
large, highlight the top 5 and offer to show more.
Parameters
{"cap_rate__gte": 6, "state": "TX"}
"-cap_rate" (default: highest cap rate first)
Filterable fields: cap_rate, rent_growth, appreciation, total_population, population_growth, median_household_income, share_of_renters, median_rent, employment_rate, median_house_value, violent_crime_rate, state, city
Invoke this tool when the user wants detailed year-over-year KPI data for a specific
MSA. Typical triggers: "show me data for [MSA]," "give me the 5-year trajectory for [metro]," "what are
the KPIs for the Phoenix MSA."
Before calling: confirm you have the MSA code.
If the user gives a city or metro name, use find_msa first to discover the correct code.
After receiving data: present year-over-year trends across the key KPIs — cap rate,
rent growth, occupancy, supply, population. Highlight inflection points and the 3-year outlook.
Parameters
Invoke this tool when the user wants to search for or rank MSAs by KPI criteria.
Typical triggers: "which MSAs have strong rent growth," "find markets with low vacancy," "top metros for
multifamily in Texas."
Before calling: confirm at least one filter criterion
or geography. Do not use this if the user already named a specific MSA — use compare_msa instead.
After receiving data: present matching MSAs as a ranked list. For each MSA,
surface the metric that drove the ranking. Offer to drill into a specific MSA with compare_msa.
Parameters
{"rent_growth__gte": 3, "usstate": "TX"}
"-cap_rate")
Invoke this tool when the user references a specific building or asset by address and
wants its full property record. Typical triggers: "show me data for [address]," "what's the asset class
on [property]," "pull up [property name]," "what's the occupancy at [address]."
Before
calling: confirm you have a full street address with at least street number and street
name. A ZIP alone is not sufficient — use get_zip_code_data instead.
After receiving
data: lead with identification (asset_id, asset_name, address, city/state/zip, lat/lon) and
asset_class (A/B/C grade). Then present unit counts and rents by bedroom type (with rent_psf), building
details (built_year, built_year_effective, floors, total_units, management company), special_type,
amenities, school_district, walk/transit/bike scores, transportation, and policy flags (is_mfh,
is_furnished, is_pet_allowed).
Parameters
Invoke this tool when the user wants to discover specific properties — not when they
already know the address. Typical triggers: "find properties in [market]," "search for garden-style
assets in [city]," "which properties in ZIP [X] have 100+ units," "find me a comp for [property]."
Before calling: confirm at least a geography (city, ZIP, or MSA) and
optionally a property type or size filter. If the user has a specific address, use get_asset_data
instead.
After receiving data: present matching assets as a list. Each carries
the full property record: identification, lat/lon, unit counts and rents by bedroom (with rent_psf),
building details (built_year, built_year_effective, floors, management company), asset_class (A/B/C
grade), special_type, amenities, school_district, walk/transit/bike scores, transportation, and policy
flags (is_mfh, is_furnished, is_pet_allowed).
Parameters
A lizo.ai account is required to use this MCP server. All tools access your account's data permissions.
Ask for an account at app.lizo.ai or email support@lizo.ai.
All tools are read-only — this server only reads market data. It does not write, modify, or delete any user data.
Data covers all US ZIP codes and MSAs. KPI history available from 2021 through 2026 projections.
A lizo.ai account is required to use this MCP server. All tools access your account's data permissions.
Ask for an account at app.lizo.ai or email support@lizo.ai.
All tools are read-only — this server only reads market data. It does not write, modify, or delete any user data.
Data covers all US ZIP codes and MSAs. KPI history available from 2021 through 2026 projections.
Create an account at app.lizo.ai if you don't have one.
In Claude Desktop or Claude.ai — go to Settings → Connectors → Browse, find lizo.ai, and click Connect.
Claude will open a browser window to authorize access to your lizo.ai account.
In Claude Desktop or Claude.ai, go to Settings → Connectors →
Custom. Enter name: lizo.ai, URL: https://app.lizo.ai/mcp/
Create an account at app.lizo.ai if you don't have one.
Enable Developer Mode in ChatGPT — open Settings → Apps & Connectors → Advanced settings (at the bottom of the page) and toggle Developer Mode on. Confirm the warning prompt.
Memory is automatically disabled while Developer Mode is on.
Go to Settings → Connectors → Create and fill in:
Name: lizo.ai
Description: Real estate market analytics — ZIP codes, MSAs, and assets across the US.
MCP Server URL: https://app.lizo.ai/gptmcp/
Click Create. ChatGPT will discover the OAuth flow automatically.
Authorize — ChatGPT will open a browser window to sign in to your lizo.ai account and approve the connection.
Once connected, open a new chat, click the + button near the composer, choose More, and select lizo.ai to use the tools.