Vocasa
Server Details
Rental property analysis your AI can call
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
The two tools have largely distinct purposes: analyze_rental computes investment metrics from user-supplied or estimated inputs, while deal_score is a read-only lookup of a proprietary listing score. They both concern property investment scoring, which creates mild thematic overlap, but the descriptions explicitly disambiguate when to use each (deal_score even points to analyze_rental for uncovered properties).
Both names use snake_case, which is consistent. However, analyze_rental follows a verb_noun pattern while deal_score is noun_noun, a minor stylistic deviation rather than a real inconsistency.
Two tools is thin even for a narrow rental-analysis domain, and there's no interactive or comparison workflow represented. The set is coherent but borderline under-scoped.
The pair covers estimation (analyze_rental) and score lookup (deal_score), which is a reasonable core surface. However, coverage is limited—deal_score only supports Cincinnati, and there is no way to compare properties, save analyses, or retrieve underlying market/comparable data.
Available Tools
2 toolsanalyze_rentalAnalyze a rental propertyARead-onlyInspect
Analyze a US residential property as a rental investment. Give an address or the key facts (price, beds, baths, square feet, ZIP). Add any numbers the user knows, such as their expected rent, tax or insurance; they override our estimates. Returns an investment score, IRR over a 15-year hold, monthly cash flow, cap rate, cash-on-cash return and DSCR, with the source of every input shown. Estimates only, not an appraisal.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | 5-digit US ZIP code. Needed when no address with a ZIP is given. | |
| units | No | Number of units in the building, when known. | |
| address | No | Street address, ideally with city, state and ZIP. | |
| bedrooms | No | Total bedrooms (all units together for a 2- or 3-family). | |
| bathrooms | No | ||
| list_price | Yes | Asking or purchase price in US dollars. | |
| hoa_monthly | No | Monthly HOA fee in dollars; 0 when omitted. | |
| square_feet | No | ||
| monthly_rent | No | The user's expected total monthly rent; overrides our estimate. | |
| interest_rate | No | Annual mortgage rate in percent (default: the current 30-year average we use). | |
| property_type | No | ||
| loan_term_years | No | Loan term in years (default 30). | |
| down_payment_pct | No | Down payment as a percent of price (default 20). | |
| insurance_annual | No | Annual insurance in dollars; overrides our estimate. | |
| property_tax_annual | No | Annual property tax in dollars; overrides our estimate. |
Output Schema
| Name | Required | Description |
|---|---|---|
| irr | No | |
| band | No | |
| dscr | No | |
| score | No | |
| message | No | |
| outcome | Yes | |
| summary | No | |
| cap_rate | No | |
| irr_note | No | |
| disclaimer | Yes | |
| method_url | Yes | |
| next_steps | No | |
| gross_yield | No | |
| inputs_used | No | |
| cash_on_cash | No | |
| irr_hold_years | No | |
| monthly_cash_flow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, closed-world), so the bar is lower. The description still adds real value: it discloses the override semantics for user inputs, that every input's source is shown, and the 'estimates only, not an appraisal' accuracy caveat.
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?
Four tight sentences, front-loaded with purpose, then inputs, override behavior, and the returned metrics plus disclaimer. No redundancy with the schema; every sentence carries a distinct point.
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 are already structured, yet the description still enumerates the key metrics. Combined with input modes, override behavior, and the estimates disclaimer, nothing an agent needs 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 80%, so baseline is 3. The description adds meaning beyond the schema by explaining the general override principle ('any numbers the user knows... override our estimates') and the address-or-facts input mode, which reframes the required/optional parameters usefully.
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?
Specific verb (analyze) plus a well-scoped resource (US residential property as a rental investment). An agent immediately knows the domain and output type. It does not, however, differentiate itself from the sibling deal_score, so it falls short of a 5.
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 tells the agent what to supply (an address or key facts, plus any known numbers) and that user-supplied values override estimates. But it gives no when-to-use/why-not guidance and never mentions the sibling deal_score, so usage vs. the alternative is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deal_scoreLook up a Deal ScoreARead-onlyInspect
Look up NestCalc's independent Deal Score for a for-sale listing, or list the current top deals (WINs) in a covered city. Scores are published for every listing, including low ones, and are never changed for anyone. Covered today: Cincinnati. For any other property, use analyze_rental. Not an appraisal.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | A city, to list its current WINs. | |
| limit | No | How many WINs to list for a city (default 10). | |
| address | No | Street address of a for-sale listing, with city or ZIP when known. | |
| listing_id | No | The listing's public id (its slug), e.g. 2268-rice-st. |
Output Schema
| Name | Required | Description |
|---|---|---|
| irr | No | |
| band | No | |
| city | No | |
| dscr | No | |
| wins | No | |
| status | No | |
| address | No | |
| message | No | |
| outcome | Yes | |
| spec_id | No | |
| summary | No | |
| cap_rate | No | |
| irr_note | No | |
| page_url | No | |
| ranked_of | No | |
| scored_at | No | |
| deal_score | No | |
| disclaimer | Yes | |
| ledger_ref | No | |
| listing_id | No | |
| method_url | Yes | |
| wins_total | No | |
| gross_yield | No | |
| inputs_used | No | |
| cash_on_cash | No | |
| rank_in_city | No | |
| score_version | No | |
| irr_hold_years | No | |
| monthly_cash_flow | No | |
| current_list_price | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description nevertheless adds meaningful non-structured context: scores are published for every listing including low ones and are never adjusted for anyone, which signals editorial independence and that low results are expected rather than errors. It stops short of describing return shape or latency, so not a 5.
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 short sentences, no padding, and the core capability is front-loaded ahead of the coverage caveat and the disclaimer. Every clause carries information the agent needs.
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 need no explanation, and the description supplies coverage scope, the sibling routing rule, and a disclaimer. The remaining gap is that all four parameters are optional yet the description never says which mode is default when no argument is supplied.
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 every parameter (city, limit, address, listing_id) is already documented in the schema, making 3 the baseline. The description hints at two distinct modes (single-listing lookup vs. city WIN listing) but never states that address/listing_id and city/limit are mutually exclusive alternatives, which is the one semantic detail the schema cannot convey.
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 and resource ('Look up NestCalc's independent Deal Score') plus a second action mode ('list the current top deals (WINs)'), and explicitly names the sibling analyze_rental as the alternative. An agent can distinguish deal_score from analyze_rental without opening either schema.
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?
Gives an explicit coverage constraint ('Covered today: Cincinnati'), a clear when-not rule ('For any other property, use analyze_rental'), and a scope exclusion ('Not an appraisal'). The routing decision to the sibling is fully specified rather than left to inference.
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.
2 tool updates
- First observed
analyze_rental - First observed
deal_score
Related MCP Connectors
Current US rental market data for AI agents: 1,500+ submarkets, monthly rent + vacancy + trends.
Real estate deal analysis from chat: rental underwriting, buy-box matching, deal library, docs.
Search real-estate deals, rank top areas, run rental/BRRRR/flip analysis, pull sold comps.
Property management AI: work orders, vendors, appliances, and triage for Claude and ChatGPT.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to analyze rental property deals using DoorVault IDEAL Scoring v2.0, including Section 8 FMR lookup, tax deduction checklists, and rental metrics calculations.MIT
- AlicenseNot gradedqualityDmaintenanceSubmarket-level US residential rental intelligence for AI agents. Search, compare, rank, and analyze rent data, trends, vacancy, affordability, and days on market across 1,000+ named submarkets in the 20+ largest US metros. ZIP-level and metro-level queries included. Always current, always expanding. Free tier available.1MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to operate property management systems via natural language, covering repair orders, owner info, payments, notices, and inspections. Features a full agentic workflow with human-in-the-loop and observability.MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to find vetted, daily-scored US residential real-estate investment deals with pay-per-request via USDC on Base.10 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.