Rundum Immo Real Estate Appraisal

Indicative German property depreciation, useful life, and purchase-price allocation via AfAMax.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
92%
命名质量
80%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(2)

  • LOWTool 'calculate_property_depreciation' name length outside 3-30 range在 calculate_property_depreciation 中
  • LOWTool 'calculate_purchase_price_allocation' name length outside 3-30 range在 calculate_purchase_price_allocation 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~4,313token 数(工具定义)
~22.6 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 3.37%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "real-estate-appraisal": {
      "command": "npx",
      "args": [
        "@rundum-immo/real-estate-appraisal-mcp"
      ]
    }
  }
}

可运行的软件包

npm@rundum-immo/real-estate-appraisal-mcp0.1.1stdio

远程端点

https://mcp.rundum.immo/mcpstreamable-http

它能做什么

工具清单

工具(2)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢calculate_property_depreciation(propertyType, constructionYear, floorArea, purchasePrice, landArea, ...)

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",
  "properties": {
    "propertyType": {
      "type": "string",
      "enum": [
        "CONDOMINIUM",
        "SINGLE_FAMILY_HOUSE",
        "TWO_FAMILY_HOUSE",
        "ROW_HOUSE",
        "SEMI_DETACHED",
        "APARTMENT_BUILDING",
        "RESIDENTIAL_COMMERCIAL_BUILDING"
      ],
      "description": "German residential property category."
    },
    "constructionYear": {
      "type": "integer",
      "minimum": 1800,
      "maximum": 9007199254740991,
      "description": "Original year of construction."
    },
    "floorArea": {
      "type": "number",
      "minimum": 10,
      "maximum": 100000,
      "description": "Living or usable floor area in square metres."
    },
    "purchasePrice": {
      "description": "Total purchase price in EUR.",
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "landArea": {
      "description": "Land area in square metres.",
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "standardLandValue": {
      "description": "Standard land value in EUR per square metre.",
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "includedInventory": {
      "description": "Movable inventory included in the purchase price, in EUR.",
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "purchaseRelatedCosts": {
      "description": "Purchase-related costs in EUR.",
      "anyOf": [
        {
          "type": "number",
          "minimum": 0
        },
        {
          "type": "null"
        }
      ]
    },
    "coreRenovationYear": {
      "description": "Year of a qualifying core renovation, if applicable.",
      "anyOf": [
        {
          "type": "integer",
          "minimum": 1801,
          "maximum": 9007199254740991
        },
        {
          "type": "null"
        }
      ]
    },
    "taxRate": {
      "description": "Personal marginal tax rate as a decimal, e.g. 0.42.",
      "anyOf": [
        {
          "type": "number",
          "exclusiveMinimum": 0,
          "maximum": 0.6
        },
        {
          "type": "null"
        }
      ]
    },
    "locale": {
      "description": "Language for upstream explanations; defaults to German.",
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "de",
            "en"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "modernizationLevel": {
      "description": "Coarse modernization level used when detailed component data is unavailable.",
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "none",
            "partial",
            "extensive"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "modernization": {
      "description": "Known state of eight modernization components. Ask for all eight when possible.",
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "roof": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "facadeInsulation": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "windowsDoors": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "heating": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "utilities": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "bathrooms": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "interiorFitout": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "floorplanImprovement": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            }
          },
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "propertyType",
    "constructionYear",
    "floorArea"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "calculationId": {
      "type": "string",
      "minLength": 1
    },
    "input": {
      "type": "object",
      "properties": {
        "propertyType": {
          "type": "string",
          "enum": [
            "CONDOMINIUM",
            "SINGLE_FAMILY_HOUSE",
            "TWO_FAMILY_HOUSE",
            "ROW_HOUSE",
            "SEMI_DETACHED",
            "APARTMENT_BUILDING",
            "RESIDENTIAL_COMMERCIAL_BUILDING"
          ]
        },
        "constructionYear": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "floorArea": {
          "type": "number"
        },
        "purchasePrice": {
          "type": [
            "number",
            "null"
          ]
        },
        "landArea": {
          "type": [
            "number",
            "null"
          ]
        },
        "standardLandValue": {
          "type": [
            "number",
            "null"
          ]
        },
        "includedInventory": {
          "type": [
            "number",
            "null"
          ]
        },
        "purchaseRelatedCosts": {
          "type": [
            "number",
            "null"
          ]
        },
        "coreRenovationYear": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "taxRate": {
          "type": "number"
        },
        "locale": {
          "type": "string",
          "enum": [
            "de",
            "en"
          ]
        },
        "modernization": {
          "type": "object",
          "properties": {
            "roof": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "facadeInsulation": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "windowsDoors": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "heating": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "utilities": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "bathrooms": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "interiorFitout": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            },
            "floorplanImprovement": {
              "type": "string",
              "enum": [
                "NOT_MODERNIZED",
                "SLIGHTLY_MODERNIZED",
                "PARTIALLY_MODERNIZED",
                "MOSTLY_MODERNIZED",
                "FULLY_MODERNIZED"
              ]
            }
          },
          "required": [
            "roof",
            "facadeInsulation",
            "windowsDoors",
            "heating",
            "utilities",
            "bathrooms",
            "interiorFitout",
            "floorplanImprovement"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "propertyType",
        "constructionYear",
        "floorArea",
        "purchasePrice",
        "landArea",
        "standardLandValue",
        "includedInventory",
        "purchaseRelatedCosts",
        "coreRenovationYear",
        "taxRate",
        "locale",
        "modernization"
      ],
      "additionalProperties": false
    },
    "results": {
      "type": "object",
      "properties": {
        "afaRatePerYear": {
          "type": "number"
        },
        "defaultAfaRatePerYear": {
          "type": "number"
        },
        "annualAfaAmount": {
          "type": "number"
        },
        "defaultAfaAmount": {
          "type": "number"
        },
        "monthlyAfaAmount": {
          "type": "number"
        },
        "annualTaxSavings": {
          "type": "number"
        },
        "appraisalWorthwhile": {
          "type": "boolean"
        },
        "monthlyTaxSavings": {
          "type": "number"
        },
        "buildingValue": {
          "type": "number"
        },
        "buildingValueSource": {
          "type": "string",
          "enum": [
            "actual",
            "assumed"
          ]
        },
        "taxRate": {
          "type": "number"
        },
        "remainingUsefulLifeYears": {
          "type": "number"
        },
        "modernizationPointsUsed": {
          "type": "number",
          "minimum": 0,
          "maximum": 20
        },
        "currency": {
          "type": "string",
          "const": "EUR"
        }
      },
      "required": [
        "afaRatePerYear",
        "defaultAfaRatePerYear",
        "annualAfaAmount",
        "defaultAfaAmount",
        "monthlyAfaAmount",
        "annualTaxSavings",
        "appraisalWorthwhile",
        "monthlyTaxSavings",
        "buildingValue",
        "buildingValueSource",
        "taxRate",
        "remainingUsefulLifeYears",
        "modernizationPointsUsed",
        "currency"
      ],
      "additionalProperties": false
    },
    "assumptions": {
      "type": "object",
      "properties": {
        "modernizationAssumedNone": {
          "type": "boolean"
        },
        "buildingValueAssumed": {
          "type": "boolean"
        },
        "taxRateAssumed": {
          "type": "boolean"
        }
      },
      "required": [
        "modernizationAssumedNone",
        "buildingValueAssumed",
        "taxRateAssumed"
      ],
      "additionalProperties": false
    },
    "attribution": {
      "type": "object",
      "properties": {
        "provider": {
          "type": "string",
          "const": "AfaMax"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "provider",
        "url",
        "label"
      ],
      "additionalProperties": false
    },
    "disclaimer": {
      "type": "string"
    },
    "meta": {
      "type": "object",
      "properties": {
        "apiVersion": {
          "type": "string"
        },
        "calculationMethod": {
          "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))$"
        }
      },
      "required": [
        "apiVersion",
        "calculationMethod",
        "calculatedAt"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "calculationId",
    "input",
    "results",
    "assumptions",
    "attribution",
    "disclaimer",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢calculate_purchase_price_allocation(propertyType, totalPurchasePrice, purchaseRelatedCosts, includedInventory, purchaseDate, ...)

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",
  "properties": {
    "propertyType": {
      "type": "string",
      "enum": [
        "CONDOMINIUM",
        "SINGLE_FAMILY_HOUSE",
        "TWO_FAMILY_HOUSE",
        "ROW_HOUSE",
        "SEMI_DETACHED",
        "APARTMENT_BUILDING",
        "RESIDENTIAL_COMMERCIAL_BUILDING"
      ],
      "description": "German residential property category."
    },
    "totalPurchasePrice": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Total notarized purchase price in EUR."
    },
    "purchaseRelatedCosts": {
      "description": "Land transfer tax, notary, land-register, and broker costs in EUR. Defaults to 0.",
      "type": "number",
      "minimum": 0
    },
    "includedInventory": {
      "description": "Movable inventory included in the purchase price, in EUR. It is deducted before allocation.",
      "type": "number",
      "minimum": 0
    },
    "purchaseDate": {
      "type": "string",
      "description": "Date of the notarized purchase contract in YYYY-MM-DD format; must be from 1990-01-01 through today."
    },
    "constructionYear": {
      "type": "integer",
      "minimum": 1800,
      "maximum": 9007199254740991,
      "description": "Original construction year; it cannot be later than the purchase year."
    },
    "floorArea": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Living or usable floor area in square metres."
    },
    "landArea": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Plot area in square metres."
    },
    "standardLandValue": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Standard land value (Bodenrichtwert) in EUR per square metre."
    },
    "commercialShare": {
      "description": "Required for RESIDENTIAL_COMMERCIAL_BUILDING: whether the commercial share is under or over 50%.",
      "type": "string",
      "enum": [
        "under_50",
        "over_50"
      ]
    },
    "coOwnershipNumerator": {
      "description": "Co-ownership numerator (Miteigentumsanteil); required with the denominator for a condominium.",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "coOwnershipDenominator": {
      "description": "Co-ownership denominator; required with the numerator for a condominium.",
      "type": "number",
      "exclusiveMinimum": 0
    },
    "garages": {
      "description": "Number of above-ground garages. Improves the asset-method allocation by valuing parking separately. Ask the user if the property includes garages.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "undergroundParkingSpaces": {
      "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.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "monthlyNetColdRent": {
      "description": "Monthly net cold rent (base rent excluding utilities, in EUR). Essential for the income-based allocation method — 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.",
      "type": "number",
      "minimum": 0
    },
    "locale": {
      "description": "Language for the disclaimer and AfAMax attribution link. Defaults to German.",
      "default": "de",
      "type": "string",
      "enum": [
        "de",
        "en"
      ]
    }
  },
  "required": [
    "propertyType",
    "totalPurchasePrice",
    "purchaseDate",
    "constructionYear",
    "floorArea",
    "landArea",
    "standardLandValue"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

输出模式

{
  "type": "object",
  "properties": {
    "calculationId": {
      "type": "string",
      "minLength": 1
    },
    "input": {
      "type": "object",
      "properties": {
        "propertyType": {
          "type": "string",
          "enum": [
            "CONDOMINIUM",
            "SINGLE_FAMILY_HOUSE",
            "TWO_FAMILY_HOUSE",
            "ROW_HOUSE",
            "SEMI_DETACHED",
            "APARTMENT_BUILDING",
            "RESIDENTIAL_COMMERCIAL_BUILDING"
          ]
        },
        "totalPurchasePrice": {
          "type": "number"
        },
        "purchasePrice": {
          "type": "number",
          "description": "Property price after deducting included inventory."
        },
        "purchaseRelatedCosts": {
          "type": "number"
        },
        "includedInventory": {
          "type": "number"
        },
        "purchaseDate": {
          "type": "string"
        },
        "constructionYear": {
          "type": "number"
        },
        "floorArea": {
          "type": "number"
        },
        "landArea": {
          "type": "number"
        },
        "standardLandValue": {
          "type": "number"
        },
        "commercialShare": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "under_50",
                "over_50"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "coOwnershipNumerator": {
          "type": [
            "number",
            "null"
          ]
        },
        "coOwnershipDenominator": {
          "type": [
            "number",
            "null"
          ]
        },
        "garages": {
          "type": "number"
        },
        "undergroundParkingSpaces": {
          "type": "number"
        },
        "monthlyNetColdRent": {
          "type": [
            "number",
            "null"
          ]
        },
        "locale": {
          "type": "string",
          "enum": [
            "de",
            "en"
          ]
        }
      },
      "required": [
        "propertyType",
        "totalPurchasePrice",
        "purchasePrice",
        "purchaseRelatedCosts",
        "includedInventory",
        "purchaseDate",
        "constructionYear",
        "floorArea",
        "landArea",
        "standardLandValue",
        "commercialShare",
        "coOwnershipNumerator",
        "coOwnershipDenominator",
        "garages",
        "undergroundParkingSpaces",
        "monthlyNetColdRent",
        "locale"
      ],
      "additionalProperties": false
    },
    "applied": {
      "type": "object",
      "properties": {
        "method": {
          "type": "string",
          "enum": [
            "comparative",
            "income",
            "asset"
          ]
        },
        "landValue": {
          "type": "number"
        },
        "buildingValue": {
          "type": "number"
        },
        "totalValue": {
          "type": "number"
        },
        "buildingShare": {
          "type": "number"
        },
        "totalAcquisitionCost": {
          "type": "number"
        },
        "depreciationBase": {
          "type": "number"
        },
        "landAllocation": {
          "type": "number"
        },
        "currency": {
          "type": "string",
          "const": "EUR"
        }
      },
      "required": [
        "method",
        "landValue",
        "buildingValue",
        "totalValue",
        "buildingShare",
        "totalAcquisitionCost",
        "depreciationBase",
        "landAllocation",
        "currency"
      ],
      "additionalProperties": false
    },
    "methods": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "enum": [
              "comparative",
              "income",
              "asset"
            ]
          },
          "landValue": {
            "type": "number"
          },
          "buildingValue": {
            "type": "number"
          },
          "totalValue": {
            "type": "number"
          },
          "buildingShare": {
            "type": "number"
          },
          "totalAcquisitionCost": {
            "type": "number"
          },
          "depreciationBase": {
            "type": "number"
          },
          "landAllocation": {
            "type": "number"
          },
          "currency": {
            "type": "string",
            "const": "EUR"
          }
        },
        "required": [
          "method",
          "landValue",
          "buildingValue",
          "totalValue",
          "buildingShare",
          "totalAcquisitionCost",
          "depreciationBase",
          "landAllocation",
          "currency"
        ],
        "additionalProperties": false
      }
    },
    "skipped": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "enum": [
              "comparative",
              "income",
              "asset"
            ]
          },
          "missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "method",
          "missing"
        ],
        "additionalProperties": false
      }
    },
    "degenerate": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "enum": [
              "comparative",
              "income",
              "asset"
            ]
          },
          "reason": {
            "type": "string",
            "enum": [
              "operating-costs-exceed-rent",
              "income-below-land-interest",
              "no-building-value"
            ]
          }
        },
        "required": [
          "method",
          "reason"
        ],
        "additionalProperties": false
      }
    },
    "assetMethodDefaults": {
      "type": "object",
      "properties": {
        "standardLevel": {
          "type": "number"
        },
        "regionalFactor": {
          "type": "number",
          "const": 1
        },
        "marketAdjustmentFactor": {
          "type": "number",
          "const": 1
        }
      },
      "required": [
        "standardLevel",
        "regionalFactor",
        "marketAdjustmentFactor"
      ],
      "additionalProperties": false
    },
    "attribution": {
      "type": "object",
      "properties": {
        "provider": {
          "type": "string",
          "const": "AfaMax"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "provider",
        "url",
        "label"
      ],
      "additionalProperties": false
    },
    "disclaimer": {
      "type": "string"
    },
    "meta": {
      "type": "object",
      "properties": {
        "apiVersion": {
          "type": "string"
        },
        "calculationMethod": {
          "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))$"
        }
      },
      "required": [
        "apiVersion",
        "calculationMethod",
        "calculatedAt"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "calculationId",
    "input",
    "applied",
    "methods",
    "skipped",
    "degenerate",
    "assetMethodDefaults",
    "attribution",
    "disclaimer",
    "meta"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

社区

评价此服务器

证据

最近观测

已验证未记录版本2 个工具
已验证未记录版本2 个工具