Skip to main content
Glama

deal-analysis

Server Details

Underwrite real-estate deals: 0-100 scores, cash flow, DSCR, stress tests, max offer. Free, no key.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 6 of 6 tools scored. Lowest: 3.4/5.

Server CoherenceA
Disambiguation4/5

Most tools are clearly distinct: analyze_deal underwrites one strategy, best_use screens across strategies, solve_max_offer reverse-solves price, and list_strategies gives metadata. There is mild overlap between the two keyed data tools (pull_comps vs str_market_data) and between analyze_deal and best_use (both produce deal scores), but the primary purposes are distinguishable. The keyed-versus-free distinction is clearly documented across tools.

Naming Consistency4/5

All names follow an imperative verb_phrase pattern: analyze_deal, best_use, list_strategies, pull_comps, solve_max_offer, str_market_data. The convention is consistent (snake_case, imperative action first). Minor deviation: str_market_data uses an acronym prefix rather than a verb, and best_use is a phrase rather than verb_noun, but overall the pattern is predictable and readable.

Tool Count5/5

Six tools is a well-scoped surface for a real-estate analysis domain: three core analysis tools (underwrite, best-use screen, reverse-solve offer), one metadata tool, and two keyed data-fetching tools. Each tool earns its place, and the count maps cleanly onto the domain's distinct workflows without bloat.

Completeness4/5

The core analysis lifecycle is covered: underwrite a deal (analyze_deal), find best use (best_use), reverse-solve pricing (solve_max_offer), fetch comparable/market data (pull_comps, str_market_data), and discover strategy requirements (list_strategies). Minor gaps: there's no tool to compare multiple deals side-by-side or to batch underwrite several properties, and only STR market data is covered (no LTR rent estimate tool to complement it), but these are optional conveniences rather than blockers.

Available Tools

6 tools
analyze_dealAInspect

Underwrite a real-estate investment deal and get a 0-100 score, verdict, cash flow, cap rate, DSCR, stress tests, break-even thresholds, and a shareable report link. Strategies: ltr (long-term rental), str (short-term rental), brrr, multifamily, flip (fix-n-flip), newc (new construction). All rates/percents are FRACTIONS (0.0675 = 6.75%). Omitted operating inputs are filled with documented defaults and listed in assumptions.estimated_fields. Free, no key. Give the report_url to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsYesDeal inputs (camelCase engine keys — call list_strategies for each strategy's schema). Minimum: price + the income driver (marketRent / adr+occupancy / units / arv / land+build).
strategyYesInvestment strategy to analyze.
Behavior4/5

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

No annotations are provided, so the description carries the full behavioral disclosure burden. It discloses important behaviors: all rates are fractions not percents (a critical gotcha), omitted operating inputs are auto-filled with documented defaults that appear in assumptions.estimated_fields, and the tool is free with no API key required. It also discloses that a shareable report link is returned. This covers key behavioral traits well despite no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense and reasonably organized, front-loading the core purpose and outputs before detailing strategies and formatting gotchas. Every sentence earns its place. It's slightly long but each element (strategy list, fraction convention, defaults behavior, free/no-key, report_url instruction) adds necessity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a complex tool with nested inputs, six strategies, and no output schema, so the description carries substantial burden. It addresses the critical gaps: default-filling behavior, fraction formatting, minimum required inputs, and cross-referencing list_strategies for schemas. It could be more complete by briefly describing the report_url or mentioning what assumptions.estimated_fields contains, but it covers the essential completion points for an agent to use it effectively.

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 description adds significant value beyond the schema. It clarifies that rates/percents are fractions, specifies the minimum acceptable inputs ('price + the income driver' with enumerated driver options per strategy), and points users to list_strategies for the full per-strategy schemas. The schema describes the two parameters well (100% coverage), so the baseline is 3, but the description's fraction-handling and minimum-input guidance raise it above baseline.

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 uses a specific verb ('Underwrite') plus a clear resource ('real-estate investment deal') and enumerates the concrete outputs: 0-100 score, verdict, cash flow, cap rate, DSCR, stress tests, break-even thresholds, and a shareable report link. It distinguishes itself from siblings by listing all six strategies and their codes, clearly differentiating from list_strategies, pull_comps, solve_max_offer, str_market_data, and best_use.

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

Usage Guidelines4/5

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

The description clearly states the tool analyzes/deals with specific strategies (ltr, str, brrr, multifamily, flip, newc), and points to list_strategies as the reference for parameter schemas. It includes explicit instructions like 'call list_strategies for each strategy's schema' and 'Give the report_url to the user.' However, it doesn't explicitly state when NOT to use this tool versus siblings like solve_max_offer or pull_comps, though the strategy enumeration and output list imply clear scope.

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

best_useAInspect

Screen ONE property across every strategy the provided inputs qualify for and rank them by deal score — answers "what is the best use of this property?". Provide a superset of inputs (price, marketRent, adr, occupancy, rehabBudget, arv, units, …); strategies missing inputs are skipped with reasons. All rates/percents are FRACTIONS (0.0675 = 6.75%). Omitted operating inputs are filled with documented defaults and listed in assumptions.estimated_fields. Free, no key.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsYesOne property's inputs — a superset across strategies.
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses several behavioral traits: it ranks results by deal score, skips strategies with missing inputs with reasons, fills omitted operating inputs with documented defaults listed in assumptions.estimated_fields, and states it's free with no key. The fraction-format warning (0.0675 = 6.75%) is especially valuable. It could go further on determinism or output structure, but this is strong given no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured and front-loaded with the core question; every sentence carries behavioral value (ranking, skipping behavior, fraction format, defaults, cost). Slightly dense with the long field list, but efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the nested-input complexity and no output schema, the description addresses the key concerns: what qualifies strategies, how missing inputs are handled, how omitted fields are defaulted and reported, and cost/auth (free, no key). It does not describe pagination or result size limits, but for a strategy-screening tool this is reasonably complete.

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?

Schema coverage is 100% but only documents a single 'inputs' object parameter with a generic description ('one property's inputs'). The description adds substantial meaning by enumerating sample fields (price, marketRent, adr, occupancy, rehabBudget, arv, units) and clarifying that rates are fractions. This compensates well for the schema's shallow parameter documentation.

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?

Description clearly states the verb+resource ('Screen ONE property across every strategy') and the precise question it answers ('what is the best use of this property?'). It also distinguishes itself from siblings by comparing multiple strategies and ranking by deal score, versus analyze_deal (single deal) or list_strategies (enumeration).

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 explains when to use it ('what is the best use of this property?'), tells the user to provide a superset of inputs, and explains behavior for missing inputs ('strategies missing inputs are skipped with reasons'). This differentiates from siblings that screen a single strategy.

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

list_strategiesAInspect

List every supported strategy with its required and optional input fields. Call this first when unsure which inputs a strategy needs. Free, no key.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

No annotations are provided, so the description carries the full behavioral reporting burden. It discloses the tool is 'Free, no key' (no authentication required) which is useful behavioral context. Since this is a read-only listing operation with zero parameters, there is limited behavioral surface to disclose; the description covers the key aspects (no cost, no auth, no inputs). It could have noted the output format, but for a catalog/listing tool this is reasonably complete.

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?

Three short sentences with zero wasted words. It front-loads the core action, then adds the usage trigger ('call this first when unsure'), then notes the free/no-key property. Every sentence earns its place and contributes distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

As a zero-parameter listing tool with no output schema, the description is well-rounded. It explains what it returns (strategy list with required/optional fields), when to use it, and its cost/auth profile. The only minor gap is not describing the return structure (e.g., whether strategies are returned as a flat list or grouped), but given no output schema exists, this is a modest omission rather than a critical gap.

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 tool has zero parameters, so there is nothing to document. Per the rubric, 0 params warrants a baseline of 4. The description effectively communicates that the tool takes no inputs and serves as a self-contained reference, which is meaningful given no schema required. No parameter ambiguity exists to resolve.

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 'lists every supported strategy with its required and optional input fields,' which is a specific, concrete purpose. It distinguishes itself from sibling strategy-execution tools (analyze_deal, best_use, pull_comps, solve_max_offer, str_market_data) which are operations on strategies rather than metadata about them. The verb+resource+scope structure ('list... strategy... with fields') is exemplary.

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 provides explicit usage guidance: 'Call this first when unsure which inputs a strategy needs.' This gives the agent a clear decision rule for when to invoke this tool versus alternatives, positioning it as a discovery/prerequisite tool before strategy execution. The 'Call this first' phrasing is particularly helpful.

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

pull_compsAInspect

Pull REAL sale + rental comparables and market stats for a subject address from licensed data. Requires a REIzer API key (Investor plan or higher) sent as an X-API-Key header on the MCP connection; counts against the account's monthly property-comp allowance. Returns comparable sales, rental comps, and ZIP market stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
zipNo
cityYes
stateYesTwo-letter state, e.g. "MN".
streetYesStreet address incl. house number, e.g. "812 7th St SE".
rentCountNoRental comps to return (default 10).
saleCountNoComparable sales to return (default 10).
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It does add genuine value: discloses the API key/auth requirement, notes it consumes a monthly property-comp allowance (a cost/quota implication), and clarifies it returns licensed data. This is notably more transparent than an empty description would be; it surfaces cost and entitlement constraints the agent would otherwise not know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, dense with useful information and no filler. The key facts (what data, auth requirement, quota impact) are front-loaded. Could arguably be split for readability, but it's efficient and earns each clause.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a moderately complex tool with 6 parameters, no output schema, and no annotations. The description meaningfully compensates: it names return types (sale comps, rental comps, ZIP stats), covers the auth/entitlement requirement, and flags the quota cost. For a data-fetching tool without an output schema, this is reasonably complete, though it could note error cases (e.g., invalid address, quota exhausted).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, with 3 params (zip, rentCount, saleCount) lacking descriptions while 3 (street, city, state) have them. The description top-line mentions the tool returns rental and sale comps and market stats, which loosely maps to the sales/rental count parameters, but doesn't add defaults or format details beyond schema. It adds some context but doesn't fully compensate for the uncovered parameters (particularly zip, which is unclear about format).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool pulls 'REAL sale + rental comparables and market stats for a subject address from licensed data.' The verb 'pull' plus the specific resource (sale/rental comps, ZIP market stats) makes the purpose clear. It doesn't explicitly distinguish from siblings like str_market_data or analyze_deal, but the scope (comparables via licensed data) is fairly distinctive.

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

Usage Guidelines4/5

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

The description gives clear context: requires a REIzer API key (Investor plan or higher), counts against monthly property-comp allowance, and returns the data types. It doesn't explicitly state when-not-to-use or name alternatives, but the resource prerequisites and constraints are clearer than typical. Sibling tools like analyze_deal and str_market_data are not referenced as alternatives.

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

solve_max_offerAInspect

Reverse-solve the Maximum Allowable Offer: the highest purchase price that still meets every return target (defaults: CoC 8%, DSCR 1.20, cash flow ≥ 0; flip: 10% after-tax margin + 15% annualized ROI). Returns the MAO, the binding constraint, and per-target price ceilings. Strategies: ltr, str, brrr, multifamily, flip. Provide the deal inputs WITHOUT committing to a price (use arv or an asking price as reference). Override targets via the targets object. All rates/percents are FRACTIONS (0.0675 = 6.75%). Omitted operating inputs are filled with documented defaults and listed in assumptions.estimated_fields. Free, no key.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputsYesDeal inputs (price optional — arv/asking anchors the defaults).
targetsNoOptional target overrides, e.g. {"cocReturn": 0.10, "dscr": 1.25}.
strategyYes
Behavior3/5

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

No annotations are provided, so the description carries the full burden and mostly delivers: it discloses output structure, defaults for targets (CoC 8%, DSCR 1.20, cash flow ≥ 0, flip margins), fraction format requirement, omitted-input defaults, and free/no-key status. However, it doesn't disclose whether inputs are validated, what happens on infeasible targets, or any side effects/limits. Notably it does describe the estimated_fields listing in assumptions, adding real behavioral context beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but packed with necessary operational detail — defaults, strategies, input handling, fraction format, output contents. It front-loads the primary purpose and returns the important info efficiently. Slightly long but every sentence carries information value, and no filler is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with nested objects (inputs), five strategies, default targets, and no output schema, the description covers the essential ground well. It explains what's returned, how inputs anchor price, how to override targets, and the fraction convention. Given no output schema exists, it would benefit from a bit more on the output/return shape and edge cases (e.g., infeasible targets), but it is largely complete for practical use.

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?

Schema coverage is 67% — the targets and strategy params have descriptions, but the inputs object only says 'Deal inputs (price optional — arv/asking anchors the defaults)'. The description substantially compensates: it explains strategy enum choices, that price is optional, target override format, and the fraction convention. For the three parameters, the description adds meaning beyond the raw schema, especially for the fractional-rate convention and override syntax.

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 this tool reverse-solves the Maximum Allowable Offer — the highest purchase price meeting return targets. It names the returned outputs (MAO, binding constraint, per-target ceilings) and lists the five strategies, which distinguishes it from the sibling analyze_deal (which presumably analyzes at a given price) and best_use.

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 instructs to provide deal inputs WITHOUT committing to a price, using arv or asking price as reference — clear when-to-use guidance that differentiates it from analyze_deal. It also explains target overrides, default rate/percent fraction formatting, omitted-input defaults, and 'free, no key' availability. Though it doesn't name the specific alternative tool for priced analysis, the guidance is explicit enough.

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

str_market_dataAInspect

Short-term-rental market data for a location from licensed data: nearby STR listings with ADR / occupancy / revenue quartiles. Requires a REIzer API key (Investor plan or higher) sent as an X-API-Key header; counts against the account's monthly STR-comp allowance. Needs coordinates — geocode the address first.

ParametersJSON Schema
NameRequiredDescriptionDefault
bathsNo
guestsNo
bedroomsNoBedrooms filter (default 2).
latitudeYes
longitudeYes
Behavior4/5

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

Despite no annotations, the description discloses that it counts against the account's monthly STR-comp allowance and requires a licensed data source and specific API key plan. This is strong behavioral context for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A compact 3-sentence description that front-loads the core purpose, then adds key usage constraints. Every sentence carries information; no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-param tool with low schema coverage and no output schema or annotations, the description covers the purpose, auth requirements, and data source but leaves gaps: no return format, no clarity on what the bedrooms/baths/guests filters do beyond the single default noted, and no mention of how many results are returned or how to interpret quartiles.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20% (only bedrooms has a description, and even that is minimal: 'Bedrooms filter (default 2)'). The description explains latitude/longitude as geocode prerequisites, but baths and guests get no elaboration at all. The description does explain the coordinate parameters' semantic role ('Needs coordinates — geocode the address first'), which adds value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb+resource: 'Short-term-rental market data for a location' returning ADR/occupancy/revenue quartiles. It distinguishes itself from siblings like pull_comps and analyze_deal by being location-focused market data, though it doesn't explicitly name alternatives.

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

Usage Guidelines4/5

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

Explicitly states it 'Requires a REIzer API key (Investor plan or higher)' and that it 'Needs coordinates — geocode the address first.' This gives clear prerequisites but doesn't discuss when to prefer this over sibling tools like pull_comps for comps.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Multifamily real estate deal analysis — analyze deals, score properties, calculate max offer prices, and look up market data. Four tools for underwriting 2-200 unit apartment properties.
    Last updated
    4
    46
    1
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    A headless MCP connector that lets you underwrite commercial and multifamily deals inside a Claude chat, providing exact arithmetic for NOI, valuation, debt sizing, DSCR, and returns.
    Last updated
  • A
    license
    -
    quality
    D
    maintenance
    Enables 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.
    Last updated
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources