Skip to main content
Glama

Austria Property

Server Details

Austrian property costs, buy-to-let underwriting, income tax and rent caps, cited to the statute

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
Repository
mastalier1997/austria-property-mcp
GitHub Stars
0
Server Listing
austria-property-mcp

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation4/5

Each tool has a distinct primary purpose: a transaction-cost estimator, a statutory-rules reference, and a full rental-investment underwriting model. The only mild overlap is that acquisition costs appear both as a standalone estimator and as a component of underwrite_property, but the descriptions make the intended use of each clear.

Naming Consistency5/5

All three names follow a clean snake_case verb_noun pattern (estimate_acquisition_costs, get_rules, underwrite_property) with consistent verb-first ordering. No camelCase mixing or inconsistent conventions.

Tool Count4/5

Three tools for a narrow, well-defined domain (Austrian residential property cost and investment analysis) is reasonable, and each tool earns its place. It is slightly thin, since the rules lookup could plausibly be folded in, but nothing feels redundant or padded.

Completeness4/5

The surface covers buying costs, the underlying statutory parameters, and rental deal evaluation, which are the core workflows for this domain. Explicitly excluded items (income tax on rent, family purchases, exact Richtwert cap) are documented rather than silently missing, so agents can work around them.

Available Tools

3 tools
estimate_acquisition_costsAustrian property purchase costsA
Read-onlyIdempotent
Inspect

Calculate the one-off costs of buying residential property in Austria on top of the price (Kaufnebenkosten): real estate transfer tax (Grunderwerbsteuer), land-register court fees, broker commission with a check against the legal maximum, and lawyer/notary contract costs, each with VAT where it applies. Use when someone asks what buying a specific flat or house in Austria costs in total. Every statutory line cites its legal basis and source. Amounts in EUR. Not covered: bank or valuation fees, purchases within the family, exemptions for a primary residence.

ParametersJSON Schema
NameRequiredDescriptionDefault
brokerYesBroker commission, or "none" if the purchase is commission-free (provisionsfrei).
financingNoMortgage financing, if any. Adds the court fee for registering the mortgage.
assumptionsNoOverride default assumptions. Omit to use documented defaults.
purchasePriceYesPurchase price in EUR (the agreed price for the property), e.g. 249000.
valuationDateNoDate whose rules apply, YYYY-MM-DD, usually today or the expected signing date. Defaults to today (Vienna time). Covered: 2025-04-01 to 2027-12-31.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, idempotentHint=true, openWorldHint=false, so the safe, deterministic, offline nature of the call is covered. The description adds genuinely new behavioral context: each statutory line cites its legal basis and source, amounts are in EUR, and a broker commission cap check is performed. It omits any statement about output shape or performance, keeping it short of 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.

Conciseness4/5

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

Front-loaded purpose sentence, then trigger, then two short factual notes, then exclusions — no padding and each sentence carries information. The middle two sentences ('Every statutory line cites its legal basis and source', 'Amounts in EUR') are terse but additive rather than redundant.

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 pure read-only computation with no output schema, the description covers what is computed, when to use it, currency, and hard exclusions. It stops short of describing the returned breakdown (line items plus total) or citing the covered legal-period window, which the agent only learns from the schema.

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 field descriptions are already rich (VAT-exclusive commission, 'zzgl. 20% USt' example, defaults for contractFeePct and mortgage factor). The description's parameter-relevant content ('broker commission with a check against the legal maximum', 'each with VAT where it applies') largely restates what the schema already says under sellerPaysCommission and the fee fields, so the 3 baseline 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?

States a specific verb ('Calculate') and resource ('one-off costs of buying residential property in Austria / Kaufnebenkosten'), then enumerates the exact cost lines included (Grunderwerbsteuer, land-register fees, broker commission, lawyer/notary costs). That level of scope detail makes it unmistakable next to a generic rules lookup like get_rules or an underwriting tool.

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 an explicit trigger ('Use when someone asks what buying a specific flat or house in Austria costs in total') and explicit exclusions ('Not covered: bank or valuation fees, purchases within the family, exemptions for a primary residence'). It does not name or route to sibling alternatives (get_rules, underwrite_property), so it falls short of a full 5.

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

get_rulesStatutory rules and assumptions
Read-onlyIdempotent
Inspect

List the statutory values the engine uses on a date (tax and fee rates, broker caps, minimum repair reserve, MRG cut-off dates, AfA rates, land shares, income tax brackets), each with legal basis, source URL and the date it was last verified, plus the default assumptions and risk thresholds. Use to cite sources or to explain how a number was calculated.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoReturn the rules valid on this date, YYYY-MM-DD. Defaults to today (Vienna time).
underwrite_propertyUnderwrite an Austrian buy-to-let purchase
Read-onlyIdempotent
Inspect

Analyse an Austrian residential property as a rental investment: acquisition costs, annuity loan payment, monthly cash flow before and after income tax, gross and net yield, cash-on-cash return, debt cover (DSCR), break-even rent, whether statutory rent caps (MRG) apply, depreciation (AfA) with the legal land share, a 25-year Liebhaberei check, and risk flags. Use when evaluating whether a specific flat or house is a good buy-to-let deal. Inputs in EUR; rents and owner costs are monthly and net of VAT. Pass what you know: missing facts fall back to documented assumptions and are flagged. Not covered: rent increases or interest-rate changes over time, tax credits, the exact Richtwert cap.

ParametersJSON Schema
NameRequiredDescriptionDefault
taxNoFacts for the income tax on rent and the depreciation (AfA). Omit to use flagged defaults (40% marginal rate, 40% land share).
rentYesExpected rent.
brokerYesBroker commission, or "none" if the purchase is commission-free (provisionsfrei).
propertyNoProperty facts. Pass what you know; missing facts are flagged.
financingNoMortgage financing. Omit for a cash purchase.
ownerCostsNoCosts the owner pays that cannot be passed on to the tenant.
assumptionsNoOverride default assumptions. Omit to use documented defaults.
purchasePriceYesPurchase price in EUR (the agreed price for the property), e.g. 249000.
valuationDateNoDate whose rules apply, YYYY-MM-DD, usually today or the expected signing date. Defaults to today (Vienna time). Covered: 2025-04-01 to 2027-12-31.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedunderwrite_property2 fields changed
      • addedInput schema / properties / assumptions / properties / marginalTaxRatePct
        Added value: +{
        +  "description": "Owner's marginal income tax rate in %, applied to the rental result. Default 40. Ignored when tax.otherTaxableIncome is given.",
        +  "type": "number"
        +}
      • addedInput schema / properties / tax
        Added value: +{
        +  "description": "Facts for the income tax on rent and the depreciation (AfA). Omit to use flagged defaults (40% marginal rate, 40% land share).",
        +  "properties": {
        +    "averageLandPricePerM2": {
        +      "description": "Average price of building land in the municipality, EUR per m². Under 400 in a town under 100,000 inhabitants → 20% land share.",
        +      "type": "number"
        +    },
        +    "landSharePct": {
        +      "description": "Land share of the purchase in %, if proven (e.g. expert opinion). Otherwise presumed at 20, 30 or 40% by law.",
        +      "type": "number"
        +    },
        +    "municipalityInhabitants": {
        +      "description": "Inhabitants of the municipality (e.g. Vienna ≈ 2,000,000). Decides the presumed land share together with the land price.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "otherTaxableIncome": {
        +      "description": "Owner's other taxable income per year in EUR (e.g. gross salary minus social security). Enables the exact income tax tariff.",
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
  2. 3 tool updates
    • First observedestimate_acquisition_costs
    • First observedget_rules
    • First observedunderwrite_property

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.