Enzo's
Server Details
Search US homes for sale by style and budget, with honest buy verdicts and video tours.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
The three home-listing tools (search_homes, below_market_deals, video_tours) all return lists of properties, so an agent must read descriptions to pick the right filter, but each has a clear distinguishing signal (general query, below-market pricing, presence of a video tour). get_home vs home_verdict is cleanly split between raw facts and analysis, and market_snapshot is clearly aggregate-only.
All names are snake_case and readable, but conventions are mixed: some are verb_noun (get_home, search_homes) while others are noun phrases or adjective phrases (below_market_deals, market_snapshot, video_tours, home_verdict). No single predictable pattern lets an agent guess a name.
Six tools is a tight, well-scoped surface for a home-discovery server, and each tool covers a distinct query type (search, detail, verdict, market stats, video tours, below-market deals) with no filler. Nothing appears redundant at this count.
The read-only lifecycle is well covered: discovery via search/filters, per-home detail, financial verdict, market context, and a source link back to the original listing. Gaps are minor — no side-by-side home comparison, saved-search/alert, or neighborhood-level data beyond the metro snapshot — and agents can work around them by chaining get_home calls.
Available Tools
6 toolsbelow_market_dealsBelow-market dealsARead-onlyInspect
List homes currently priced BELOW comparable homes (a good-value / below-market signal) in a given metro, newest-best first. Input is a metro or city name.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-25, default 10). | |
| metro | Yes | Metro or city, e.g. 'Los Angeles, CA' or 'Austin'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| homes | No | |
| total | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a safe, read-only, open-world operation. The description adds useful behavioral detail beyond that: results are 'currently priced BELOW comparable homes' and ordered 'newest-best first.' It does not define 'comparable' precisely, but it is transparent enough for the annotations already provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two efficient sentences, front-loaded with the primary purpose and signal definition. It contains no redundant or wasted phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with full parameter coverage and an output schema, the description provides enough information to invoke it correctly. Minor ambiguity remains around how 'comparable homes' and 'newest-best' are computed, which keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents both parameters. The description restates that the input is a metro or city name but adds no additional constraints, examples, or format details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('List') and resource ('homes') with a clear qualifying criterion: priced below comparable homes. It also scopes results to a metro and states a default ordering, though it does not explicitly differentiate itself from the sibling search_homes tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it: finding below-market or good-value homes in a metro. However, there is no explicit guidance on when to choose this over search_homes or when not to use it, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_homeGet home detailsARead-onlyInspect
Get the full facts for one for-sale home on Enzo's: address, price, beds/baths/sqft, year built, lot size, architectural style, features detected from its photos, a fact-grounded description, the agent video tour if there is one, similar homes, and the link to the original source listing. Input is an Enzo's home URL or id (as returned by search_homes).
| Name | Required | Description | Default |
|---|---|---|---|
| home | Yes | An enzos.ai home URL (…/home/<id>) or the 16-character home id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| home | No | |
| found | No | |
| similar | No | |
| features | No | |
| video_tour | No | |
| description | No | |
| source_listing | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false. The description adds useful behavioral context by enumerating the breadth of returned data, including photo-detected features, fact-grounded description, video tour presence, similar homes, and source listing link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and input are front-loaded, and every listed data field earns its place by clarifying scope. It is a single long sentence, which is slightly unwieldy, but not padded with irrelevant material.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety and an output schema documenting the return shape, the description supplies all an agent needs to select and invoke the tool correctly. It also names the input format and provenance explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and already documents the single 'home' parameter as an enzos.ai URL or 16-character id. The description restates the same format and adds only that the id is 'as returned by search_homes', so it does not meaningfully exceed the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific verb 'Get' and resource 'full facts for one for-sale home on Enzo's', then enumerates the exact data included. This clearly distinguishes it from search_homes, which returns multiple homes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains that the input is an Enzo's home URL or id 'as returned by search_homes', which makes the intended workflow clear. It does not explicitly exclude alternatives like home_verdict or below_market_deals, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
home_verdictHome buy verdictARead-onlyInspect
Get Enzo's honest, independent read for one listing: how its price compares to similar homes nearby, price-per-square-foot, days on market, any price cuts, plain caveats, the real monthly cost (mortgage, property tax reassessed at purchase price, insurance, HOA) and the income it takes, AND a forward-looking financial grade (A to F) from a Monte-Carlo of local price dynamics and the rate path versus renting, with a probability and a p10/p50/p90 range. Deterministic, grounded in public data (FRED rates, Zillow ZHVI, state tax rates); a probabilistic model, never a guarantee, a sales pitch, or financial advice. Input is an Enzo's home URL or its id.
| Name | Required | Description | Default |
|---|---|---|---|
| home | Yes | An enzos.ai home URL (…/home/<id>) or the 16-character home id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| found | No | |
| grade | No | |
| source | No | |
| caveats | No | |
| signals | No | |
| verdict | No | |
| assessment | No | |
| financials | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/safe behavior, yet the description still adds substantial context: it says the result is deterministic and grounded in FRED, Zillow ZHVI and state tax rates, that the grade comes from a Monte-Carlo of local price dynamics versus renting with p10/p50/p90 and a probability, and that it is a probabilistic model, not a guarantee, sales pitch, or financial advice. That tells the agent what kind of output to trust and how to present it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with what the verdict returns, then the data sources and model caveats, which matches how an agent would scan it. It is a dense run-on sentence with some redundant hedging ('never a guarantee, a sales pitch, or financial advice'), but every clause carries selection value; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description still gives the agent a complete mental model: inputs accepted, data grounding, model type and variability (p10/p50/p90, probability), and explicit limitations on how the grade should be used. Nothing needed to decide whether to call it or how to interpret the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is fully documented as an enzos.ai URL (.../home/<id>) or 16-character id. The description's closing sentence ('Input is an Enzo's home URL or its id') merely restates the schema, so it adds no new format hints or edge-case behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get Enzo's honest, independent read for one listing') and enumerates exactly what the verdict contains: price comparison, $/sqft, days on market, price cuts, monthly cost, income needed, and an A–F Monte-Carlo grade. That is enough to separate it from get_home or market_snapshot, but it never names a sibling or contrasts itself with them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It signals usage implicitly ('for one listing', 'Input is an Enzo's home URL or its id'), so an agent can infer this is the single-listing deep-dive tool. There is no explicit when-to-use/when-to-avoid guidance nor any pointer to below_market_deals or get_home as alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_snapshotMarket snapshotARead-onlyInspect
A live snapshot of a US metro's for-sale market on Enzo's: how many homes are for sale, the price range (5th percentile, median, 95th percentile) and the most common architectural styles. Input is a metro or city name, e.g. 'Austin, TX'.
| Name | Required | Description | Default |
|---|---|---|---|
| metro | Yes | Metro or city, e.g. 'Denver, CO' or 'Miami'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| metro | No | |
| price | No | |
| source | No | |
| browse_url | No | |
| top_styles | No | |
| homes_for_sale | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered. The description adds that the data is 'live' and scoped to US metros on Enzo's, but says nothing about behavior on ambiguous or unknown metro names, data recency, or coverage limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads what the snapshot contains, then closes with the input format. Every clause carries information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values needn't be explained, yet the description still previews them helpfully, and the one required input is exemplified. The only gap is guidance on how to handle city-vs-metro ambiguity or non-US input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter already carries its own description and examples, so the description merely restates the same 'Austin, TX' style example. With one fully documented parameter, the schema does the heavy lifting and no additional semantic value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (a US metro's for-sale market snapshot) plus the exact metrics returned — inventory count, 5th/median/95th percentile price, and common architectural styles. It never names a sibling (e.g. below_market_deals also concerns market pricing), so the agent must infer the boundary from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use it when you need aggregate market-level stats for a metro rather than individual listings. There is no explicit when-not guidance and no pointer to below_market_deals or search_homes as the alternatives for listing-level queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_homesSearch homesARead-onlyInspect
Search real for-sale homes on Enzo's by plain language, architectural style, features, budget, beds/baths, and location (metro or neighborhood). Returns matching homes with price, style, and a link to the original source listing. Use for questions like 'spanish revival homes with a pool under $1.5M in Los Angeles' or 'mid-century modern in Palm Springs'.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-25, default 10). | |
| query | Yes | Natural-language search, e.g. 'tudor homes under $1M in Pasadena'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| homes | No | |
| total | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds what annotations cannot — that results are real for-sale listings sourced from Enzo's with price, style, and an outbound link to the original listing. It does not state result cap, ranking, or pagination behavior, though the schema limit and the output schema partially cover that ground.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the capability before the return payload and then the examples. Slight redundancy exists between the description's 'tudor homes under $1M in Pasadena' example and the identical example in the schema, which is the only wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with full schema coverage, complete annotations, and an output schema, the description covers capability, query expressiveness, expected input shape, and return payload. Nothing an agent needs in order to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description genuinely extends semantics by spelling out the facets a free-text query can carry (architectural style, features, budget, beds/baths, metro or neighborhood) — far richer than the schema's single example string. It also implicitly frames limit as results-per-query rather than a filter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Search real for-sale homes on Enzo's') and enumerates exactly which facets are searchable — style, features, budget, beds/baths, location. It stops short of naming a sibling, so an agent cannot tell from the text alone why it should pick this over below_market_deals or get_home.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Two concrete example queries ('spanish revival homes with a pool under $1.5M in Los Angeles', 'mid-century modern in Palm Springs') clearly establish the invocation context as broad exploratory discovery. No exclusions or alternative-routing guidance are given, so the agent must infer that get_home handles single-property lookups.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
video_toursHomes with video toursARead-onlyInspect
List for-sale homes that have a real agent-filmed video walkthrough (TikTok), which the big listing portals do not carry. Optionally filter to a metro or state.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1-25, default 10). | |
| metro | No | Optional metro, city or two-letter state, e.g. 'Los Angeles' or 'TX'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| homes | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive, open-world, and an output schema exists, so the safety profile is covered. The description does add real value by disclosing provenance and a coverage limitation — the tours are agent-filmed TikTok content 'which the big listing portals do not carry' — implying sparse, non-exhaustive results. It stops short of stating result ordering, freshness, or what happens when no matches exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste, with the distinguishing scope front-loaded before the optional filter. Nothing is padded or repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter read tool with full schema coverage, an output schema, and complete annotations, the description is nearly sufficient. A note on what an empty result means (many metros likely have no TikTok tours) would close the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (limit with its 1-25 range and default, metro/city/state) are already fully documented. The description restates the metro filter without adding syntax or matching behavior beyond the schema's example, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and a precisely scoped resource ('for-sale homes that have a real agent-filmed video walkthrough'), which is a genuinely different result set from search_homes. It doesn't name the sibling it supersedes, but the scope qualifier alone lets an agent tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optionally filter to a metro or state' implies the usage context, but there is no explicit when-to-use vs. when-not, and no pointer to search_homes for the general case or to below_market_deals for deal filtering. The agent must infer selection from the niche scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
below_market_deals - First observed
get_home - First observed
home_verdict - First observed
market_snapshot - First observed
search_homes - First observed
video_tours
Related MCP Connectors
Search homes for sale and to rent across Europe and the UAE, keep shortlists, reveal sellers.
Get matched with a top-rated, review-verified real estate agent in the US or Canada.
Search US vehicle listings from dealer sites, with price stats, VIN lookup, and dealer profiles.
Find UK homes for sale and to rent, matched to your wishes, with nearby schools and area guides.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables searching US residential foreclosure/REO/short-sale auction listings by state and county, with detailed property facts, sale event dates, venues, and bid/sale prices labeled by status.4 npm1MIT
- AlicenseAqualityBmaintenanceUnified UK property search across major portals with deduplication and open-data enrichment, enabling natural-language queries for listings, sold prices, EPC, crime, schools, and market stats.10MIT
- AlicenseAqualityAmaintenanceProvides real estate data from homes.com via a browser session, enabling property search, details, history, and affordability calculations through natural language.21120 npmMIT
- AlicenseAqualityAmaintenanceEnables searching Zillow for-sale, for-rent, and sold listings with rich filters and retrieving complete property details as structured JSON, with no Zillow account required.251 npm32 PyPI10MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.