Skip to main content
Glama

Alugar ou Comprar — MCP Server

Server Details

Motor financeiro determinístico: simula comprar vs alugar imóvel.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

13 tools
calculate_cetCInspect

Calcula o CET (Custo Efetivo Total) anual de um financiamento imobiliário, incluindo juros, seguros MIP/DFI e taxas administrativas. Aceita os mesmos parâmetros da simulação comprar vs alugar.

ParametersJSON Schema
NameRequiredDescriptionDefault
cetPctNoCET (Custo Efetivo Total) anual informado (%)
itbiPctNoITBI (% do valor do imóvel)
prazoAnosNoPrazo do financiamento em anos
seguroPctNoSeguro anual do financiamento (% do valor do imóvel)
trHistoryNoSérie mensal de TR (% a.m.), ex: [0.0052, 0.0048, ...]
entradaPctNoPercentual de entrada (%)
inflacaoPctNoInflação anual esperada (%)
trMensalPctNoTaxa mensal de referência TR (%) para correção do saldo devedor
valorImovelYesValor do imóvel (R$)
iptuAnualPctNoIPTU anual (% do valor do imóvel)
aluguelMensalYesAluguel mensal inicial (R$)
fgtsDisponivelNoSaldo do FGTS disponível para entrada ou amortização (R$)
rentIncreasePctNoReajuste anual do aluguel (%)
spreadOverTRPctNoSpread anual sobre a TR quando indexer = TR_PLUS_SPREAD (%)
financingIndexerNoIndexador do financiamento: FIXA, TR ou TR_PLUS_SPREAD
insuranceMonthlyNoSeguro MIP/DFI mensal fixo em R$
amortizationSystemNoSistema de amortização (PRICE ou SAC)
taxaValorizacaoPctNoTaxa anual de valorização do imóvel (%)
custosManutencaoPctNoCustos anuais de manutenção (% do valor do imóvel)
custoOportunidadePctNoRendimento anual alternativo do capital (%)
tempoPermanenciaAnosNoHorizonte de permanência em anos
amortizacaoExtraMensalNoAmortização extra mensal (R$)
taxasTransacaoVendaPctNoTotal de taxas de transação de venda (% do valor do imóvel)
taxasTransacaoCompraPctNoTotal de taxas de transação de compra (% do valor do imóvel)
administrativeFeeMonthlyNoTaxa administrativa fixa mensal em R$
taxaAdministrativaMensalNoTaxa administrativa mensal do banco (R$)
rendaExtraMensalInvestidaNoRenda extra mensal investida pelo comprador (R$)
condominioMensalPctOfValueNoCondomínio mensal (% do valor do imóvel)
taxaFinanciamentoNominalPctNoTaxa de juros nominal anual do financiamento (%)
amortizacaoExtraordinariaMensalNoAmortização extraordinária mensal (R$)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states what is calculated but does not mention return format, side effects, prerequisites, or whether it is read-only. For a calculation tool, this is acceptable in terms of side effects, but the absence of any output description leaves the agent guessing about the result structure.

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 core purpose and a brief inclusion list. It wastes no words and is appropriately concise for a calculator tool.

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

Completeness2/5

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

Given the 30-parameter complexity and no output schema or annotations, this description is too thin. It does not explain what the tool returns, any dependencies between parameters, or how the CET calculation differs from other calculations. The completeness is low; the description only covers the basic purpose.

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 description coverage is 100%, so all 30 parameters are already documented. The description adds no specific parameter details beyond the general note about accepting same parameters as buy vs rent, which is not additional meaning for individual params. Baseline 3 applies because the schema handles parameter semantics adequately.

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 names a specific verb ('Calcula') and resource ('CET anual de um financiamento imobiliário'), listing included components (juros, seguros MIP/DFI, taxas administrativas). It is clear what the tool computes, though it does not explicitly contrast with sibling tools like simulate_buy_vs_rent, so it loses a point for not differentiating itself.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus the many siblings. The only hint is 'Aceita os mesmos parâmetros da simulação comprar vs alugar', which implies a relationship but does not state conditions for choosing this tool over alternatives. No exclusions or when-not-to-use advice.

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

check_affordabilityAInspect

Calcula o valor máximo de imóvel que a renda familiar consegue financiar, considerando regras de comprometimento de renda, entrada e custos de transação.

ParametersJSON Schema
NameRequiredDescriptionDefault
itbiPctNoITBI (% do valor do imóvel)
prazoAnosNoPrazo do financiamento em anos
entradaPctNoPercentual de entrada (%)
taxaJurosAnualPctNoTaxa de juros anual (%)
custosTransacaoPctNoCustos totais de transação (% do valor do imóvel)
rendaLiquidaMensalYes
comprometimentoExistenteMensalNo

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are present, so the description must carry the behavioral burden. It transparently describes the calculation and the factors considered, but it does not state default assumptions for omitted optional parameters, the output format, or explicitly confirm it is side-effect-free beyond the verb 'calcula'.

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?

One sentence, direct, and front-loaded with the main action. No filler, no redundancy, and no repetition of the tool name.

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?

With no output schema and seven parameters, the description is adequate but not rich. An agent learns the purpose and scope, but not the shape of the returned value or how missing optional parameters are handled—both meaningful gaps for a calculation tool in a larger simulation flow.

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?

The input schema already documents all parameters with descriptions, and schema coverage is around 71%. The description adds only conceptual grouping of parameters into the calculation context, which is marginal value beyond the schema.

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 names a specific calculation—'valor máximo de imóvel'—and the constraints that define it (comprometimento de renda, entrada, custos de transação). This is clearly distinct from siblings such as simulate_buy_vs_rent or calculate_cet.

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 purpose statement gives clear context: use this when the agent needs the maximum property price a family income can finance. It does not explicitly name alternatives or when-not conditions, but the specificity of the description implies the appropriate use case.

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

compare_amortization_strategiesAInspect

Compara 3 estratégias de uso de uma renda extra mensal: A) pagar apenas a parcela do financiamento, B) investir a renda extra, C) amortizar extraordinariamente o financiamento. Retorna o patrimônio líquido final de cada estratégia, o breakeven e uma recomendação.

ParametersJSON Schema
NameRequiredDescriptionDefault
itbiPctNoITBI (% do valor do imóvel)
prazoAnosNoPrazo do financiamento em anos
entradaPctNoPercentual de entrada (%)
valorImovelYesValor do imóvel (R$)
iptuAnualPctNoIPTU anual (% do valor do imóvel)
aluguelMensalYesAluguel mensal inicial (R$)
rentIncreasePctNoReajuste anual do aluguel (%)
rendaExtraMensalYesRenda extra mensal disponível para amortização ou investimento (R$)
amortizationSystemNoSistema de amortização (PRICE ou SAC)
taxaValorizacaoPctNoTaxa anual de valorização do imóvel (%)
custoOportunidadePctNoRendimento anual alternativo do capital (%)
tempoPermanenciaAnosNoHorizonte de permanência em anos
taxasTransacaoVendaPctNoTotal de taxas de transação de venda (% do valor do imóvel)
taxasTransacaoCompraPctNoTotal de taxas de transação de compra (% do valor do imóvel)
taxaFinanciamentoNominalPctNoTaxa de juros nominal anual do financiamento (%)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does clarify what the tool compares and returns, but it does not disclose underlying assumptions, how the strategies are modeled, or any limitations; the agent only learns that this is an analysis/comparison tool rather than a mutating operation.

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 a single, information-dense sentence that front-loads the main action, enumerates the three strategies clearly, and states the outputs. Every part earns its place with 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?

Given 15 parameters, no annotations, and no output schema, the description gives a useful overview but remains thin for the tool's complexity. It does not explain what 'breakeven' means, which parameters drive each strategy, or the expected output format, so an agent has to infer significant context from parameter names alone.

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 description coverage is 100%, so the parameters are already well documented. The description adds little parameter-level meaning beyond mentioning 'renda extra mensal' and 'amortizar', which is consistent with the high baseline but does not elevate it.

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 states a specific verb ('Compara') and exactly which three strategies are compared, listing them as A, B, and C. It also names concrete outputs (final net worth, breakeven, recommendation), which clearly distinguishes this from sibling tools like simulate_buy_vs_rent and sensitivity_analysis.

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

Usage Guidelines3/5

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

The intended context is implied: use when deciding what to do with a monthly extra income in a financing scenario. However, the description does not explicitly state when to prefer this tool over alternatives or when not to use it, leaving the routing decision to inference.

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

get_default_parametersAInspect

Retorna o conjunto ativo de parâmetros padrão brasileiros (taxas, prazos, custos) usados pelo site e pelas simulações.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
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 of behavioral disclosure. It does explain that the tool returns the 'active' default parameters and lists their categories, but it does not mention output format, potential side effects, or whether data might be cached or dynamically sourced.

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 a single, compact sentence that efficiently conveys the tool's purpose and content. There is no redundancy or filler, and the key information is immediately accessible.

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 parameterless getter, the description is reasonably complete: it identifies the returned data, its categories, and its usage context. Since there is no output schema, a bit more detail about the exact structure or format of the returned parameters would improve completeness, but the low complexity makes the current description adequate.

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 parameter-specific semantics are not needed. The schema confirms an empty object with additionalProperties false, and the description adds no unnecessary parameter commentary, which is appropriate here.

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 verb 'Retorna' and the resource 'conjunto ativo de parâmetros padrão brasileiros', specifying the content categories (taxas, prazos, custos) and its intended use by the site and simulations. This distinguishes it from the sibling calculation/comparison tools.

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

Usage Guidelines3/5

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

The description implies the tool is relevant when defaults are needed for site behavior or simulations, but it does not explicitly state when to use it instead of alternatives like get_municipio_rates or get_site_info. No exclusions or direct sibling comparisons are provided.

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

get_municipio_ratesAInspect

Busca alíquotas de ITBI, IPTU, escritura e registro de um município brasileiro. Passe municipioId para busca exata, ou uf/nome para filtrar. Sem filtro retorna a lista completa.

ParametersJSON Schema
NameRequiredDescriptionDefault
ufNoSigla da UF (ex: SP)
nomeNoNome do município (busca parcial, ex: São Paulo)
municipioIdNoID do município (ex: sao-paulo-sp)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral disclosure burden. It discloses the exact-match vs filtering behavior and the unfiltered full-list return, which is useful. However, it does not mention response format, match-count behavior, or edge cases such as no results or ambiguous matches.

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?

Two sentences with no filler: the resource is front-loaded and the usage rules are compactly sequenced. Every clause contributes either the purpose or the parameter behavior.

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 simple lookup tool with three optional, fully described parameters, the description covers purpose, search modes, and unfiltered behavior. Since there is no output schema, it could describe the response shape or error handling more explicitly, but the listed rate types imply the return content.

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%, so the baseline is 3. The description adds value by positioning municipioId as an exact lookup and uf/nome as filters, and by clarifying that omitting all filters returns the full list. It does not discuss parameter combinations or validation details.

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 begins with a specific verb and resource: 'Busca alíquotas de ITBI, IPTU, escritura e registro de um município brasileiro.' This clearly distinguishes the tool as a municipal rates lookup from the sibling simulation and calculation tools.

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 explicit usage context: 'Passe municipioId para busca exata, ou uf/nome para filtrar. Sem filtro retorna a lista completa.' This clarifies how to choose among parameters, though it does not explicitly contrast with sibling tools or state when not to use this tool.

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

get_rental_yieldAInspect

Calcula o rental yield (retorno anual e mensal) a partir do valor do imóvel e do aluguel mensal. Interpreta o indicador: < 5% a.a. = aluguel relativamente barato; 5–7% = intermediário; 7–9% = aluguel caro; > 9% = aluguel muito caro. Indicador inicial, não é uma regra absoluta.

ParametersJSON Schema
NameRequiredDescriptionDefault
valorImovelYesValor do imóvel (R$)
aluguelMensalYesAluguel mensal (R$)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does well: it states that both annual and monthly returns are calculated, provides band-based interpretation, and adds the important caveat that this is an initial indicator, not an absolute rule. Only the exact output formatting is left unspecified.

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 compact and front-loaded: the core computation is stated first, followed by interpretation thresholds and a caveat. Every sentence contributes information; there is no repetition of schema data.

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 simple two-parameter calculator with no output schema and no annotations, the description covers the inputs, the calculation type (annual and monthly yield), interpretation bands, and a caveat. It does not explicitly describe the return format, but the tool's simplicity makes this a minor omission.

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 description coverage is 100%, and the description adds the conceptual link that the parameters are used to compute rental yield and the interpretation thresholds. It does not add new format or constraint details beyond the schema, so the baseline 3 is appropriate.

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 opens with a specific verb ('Calcula') and a precise object ('rental yield') tied to two named inputs: property value and monthly rent. Rental yield is a distinct concept among the siblings such as max_price_from_rent or calculate_cet, so the tool is easy to tell apart.

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 makes the usage context clear by naming the required inputs and providing interpretation thresholds for the resulting indicator. It does not explicitly mention alternatives or when not to use it, but the calculation scenario is unambiguous.

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

get_site_infoAInspect

Retorna informações sobre o site É melhor alugar ou comprar um imóvel e como acessar os painéis interativos.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. 'Retorna' makes clear this is a read-only information retrieval tool, and the description states what kind of output to expect. It does not mention authentication or rate limits, but for a zero-parameter metadata tool this risk is minimal.

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?

A single, well-structured sentence that front-loads the action, states the resource, and adds the panel-access detail. There is no redundant wording or unnecessary fluff.

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 simple zero-parameter informational tool, the description provides adequate context about what is returned: site information and how to access interactive panels. There is no output schema, so a bit more detail on the exact format or scope of the information could be useful, but it is not essential at this complexity level.

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 the schema fully covers parameter semantics. The description does not need to add parameter details, and the baseline for a zero-parameter tool applies.

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 identifies the tool's purpose: returning information about the site and how to access interactive panels. It is distinct from the calculation-focused sibling tools, although it does not explicitly name any sibling.

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

Usage Guidelines3/5

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

Usage is implied: the tool is for retrieving site information and panel access instructions. However, there is no explicit guidance on when to choose this tool over alternatives or when not to use it.

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

max_price_from_rentAInspect

Calcula o preço máximo de imóvel compatível com um aluguel mensal máximo informado. Considera parcela de financiamento (PRICE), condomínio, IPTU, manutenção, seguros e custo de oportunidade da entrada. Retorna o preço máximo e o custo mensal estimado nos cenários atual, otimista (taxa -2%) e pessimista (taxa +2%).

ParametersJSON Schema
NameRequiredDescriptionDefault
prazoAnosNoPrazo do financiamento em anos
seguroPctNoSeguro anual do imóvel (% do valor do imóvel)
entradaPctNoPercentual de entrada (%)
iptuAnualPctNoIPTU anual (% do valor do imóvel)
seguroMipDfiPctNoSeguro MIP/DFI anual (% do saldo devedor)
taxaJurosAnualPctNoTaxa de juros anual (%)
amortizationSystemNoSistema de amortização (PRICE ou SAC)
aluguelMensalMaximoYesAluguel mensal máximo que o usuário aceita pagar (R$)
condominioMensalPctNoCondomínio mensal (% do valor do imóvel)
custosManutencaoPctNoCustos anuais de manutenção (% do valor do imóvel)
custoOportunidadePctNoRendimento anual alternativo do capital (%)

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose considered cost components and the three scenario outputs. However, it mentions 'parcela de financiamento (PRICE)' while the schema's `amortizationSystem` parameter also supports SAC, inaccurately narrowing the described behavior and omitting a configurable option.

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 three compact sentences with no redundant information. The primary purpose is front-loaded, and each sentence adds a necessary layer: the calculation goal, the inputs considered, and the output scenarios.

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 tool's complexity (11 parameters, no output schema), the description provides a solid high-level contract: purpose, key inputs, and the returned scenarios. It omits default-value assumptions and the SAC option, but the schema handles parameter definitions, so the description remains sufficient for correct invocation.

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 description coverage is 100%, so the individual parameters are already well documented. The description only restates the cost categories considered (condomínio, IPTU, manutenção, seguros, etc.) without adding new semantic detail beyond the schema.

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's specific verb ('Calcula') and resource ('preço máximo de imóvel compatível com um aluguel mensal máximo informado'). It also explains what the tool considers and returns, making it easily distinguishable from siblings like check_affordability or simulate_buy_vs_rent.

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

Usage Guidelines3/5

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

Usage context is implied through the phrase 'compatível com um aluguel mensal máximo informado', but there is no explicit statement of when to use this tool versus alternatives, nor any exclusions or examples. The guidance is adequate but leaves the agent to infer the intended scenario.

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

recommendation_contextualAInspect

Gera uma recomendação contextual entre alugar e comprar, considerando horizonte de permanência e sensibilidade aos parâmetros de valorização do imóvel e rendimento do investimento alternativo. Retorna horizonte de corte (breakeven patrimonial), veredito ano a ano, thresholds de sensibilidade e um texto de recomendação pronto para o usuário.

ParametersJSON Schema
NameRequiredDescriptionDefault
cetPctNoCET (Custo Efetivo Total) anual informado (%)
itbiPctNoITBI (% do valor do imóvel)
prazoAnosNoPrazo do financiamento em anos
seguroPctNoSeguro anual do financiamento (% do valor do imóvel)
trHistoryNoSérie mensal de TR (% a.m.), ex: [0.0052, 0.0048, ...]
entradaPctNoPercentual de entrada (%)
inflacaoPctNoInflação anual esperada (%)
trMensalPctNoTaxa mensal de referência TR (%) para correção do saldo devedor
valorImovelYesValor do imóvel (R$)
iptuAnualPctNoIPTU anual (% do valor do imóvel)
aluguelMensalYesAluguel mensal inicial (R$)
fgtsDisponivelNoSaldo do FGTS disponível para entrada ou amortização (R$)
rentIncreasePctNoReajuste anual do aluguel (%)
spreadOverTRPctNoSpread anual sobre a TR quando indexer = TR_PLUS_SPREAD (%)
financingIndexerNoIndexador do financiamento: FIXA, TR ou TR_PLUS_SPREAD
insuranceMonthlyNoSeguro MIP/DFI mensal fixo em R$
amortizationSystemNoSistema de amortização (PRICE ou SAC)
taxaValorizacaoPctNoTaxa anual de valorização do imóvel (%)
custosManutencaoPctNoCustos anuais de manutenção (% do valor do imóvel)
custoOportunidadePctNoRendimento anual alternativo do capital (%)
tempoPermanenciaAnosNoHorizonte de permanência em anos
amortizacaoExtraMensalNoAmortização extra mensal (R$)
taxasTransacaoVendaPctNoTotal de taxas de transação de venda (% do valor do imóvel)
taxasTransacaoCompraPctNoTotal de taxas de transação de compra (% do valor do imóvel)
administrativeFeeMonthlyNoTaxa administrativa fixa mensal em R$
taxaAdministrativaMensalNoTaxa administrativa mensal do banco (R$)
rendaExtraMensalInvestidaNoRenda extra mensal investida pelo comprador (R$)
condominioMensalPctOfValueNoCondomínio mensal (% do valor do imóvel)
taxaFinanciamentoNominalPctNoTaxa de juros nominal anual do financiamento (%)
amortizacaoExtraordinariaMensalNoAmortização extraordinária mensal (R$)

Output Schema

ParametersJSON Schema
NameRequiredDescription
textoRecomendacaoYesTexto formatado com horizontes de corte e thresholds de sensibilidade
horizonteCorteAnosYesNúmero de anos até o breakeven patrimonial (ou null se não houver)
thresholdsSensibilidadeYes
recomendacaoPorHorizonteYesVeredito ano a ano para cada horizonte de permanência

TDQS

A3.6/5.0
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 of behavioral disclosure. It usefully states that the tool returns a breakeven horizon, year-by-year verdict, sensitivity thresholds, and a recommendation text. It does not explicitly state whether the operation has side effects or is read-only, though the wording strongly suggests a pure computation.

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 concise, front-loaded sentences that state the purpose and the exact outputs with no filler. It covers substantial content despite the tool's high parameter count, and every clause earns its place.

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 a rich 100%-described schema, an output schema, and no annotations, the description supplies the missing conceptual framing: a contextual recommendation tool with breakeven and sensitivity outputs. It could add sibling differentiation, but that gap is covered under usage guidelines. Overall, an agent has enough to understand the tool's role and expectations.

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?

The input schema has 100% parameter description coverage, so the description does not need to document individual parameters. It adds conceptual value by identifying horizon, property appreciation, and alternative investment return as sensitivity drivers. It provides no additional syntax, defaults, or parameter relationship details beyond the schema.

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 names a specific verb (Gera), resource (recomendação contextual entre alugar e comprar), and enumerates concrete outputs like breakeven horizon, year-by-year verdict, and sensitivity thresholds. However, it does not explicitly differentiate itself from close siblings like simulate_buy_vs_rent or sensitivity_analysis.

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

Usage Guidelines3/5

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

The description implies use when a contextual buy-vs-rent recommendation is needed, especially when horizon and sensitivity to appreciation and opportunity cost matter. It gives no explicit when-to-use or when-not-to-use guidance and never references sibling tools, so the selection 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.

sensitivity_analysisAInspect

Executa uma análise de sensibilidade cruzando taxas de valorização do imóvel com rendimentos do investimento alternativo. Retorna uma matriz onde cada célula indica se compensa comprar (C) ou alugar (A), além do ano de breakeven patrimonial. Reusa o mesmo motor de simulação de simulate_buy_vs_rent.

ParametersJSON Schema
NameRequiredDescriptionDefault
cetPctNoCET (Custo Efetivo Total) anual informado (%)
itbiPctNoITBI (% do valor do imóvel)
prazoAnosNoPrazo do financiamento em anos
seguroPctNoSeguro anual do financiamento (% do valor do imóvel)
trHistoryNoSérie mensal de TR (% a.m.), ex: [0.0052, 0.0048, ...]
entradaPctNoPercentual de entrada (%)
inflacaoPctNoInflação anual esperada (%)
trMensalPctNoTaxa mensal de referência TR (%) para correção do saldo devedor
valorImovelYesValor do imóvel (R$)
iptuAnualPctNoIPTU anual (% do valor do imóvel)
aluguelMensalYesAluguel mensal inicial (R$)
fgtsDisponivelNoSaldo do FGTS disponível para entrada ou amortização (R$)
rentIncreasePctNoReajuste anual do aluguel (%)
spreadOverTRPctNoSpread anual sobre a TR quando indexer = TR_PLUS_SPREAD (%)
financingIndexerNoIndexador do financiamento: FIXA, TR ou TR_PLUS_SPREAD
insuranceMonthlyNoSeguro MIP/DFI mensal fixo em R$
appreciationRatesNoValores de valorização anual do imóvel (%) para as linhas da matriz
amortizationSystemNoSistema de amortização (PRICE ou SAC)
taxaValorizacaoPctNoTaxa anual de valorização do imóvel (%)
custosManutencaoPctNoCustos anuais de manutenção (% do valor do imóvel)
custoOportunidadePctNoRendimento anual alternativo do capital (%)
tempoPermanenciaAnosNoHorizonte de permanência em anos
investmentReturnRatesNoValores de rendimento anual do investimento alternativo (%) para as colunas da matriz
amortizacaoExtraMensalNoAmortização extra mensal (R$)
taxasTransacaoVendaPctNoTotal de taxas de transação de venda (% do valor do imóvel)
taxasTransacaoCompraPctNoTotal de taxas de transação de compra (% do valor do imóvel)
administrativeFeeMonthlyNoTaxa administrativa fixa mensal em R$
taxaAdministrativaMensalNoTaxa administrativa mensal do banco (R$)
rendaExtraMensalInvestidaNoRenda extra mensal investida pelo comprador (R$)
condominioMensalPctOfValueNoCondomínio mensal (% do valor do imóvel)
taxaFinanciamentoNominalPctNoTaxa de juros nominal anual do financiamento (%)
amortizacaoExtraordinariaMensalNoAmortização extraordinária mensal (R$)

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses the output as a matrix with C/Alugar labels and breakeven year, and it reveals that the calculation reuses simulate_buy_vs_rent's simulation engine. It does not mention side effects, but the compute-and-return nature is reasonably clear.

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?

Two dense sentences: the first states the core operation and output, the second adds the engine reuse. No filler or repeated schema 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?

For a 32-parameter tool without an output schema, the description is on the shorter side, but it covers the essential decision output and the relationship to simulate_buy_vs_rent. The 100% schema coverage compensates for the parameters; the main missing information is explicit guidance on the required appreciation/investment arrays and matrix orientation.

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 description coverage is 100%, so the baseline is 3. The description adds semantic value by linking the two matrix axes to appreciation rates and alternative returns and by explaining what each cell means, which is not fully captured by the individual parameter descriptions.

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 opens with a specific verb and resource ('Executa uma análise de sensibilidade'), names the two crossed dimensions, and states the matrix output with C/A decisions and breakeven year. It is easy to distinguish from simulate_buy_vs_rent because it frames the multi-scenario sweep rather than a single scenario.

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 crossing of property appreciation rates with alternative investment returns clearly implies the tool is for sweeping over those two dimensions. The final sentence ties it to simulate_buy_vs_rent's engine, giving the agent context, though it does not explicitly say 'use this instead of simulate_buy_vs_rent' or list exclusions.

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

simulate_buy_vs_rentBInspect

Executa a simulação determinística "comprar vs alugar" para um imóvel. Aceita parâmetros simples ou múltiplos cenários (pessimista/base/otimista) via campo "cenarios". Retorna veredito, ano e mês de breakeven, vantagem patrimonial final, custos do primeiro mês, snapshots anuais com patrimônio comprador e locatário, e um link para o painel interativo em https://alugar-ou-comprar.vercel.app.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the transparency burden and does disclose meaningful behavior: the simulation is deterministic and it enumerates returned verdict, breakeven year/month, asset advantage, first-month costs, annual snapshots, and a dashboard link. However, it is silent on assumptions, defaults, and limitations, and its claim of accepting a 'cenarios' field is unsupported by the empty input 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 a single dense sentence that front-loads the core purpose before covering accepted input modes and return values. It contains no obvious filler, though the long output enumeration could be structured as a list for easier parsing.

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

Completeness2/5

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

No output schema or annotations exist, so the description must carry input, output, and usage context. It lists outputs well but fails to document the actual callable parameters, the scenario format, or when to choose this over related siblings such as sensitivity_analysis and simulate_tr_evolution, leaving a material invocation gap.

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

Parameters2/5

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

The description adds qualitative parameter information — 'parâmetros simples', multiple scenarios (pessimista/base/otimista), and a field named 'cenarios' — but the input schema declares zero properties. This mismatch makes it impossible for an agent to construct a valid invocation from the provided definition, and no types, shapes, or required fields are specified.

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 opens with a specific action and object: 'Executa a simulação determinística comprar vs alugar para um imóvel.' It clearly conveys the resource and highlights the deterministic nature, distinguishing it from generic simulation tools. It does not explicitly name alternatives, but the purpose is unambiguous.

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

Usage Guidelines3/5

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

The intended use is implied by the tool name and the opening sentence: use it to model buy-versus-rent outcomes. However, there is no explicit 'use when' or 'do not use when' guidance, and no reference to nearby siblings like sensitivity_analysis, so the agent must infer selection criteria.

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

simulate_tr_evolutionAInspect

Retorna uma série mensal projetada de TR (Taxa Referencial) para uso em financiamentos indexados. Modo 'historical' usa os dados de data/tr_historical.json; modo 'projected' usa TR base constante.

ParametersJSON Schema
NameRequiredDescriptionDefault
baseTRNoTR base mensal projetada (% a.m.)
monthsYesQuantidade de meses da série
scenarioNoCenário da série: historical ou projected

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral disclosure burden and does well by explaining that 'historical' reads from data/tr_historical.json while 'projected' uses a constant base TR. It does not cover edge cases like default scenario behavior or failure modes, which keeps it from 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.

Conciseness5/5

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

Two concise sentences with no filler. The main purpose is front-loaded, and the mode explanation is compressed into the second sentence without redundancy.

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?

The description is mostly adequate for a 3-parameter tool, but because scenario is optional in the schema and no default is documented, it is unclear what happens when scenario is omitted. There is also no output schema, so the description should ideally mention the returned series' format or structure; this gap leaves the definition incomplete.

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%, so the baseline is 3. The description adds meaningful semantic value by tying the scenario parameter to concrete behavior: historical mode uses the JSON file, projected mode uses the constant TR base, which clarifies the role of baseTR beyond the schema.

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 names a specific verb ('Retorna'), a specific resource ('série mensal projetada de TR'), and the domain context ('financiamentos indexados'). This clearly differentiates it from siblings like simulate_buy_vs_rent or calculate_cet.

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?

It provides clear context for when to use the tool — any need for a projected monthly TR series — and explains the two scenario modes. However, it does not explicitly mention alternative tools or state when not to use it, so it stops short of full routing guidance.

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. Dates show when Glama detected each change.

  1. 4 tool updates
    • Changedcalculate_cet2 fields changed
      • addedInput schema / properties / amortizacaoExtraordinariaMensal
        Added value: +{
        +  "description": "Amortização extraordinária mensal (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / rendaExtraMensalInvestida
        Added value: +{
        +  "description": "Renda extra mensal investida pelo comprador (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
    • Addedcompare_amortization_strategies
    • Changedrecommendation_contextual2 fields changed
      • addedInput schema / properties / amortizacaoExtraordinariaMensal
        Added value: +{
        +  "description": "Amortização extraordinária mensal (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / rendaExtraMensalInvestida
        Added value: +{
        +  "description": "Renda extra mensal investida pelo comprador (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
    • Changedsensitivity_analysis2 fields changed
      • addedInput schema / properties / amortizacaoExtraordinariaMensal
        Added value: +{
        +  "description": "Amortização extraordinária mensal (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / rendaExtraMensalInvestida
        Added value: +{
        +  "description": "Renda extra mensal investida pelo comprador (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
  2. 5 tool updates
    • Changedcalculate_cet4 fields changed
      • addedInput schema / properties / amortizacaoExtraMensal
        Added value: +{
        +  "description": "Amortização extra mensal (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / fgtsDisponivel
        Added value: +{
        +  "description": "Saldo do FGTS disponível para entrada ou amortização (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / taxaAdministrativaMensal
        Added value: +{
        +  "description": "Taxa administrativa mensal do banco (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / trMensalPct
        Added value: +{
        +  "description": "Taxa mensal de referência TR (%) para correção do saldo devedor",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
    • Addedget_rental_yield
    • Addedmax_price_from_rent
    • Addedrecommendation_contextual
    • Changedsensitivity_analysis4 fields changed
      • addedInput schema / properties / amortizacaoExtraMensal
        Added value: +{
        +  "description": "Amortização extra mensal (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / fgtsDisponivel
        Added value: +{
        +  "description": "Saldo do FGTS disponível para entrada ou amortização (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / taxaAdministrativaMensal
        Added value: +{
        +  "description": "Taxa administrativa mensal do banco (R$)",
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedInput schema / properties / trMensalPct
        Added value: +{
        +  "description": "Taxa mensal de referência TR (%) para correção do saldo devedor",
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
  3. 9 tool updates
    • First observedcalculate_cet
    • First observedcheck_affordability
    • First observedgenerate_share_link
    • First observedget_default_parameters
    • First observedget_municipio_rates
    • First observedget_site_info
    • First observedsensitivity_analysis
    • First observedsimulate_buy_vs_rent
    • First observedsimulate_tr_evolution

Frequently Asked Questions

Discussions

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables institutional-grade Monte Carlo risk analysis for portfolios, startups, real estate, and betting strategies using fat-tail distributions and proprietary algorithms. Provides comprehensive risk metrics including CVaR, VaR, ruin probability, and survival probability across multiple asset classes.
    1
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Tax-aware retirement planning for Canada and the US. CPP/OAS and Social Security timing, RRSP/TFSA/401k/IRA projections, Monte Carlo simulation, withdrawal order optimization, and historical backtesting against 150 years of market data.
    2
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Advanced server for simulating financial models and stochastic processes, offering tools for generating simulations, calculating financial metrics, and visualizing results with interactive components.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    A simulation engine for retirement planning, accessible via an MCP server that allows AI agents to create financial plans, manage income, expenses, loans, taxes, and portfolios, and run Monte Carlo simulations.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A3.9/5.0
Disambiguation4/5

Most tools map to clearly distinct outputs: full buy-vs-rent simulation, sensitivity matrix, CET, affordability, TR series, municipal rates, defaults, share links, and site info. The only potential confusion is between sensitivity_analysis and simulate_buy_vs_rent, since both reuse the same engine and produce buy/rent verdicts, but the descriptions clarify their different inputs and output shapes.

Naming Consistency4/5

The majority of names follow a clear verb_noun snake_case pattern, with consistent get_* and simulate_* groups. sensitivity_analysis is the one outlier, since it is a noun phrase rather than a verb-led action; run_sensitivity_analysis would have been more consistent.

Tool Count5/5

Nine tools is a well-scoped size for this domain. Each tool covers a meaningful part of the buy-vs-rent workflow, and there is no obvious redundancy or bloat.

Completeness5/5

The tool surface covers the domain thoroughly: deterministic simulation, scenario sensitivity, affordability, financing costs, TR projection, municipal rates, default parameters, shareable output, and site context. No critical dead-end or missing workflow is evident for the stated purpose.

Resources