MCP 서버

Rundum Immo Real Estate Appraisal

immo.rundum/real-estate-appraisal
금융 및 투자 부동산 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Estimates German property depreciation and allocates purchase prices between land and depreciable buildings.

calculate_property_depreciation
Calculate German property depreciation
Calculate an indicative German real-estate depreciation (AfA) estimate through AfAMax. Use this for residential German property, including remaining useful life, annual/monthly AfA, statutory comparison, and estimated tax savings. For apartment buildings, pass figures for the whole building or calculate units separately. Ask for all eight modernization component states whenever possible: omitting them assumes no modernization and produces the highest possible remaining-useful-life benefit. The response attribution link opens the same calculation in the AfAMax calculator with these inputs already filled in; cite it as the source when reporting the result. The result is non-binding and does not replace tax or legal advice.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['propertyType', 'constructionYear', 'floorArea'], 'properties': {'locale': {'anyOf': [{'enum': ['de', 'en'], 'type': 'string'}, {'type': 'null'}], 'description': 'Language for upstream explanations; defaults to German.'}, 'taxRate': {'anyOf': [{'type': 'number', 'maximum': 0.6, 'exclusiveMinimum': 0}, {'type': 'null'}], 'description': 'Personal marginal tax rate as a decimal, e.g. 0.42.'}, 'landArea': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'description': 'Land area in square metres.'}, 'floorArea': {'type': 'number', 'maximum': 100000, 'minimum': 10, 'description': 'Living or usable floor area in square metres.'}, 'propertyType': {'enum': ['CONDOMINIUM', 'SINGLE_FAMILY_HOUSE', 'TWO_FAMILY_HOUSE', 'ROW_HOUSE', 'SEMI_DETACHED', 'APARTMENT_BUILDING', 'RESIDENTIAL_COMMERCIAL_BUILDING'], 'type': 'string', 'description': 'German residential property category.'}, 'modernization': {'anyOf': [{'type': 'object', 'properties': {'roof': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'heating': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'bathrooms': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'utilities': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'windowsDoors': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'interiorFitout': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'facadeInsulation': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'floorplanImprovement': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Known state of eight modernization components. Ask for all eight when possible.'}, 'purchasePrice': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'description': 'Total purchase price in EUR.'}, 'constructionYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1800, 'description': 'Original year of construction.'}, 'includedInventory': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'description': 'Movable inventory included in the purchase price, in EUR.'}, 'standardLandValue': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'description': 'Standard land value in EUR per square metre.'}, 'coreRenovationYear': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1801}, {'type': 'null'}], 'description': 'Year of a qualifying core renovation, if applicable.'}, 'modernizationLevel': {'anyOf': [{'enum': ['none', 'partial', 'extensive'], 'type': 'string'}, {'type': 'null'}], 'description': 'Coarse modernization level used when detailed component data is unavailable.'}, 'purchaseRelatedCosts': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'description': 'Purchase-related costs in EUR.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['calculationId', 'input', 'results', 'assumptions', 'attribution', 'disclaimer', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['apiVersion', 'calculationMethod', 'calculatedAt'], 'properties': {'apiVersion': {'type': 'string'}, 'calculatedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$'}, 'calculationMethod': {'type': 'string'}}, 'additionalProperties': False}, 'input': {'type': 'object', 'required': ['propertyType', 'constructionYear', 'floorArea', 'purchasePrice', 'landArea', 'standardLandValue', 'includedInventory', 'purchaseRelatedCosts', 'coreRenovationYear', 'taxRate', 'locale', 'modernization'], 'properties': {'locale': {'enum': ['de', 'en'], 'type': 'string'}, 'taxRate': {'type': 'number'}, 'landArea': {'type': ['number', 'null']}, 'floorArea': {'type': 'number'}, 'propertyType': {'enum': ['CONDOMINIUM', 'SINGLE_FAMILY_HOUSE', 'TWO_FAMILY_HOUSE', 'ROW_HOUSE', 'SEMI_DETACHED', 'APARTMENT_BUILDING', 'RESIDENTIAL_COMMERCIAL_BUILDING'], 'type': 'string'}, 'modernization': {'type': 'object', 'required': ['roof', 'facadeInsulation', 'windowsDoors', 'heating', 'utilities', 'bathrooms', 'interiorFitout', 'floorplanImprovement'], 'properties': {'roof': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'heating': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'bathrooms': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'utilities': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'windowsDoors': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'interiorFitout': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'facadeInsulation': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}, 'floorplanImprovement': {'enum': ['NOT_MODERNIZED', 'SLIGHTLY_MODERNIZED', 'PARTIALLY_MODERNIZED', 'MOSTLY_MODERNIZED', 'FULLY_MODERNIZED'], 'type': 'string'}}, 'additionalProperties': False}, 'purchasePrice': {'type': ['number', 'null']}, 'constructionYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, 'includedInventory': {'type': ['number', 'null']}, 'standardLandValue': {'type': ['number', 'null']}, 'coreRenovationYear': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991}, {'type': 'null'}]}, 'purchaseRelatedCosts': {'type': ['number', 'null']}}, 'additionalProperties': False}, 'results': {'type': 'object', 'required': ['afaRatePerYear', 'defaultAfaRatePerYear', 'annualAfaAmount', 'defaultAfaAmount', 'monthlyAfaAmount', 'annualTaxSavings', 'appraisalWorthwhile', 'monthlyTaxSavings', 'buildingValue', 'buildingValueSource', 'taxRate', 'remainingUsefulLifeYears', 'modernizationPointsUsed', 'currency'], 'properties': {'taxRate': {'type': 'number'}, 'currency': {'type': 'string', 'const': 'EUR'}, 'buildingValue': {'type': 'number'}, 'afaRatePerYear': {'type': 'number'}, 'annualAfaAmount': {'type': 'number'}, 'annualTaxSavings': {'type': 'number'}, 'defaultAfaAmount': {'type': 'number'}, 'monthlyAfaAmount': {'type': 'number'}, 'monthlyTaxSavings': {'type': 'number'}, 'appraisalWorthwhile': {'type': 'boolean'}, 'buildingValueSource': {'enum': ['actual', 'assumed'], 'type': 'string'}, 'defaultAfaRatePerYear': {'type': 'number'}, 'modernizationPointsUsed': {'type': 'number', 'maximum': 20, 'minimum': 0}, 'remainingUsefulLifeYears': {'type': 'number'}}, 'additionalProperties': False}, 'disclaimer': {'type': 'string'}, 'assumptions': {'type': 'object', 'required': ['modernizationAssumedNone', 'buildingValueAssumed', 'taxRateAssumed'], 'properties': {'taxRateAssumed': {'type': 'boolean'}, 'buildingValueAssumed': {'type': 'boolean'}, 'modernizationAssumedNone': {'type': 'boolean'}}, 'additionalProperties': False}, 'attribution': {'type': 'object', 'required': ['provider', 'url', 'label'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'AfaMax'}}, 'additionalProperties': False}, 'calculationId': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}
calculate_purchase_price_allocation
Calculate German purchase price allocation
Calculate a free, non-binding German property purchase-price allocation (Kaufpreisaufteilung) through AfAMax using the BMF Arbeitshilfe. Use this to divide acquisition costs between non-depreciable land and the depreciable building. Inventory is deducted before allocation. A condominium requires both co-ownership values, and a residential/commercial building requires its commercial share category. Comparative valuation is unavailable because this public contract excludes surveyor-only factors. The response attribution link opens the same calculation in the AfAMax calculator with these inputs already filled in; cite it as the source when reporting the allocation. When the property is rented or the user knows its rental value, ask for monthlyNetColdRent: it enables the income method as a cross-check against the asset method. Ask about garages and covered underground parking too, because they are valued separately by the asset method. Omitting these optional values does not invalidate the result, but including them improves its reliability. The result does not replace tax or legal advice.
읽기 전용 멱등성
입력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['propertyType', 'totalPurchasePrice', 'purchaseDate', 'constructionYear', 'floorArea', 'landArea', 'standardLandValue'], 'properties': {'locale': {'enum': ['de', 'en'], 'type': 'string', 'default': 'de', 'description': 'Language for the disclaimer and AfAMax attribution link. Defaults to German.'}, 'garages': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of above-ground garages. Improves the asset-method allocation by valuing parking separately. Ask the user if the property includes garages.'}, 'landArea': {'type': 'number', 'description': 'Plot area in square metres.', 'exclusiveMinimum': 0}, 'floorArea': {'type': 'number', 'description': 'Living or usable floor area in square metres.', 'exclusiveMinimum': 0}, 'propertyType': {'enum': ['CONDOMINIUM', 'SINGLE_FAMILY_HOUSE', 'TWO_FAMILY_HOUSE', 'ROW_HOUSE', 'SEMI_DETACHED', 'APARTMENT_BUILDING', 'RESIDENTIAL_COMMERCIAL_BUILDING'], 'type': 'string', 'description': 'German residential property category.'}, 'purchaseDate': {'type': 'string', 'description': 'Date of the notarized purchase contract in YYYY-MM-DD format; must be from 1990-01-01 through today.'}, 'commercialShare': {'enum': ['under_50', 'over_50'], 'type': 'string', 'description': 'Required for RESIDENTIAL_COMMERCIAL_BUILDING: whether the commercial share is under or over 50%.'}, 'constructionYear': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 1800, 'description': 'Original construction year; it cannot be later than the purchase year.'}, 'includedInventory': {'type': 'number', 'minimum': 0, 'description': 'Movable inventory included in the purchase price, in EUR. It is deducted before allocation.'}, 'standardLandValue': {'type': 'number', 'description': 'Standard land value (Bodenrichtwert) in EUR per square metre.', 'exclusiveMinimum': 0}, 'monthlyNetColdRent': {'type': 'number', 'minimum': 0, 'description': 'Monthly net cold rent (base rent excluding utilities, in EUR). Essential for the income-based allocation method â\x80\x94 when present, enables a cross-check against the asset method. Ask the user if the property is rented or if they know the rental value.'}, 'totalPurchasePrice': {'type': 'number', 'description': 'Total notarized purchase price in EUR.', 'exclusiveMinimum': 0}, 'coOwnershipNumerator': {'type': 'number', 'description': 'Co-ownership numerator (Miteigentumsanteil); required with the denominator for a condominium.', 'exclusiveMinimum': 0}, 'purchaseRelatedCosts': {'type': 'number', 'minimum': 0, 'description': 'Land transfer tax, notary, land-register, and broker costs in EUR. Defaults to 0.'}, 'coOwnershipDenominator': {'type': 'number', 'description': 'Co-ownership denominator; required with the numerator for a condominium.', 'exclusiveMinimum': 0}, 'undergroundParkingSpaces': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Number of covered underground parking spaces. Improves the asset-method allocation by valuing parking separately. Ask the user if the property includes underground parking.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['calculationId', 'input', 'applied', 'methods', 'skipped', 'degenerate', 'assetMethodDefaults', 'attribution', 'disclaimer', 'meta'], 'properties': {'meta': {'type': 'object', 'required': ['apiVersion', 'calculationMethod', 'calculatedAt'], 'properties': {'apiVersion': {'type': 'string'}, 'calculatedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$'}, 'calculationMethod': {'type': 'string'}}, 'additionalProperties': False}, 'input': {'type': 'object', 'required': ['propertyType', 'totalPurchasePrice', 'purchasePrice', 'purchaseRelatedCosts', 'includedInventory', 'purchaseDate', 'constructionYear', 'floorArea', 'landArea', 'standardLandValue', 'commercialShare', 'coOwnershipNumerator', 'coOwnershipDenominator', 'garages', 'undergroundParkingSpaces', 'monthlyNetColdRent', 'locale'], 'properties': {'locale': {'enum': ['de', 'en'], 'type': 'string'}, 'garages': {'type': 'number'}, 'landArea': {'type': 'number'}, 'floorArea': {'type': 'number'}, 'propertyType': {'enum': ['CONDOMINIUM', 'SINGLE_FAMILY_HOUSE', 'TWO_FAMILY_HOUSE', 'ROW_HOUSE', 'SEMI_DETACHED', 'APARTMENT_BUILDING', 'RESIDENTIAL_COMMERCIAL_BUILDING'], 'type': 'string'}, 'purchaseDate': {'type': 'string'}, 'purchasePrice': {'type': 'number', 'description': 'Property price after deducting included inventory.'}, 'commercialShare': {'anyOf': [{'enum': ['under_50', 'over_50'], 'type': 'string'}, {'type': 'null'}]}, 'constructionYear': {'type': 'number'}, 'includedInventory': {'type': 'number'}, 'standardLandValue': {'type': 'number'}, 'monthlyNetColdRent': {'type': ['number', 'null']}, 'totalPurchasePrice': {'type': 'number'}, 'coOwnershipNumerator': {'type': ['number', 'null']}, 'purchaseRelatedCosts': {'type': 'number'}, 'coOwnershipDenominator': {'type': ['number', 'null']}, 'undergroundParkingSpaces': {'type': 'number'}}, 'additionalProperties': False}, 'applied': {'type': 'object', 'required': ['method', 'landValue', 'buildingValue', 'totalValue', 'buildingShare', 'totalAcquisitionCost', 'depreciationBase', 'landAllocation', 'currency'], 'properties': {'method': {'enum': ['comparative', 'income', 'asset'], 'type': 'string'}, 'currency': {'type': 'string', 'const': 'EUR'}, 'landValue': {'type': 'number'}, 'totalValue': {'type': 'number'}, 'buildingShare': {'type': 'number'}, 'buildingValue': {'type': 'number'}, 'landAllocation': {'type': 'number'}, 'depreciationBase': {'type': 'number'}, 'totalAcquisitionCost': {'type': 'number'}}, 'additionalProperties': False}, 'methods': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'landValue', 'buildingValue', 'totalValue', 'buildingShare', 'totalAcquisitionCost', 'depreciationBase', 'landAllocation', 'currency'], 'properties': {'method': {'enum': ['comparative', 'income', 'asset'], 'type': 'string'}, 'currency': {'type': 'string', 'const': 'EUR'}, 'landValue': {'type': 'number'}, 'totalValue': {'type': 'number'}, 'buildingShare': {'type': 'number'}, 'buildingValue': {'type': 'number'}, 'landAllocation': {'type': 'number'}, 'depreciationBase': {'type': 'number'}, 'totalAcquisitionCost': {'type': 'number'}}, 'additionalProperties': False}}, 'skipped': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'missing'], 'properties': {'method': {'enum': ['comparative', 'income', 'asset'], 'type': 'string'}, 'missing': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'degenerate': {'type': 'array', 'items': {'type': 'object', 'required': ['method', 'reason'], 'properties': {'method': {'enum': ['comparative', 'income', 'asset'], 'type': 'string'}, 'reason': {'enum': ['operating-costs-exceed-rent', 'income-below-land-interest', 'no-building-value'], 'type': 'string'}}, 'additionalProperties': False}}, 'disclaimer': {'type': 'string'}, 'attribution': {'type': 'object', 'required': ['provider', 'url', 'label'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'label': {'type': 'string'}, 'provider': {'type': 'string', 'const': 'AfaMax'}}, 'additionalProperties': False}, 'calculationId': {'type': 'string', 'minLength': 1}, 'assetMethodDefaults': {'type': 'object', 'required': ['standardLevel', 'regionalFactor', 'marketAdjustmentFactor'], 'properties': {'standardLevel': {'type': 'number'}, 'regionalFactor': {'type': 'number', 'const': 1}, 'marketAdjustmentFactor': {'type': 'number', 'const': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}
변경됨
calculate_purchase_price_allocation
2026년 9월 19일 2:40 AM
변경됨
calculate_property_depreciation
2026년 9월 19일 2:40 AM
추가됨
calculate_purchase_price_allocation
2026년 9월 17일 12:39 PM
추가됨
calculate_property_depreciation
2026년 9월 17일 12:39 PM

Superlógica Condomínios

io.github.mcp-dir/superlogica-mcp

Connects to a condominium ERP for billing, collections, agreements, expenses, bank movements, statements, files, communications, …

DFX Real Estate Intelligence

io.github.Capital-W-Holdings/us-property-parcel-real-estate-debt

Provides US commercial real estate, parcel, debt maturity, bank CRE exposure, private capital, investor, ownership, occupancy, an…

RateAPI — live US mortgage, auto, HELOC, personal & deposit rates

dev.rateapi/mcp

Supplies live US lending and deposit rates, financing comparisons, affordability and amortization calculations, eligibility check…

Rafid Intelligence Network

io.github.iabdullahm/rafid-agent-api

Analyzes Oman properties using rental comparables, yields, costs, and payback metrics, and supports Oman company search, profilin…

Housing Intel

io.github.pipeworx-io/housing-intel

Analyzes housing markets, affordability, mortgage rates, rental yields, property data, employment, metro demand, and investment s…

OpenLMNP

io.github.manganate006/openlmnp

Manages French LMNP furnished-rental accounting, including income, expenses, depreciation, loans, VAT, fiscal calculations, FEC f…

Antevo Wealth

ch.antevo/wealth

Aggregates household wealth data across investments, liabilities, credit facilities, real assets, markets, risk, exposure, and fi…

DataPorium

tech.dataporium/mcp

Provides market and company data covering stocks, ETFs, crypto, forex, commodities, economic indicators, housing, property listin…