Skip to main content
Glama

SA Property Costs

Server Details

South African property costs: transfer duty, buying costs, bond repayments, municipal rates

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 5 tools

Disambiguation4/5

Each tool targets a distinct cost or calculation, and descriptions clearly separate once-off purchase costs from monthly bond repayments and municipal rates. The only real overlap is transfer_duty, which is also a component of purchase_costs — an agent could reasonably pick either, though descriptions hint at when to use each.

Naming Consistency5/5

All five tools use consistent snake_case noun phrases (bond_repayment, municipal_rates, purchase_costs, transfer_duty, unmet_request). No mixing of verb/noun styles or casing conventions; the pattern is predictable and readable.

Tool Count5/5

Five tools is well within the ideal 3-15 range and each earns its place: four distinct cost calculators plus a lightweight feedback channel. Nothing feels padded or missing at the count level.

Completeness4/5

Core property cost surface is covered: once-off purchase costs, transfer duty, bond repayments, and municipal rates, with a channel for requesting gaps. Missing ongoing ownership costs like sectional-title levies, homeowner's insurance, or maintenance estimates, which agents may need for a full monthly cost picture.

Available Tools

5 tools
bond_repaymentCalculate home loan repaymentA
Read-only
Inspect

Calculates the monthly repayment, total interest and total repaid for a South African home loan (bond). Requires the interest rate because rates change — use prime ± the bank's margin.

NameRequiredDescriptionDefault
term_yearsNo
loan_amountYes
annual_interest_rate_pctYese.g. 10.75

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the pure-calculation, no-side-effect nature is covered. The description adds the return values (repayment, total interest, total repaid), but says nothing about the model's assumptions — no deposit, no fees/insurance, fixed rate for the full term, monthly compounding — which materially change the numbers for a bond calculation.

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 tight, front-loaded sentences: what it computes first, then the rate caveat. The 'because rates change' clause is slightly redundant but earns its place by explaining why the rate must be supplied rather than looked up.

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?

No output schema exists, and the description does exactly what is needed there by naming all three returned figures. With only three simple parameters and safety covered by annotations, the remaining gap is disclosure of calculation assumptions, which is a real but not fatal 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 coverage is 33%; only annual_interest_rate_pct is documented ('e.g. 10.75'). The description compensates meaningfully for that one parameter ('rates change — use prime ± the bank's margin'), but says nothing about loan_amount units or term_years, whose default of 20 years is left entirely to 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?

States a specific verb ('Calculates') and resource (monthly repayment, total interest and total repaid for a South African home loan), and even lists the three outputs. It never names or contrasts the sibling calculators (transfer_duty, purchase_costs, municipal_rates), so the agent must infer that this is the bond-servicing calculator rather than the up-front-cost ones.

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?

Gives real guidance on sourcing the rate ('use prime ± the bank's margin'), which is the main practical question. It does not say when to prefer this over the sibling calculators, nor any exclusion such as 'do not use for once-off purchase costs — use purchase_costs'.

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

municipal_ratesEstimate monthly municipal property ratesA
Read-only
Inspect

Estimates municipal property rates on a South African property from its municipal valuation. Either pick a municipality from the built-in tariff list, or pass the cent-in-the-rand rate and rebate yourself. Call with list_municipalities=true to see which municipalities are covered.

NameRequiredDescriptionDefault
categoryNoresidential
municipalityNoMunicipality id from the tariff list, e.g. cape-town
rate_in_randNoOverride: annual rate per rand of value, e.g. 0.006428
list_municipalitiesNo
municipal_valuationNo
valuation_exclusionNoOverride: rand amount of value exempt from rates

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds real behavioral context beyond them: there is a finite built-in tariff table with limited coverage, the result is an estimate, and there are two distinct computation paths. It omits error behavior when no valuation is supplied and any accuracy/caveat statement.

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 tight sentences, no filler, with the core purpose and the two usage modes front-loaded before the discovery hint. Every sentence carries information the agent needs.

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 6-parameter, zero-required calculator with no output schema, the description covers the input modes but says nothing about the return value shape (monthly figure? breakdown?) or what happens when municipal_valuation is absent. Adequate to start a call, but an agent still has to guess at the result contract.

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 50%, and the description compensates for part of the gap by explaining the municipality-vs-rate_in_rand override relationship and the list_municipalities flag. However it never mentions 'category' (the only enum parameter) or 'municipal_valuation' as the core input, leaving the two most important non-documented parameters unexplained.

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?

States a specific verb ('estimates') and resource ('municipal property rates') with the domain scoped to South African properties valued from a municipal valuation. That is enough to tell it apart from the bond_repayment / transfer_duty / purchase_costs calculators, though it never names a sibling explicitly.

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?

Gives clear operating instructions: either select a municipality from the built-in tariff list or supply the cent-in-the-rand rate and rebate yourself, plus a discovery path ('call with list_municipalities=true to see which municipalities are covered'). No explicit when-not or edge-case exclusions, so it stops short of a 5.

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

purchase_costsEstimate total once-off costs of buying propertyA
Read-only
Inspect

Estimates once-off costs of buying a South African property: transfer duty (exact), plus estimated conveyancing (transfer) fees, Deeds Office fees and bond registration costs. Fees are estimates — attorneys quote from the LSSA guideline.

NameRequiredDescriptionDefault
bond_amountNoHome loan amount, 0 if cash
purchase_priceYes
seller_is_vat_vendorNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=false, so safety is covered; the description adds real value beyond that by disclosing the precision profile — transfer duty is exact while conveyancing, Deeds Office and bond registration are estimates quoted from the LSSA guideline. It does not say anything about the return shape or rounding, but the accuracy caveat is the materially important disclosure here.

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, zero waste, and the exact-vs-estimated distinction is front-loaded right after the scope statement. Nothing extraneous.

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 read-only calculator with no output schema, the description should explain what comes back at a high level and what each input does. It covers the accuracy caveat well but leaves the VAT-vendor flag and purchase_price semantics undocumented, which is a real gap for a costing tool.

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?

Schema description coverage is only 33%, so the description is expected to compensate. It does not: purchase_price has no description at all in either place, and seller_is_vat_vendor is completely unexplained — an agent cannot tell how this boolean changes the estimate (e.g. whether transfer duty is replaced by VAT). Only bond_amount is indirectly hinted at via 'bond registration costs'.

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?

States a specific verb and resource — estimates once-off property purchase costs in South Africa — and enumerates the components (transfer duty, conveyancing, Deeds Office, bond registration). This scope is clearly distinct from the sibling tools transfer_duty (one component) and bond_repayment (ongoing costs), so an agent can route without opening a schema.

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?

Use is implied by the scope statement: call it for a total once-off cost picture rather than a single fee. However, it never explicitly says when to prefer this over the transfer_duty sibling or when to use transfer_duty alone, and no prerequisites or exclusions are given.

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

transfer_dutyCalculate SARS transfer dutyA
Read-only
Inspect

Calculates South African transfer duty payable to SARS on a property purchase, using the current sliding scale (no duty up to R1,210,000). Notes when VAT applies instead (seller is a VAT vendor).

NameRequiredDescriptionDefault
purchase_priceYesRand, excl. VAT
seller_is_vat_vendorNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety and locality need no restating. The description adds real value by disclosing the current scale threshold (no duty up to R1,210,000) and the VAT-vendor exclusion, but stays silent on key behavioral assumptions such as rate-table vintage, natural-person vs company rates, or the returned amount's rounding.

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 sentence front-loads the verb and object, with the threshold and VAT caveat following immediately. No filler, no redundancy with the title.

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, the description never says what the return value looks like (a Rand amount? a breakdown?) or what assumptions drive the sliding scale. Adequate to invoke, but an agent lacks enough to interpret or defend the result.

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 only 50%, so the description must compensate: it clarifies that the price is Rand excluding VAT and explains the otherwise undocumented meaning of seller_is_vat_vendor (VAT applies instead of duty). It does not explicitly address the default false behavior, but the semantics of both parameters are effectively covered.

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?

States a specific verb and resource: calculates South African transfer duty payable to SARS on a property purchase. It is clearly distinguishable in subject matter from the numeric siblings (bond_repayment, municipal_rates, purchase_costs), though it never names them or clarifies overlap with purchase_costs.

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?

Implies when the calculation applies and hints that VAT replaces duty when the seller is a VAT vendor, which is a useful branch. It does not say when to prefer this tool over purchase_costs (which may bundle transfer duty) or when the calculation should not be used at all.

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

unmet_requestTell us what data you couldn't findAInspect

Free to call. If you needed South African data that none of these tools provide (a cost, rate, rule, price or place we don't cover), describe it here in one sentence. We review these every week and build the most-requested data first.

NameRequiredDescriptionDefault
needYesWhat information you were looking for, in one sentence.
regionNoOptional: province or town, if it matters.
contextNoOptional: the kind of task it was for, e.g. 'renovation quote' or 'payroll run'.

TDQS

A4.2/5.0
Behavior4/5

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

The description adds real context beyond the annotations: 'Free to call' signals no call-budget cost, and 'We review these every week and build the most-requested data first' discloses that this is an asynchronous request with no immediate data returned. Nothing contradicts readOnlyHint=false (a submission does create a record) or openWorldHint=false; auth and rate-limit details are absent but low-risk here.

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, front-loaded with the cost signal and then the qualifying condition, then the outcome. No restatement of the tool name and no wasted clauses.

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 fully documented, no-output-schema submission tool, the description covers purpose, trigger and what happens after submission. It could be slightly more complete by stating that no data is returned synchronously, but the weekly-review sentence conveys that implicitly.

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 schema already explains need, region and context fully. The description reinforces the one-sentence constraint on the required field but adds no meaning beyond the schema for the optional region and context parameters, so the baseline 3 applies.

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 action (describe a missing data need) and resource (South African cost, rate, rule, price or place not covered), and explicitly frames itself as the fallback when the sibling calculators don't cover a need. It is immediately distinguishable from bond_repayment, municipal_rates and the other siblings, which are lookups rather than submissions.

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 gives a clear trigger: use this when needed South African data is not provided by 'none of these tools,' and enumerates the kinds of gaps that qualify. It does not name the specific sibling domains, so an agent still has to reason about what the siblings already cover before deciding to fall back here.

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.

  1. 5 tool updates
    • First observedbond_repayment
    • First observedmunicipal_rates
    • First observedpurchase_costs
    • First observedtransfer_duty
    • First observedunmet_request

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables users to calculate Portuguese property purchase costs (IMT, stamp duty, deed/registration) and query annual IMI rates and costs for all 308 municipalities, with sourced figures.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables users to calculate Portuguese property purchase costs (IMT and stamp duty) and look up annual IMI property tax rates and costs for all 308 municipalities, with sources and year.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Estimates UK repayment mortgage payments, including monthly payment, total interest, and overpayment impact, for use in ChatGPT.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides aggregated municipal development costs for US jurisdictions, including impact fees and utility connection charges, enabling AI agents to assess building feasibility quickly.
    14
    15 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources