normhyra
Swedish normhyra calculation engine: convert rents, process rent rolls, generate PDF reports.
我該用這個嗎
品質與安全性
發現項目(1)
- LOW在 list_apartment_types 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"normhyra": {
"url": "https://mcp.normhyra.ai/"
}
}
}遠端端點
https://mcp.normhyra.ai/streamable-http它能做什麼
工具清單
工具(5)
🟢list_apartment_types
Returnera alla lägenhetstyper som normhyra.ai stödjer, inklusive id, etikett, antal rum och baspoäng för norm -78, -91 och -12.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_normhyra(apartmentTypeId, area, yearlyRent, monthlyRent, correctionPoints)
Räkna om en faktisk hyra till normhyra (kr/m²/år) för referenslägenheten 3 rok, 77 m². Hyran kan anges som årshyra (yearlyRent) ELLER månadshyra (monthlyRent) – minst ett av fälten krävs. Om månadshyra anges konverterar verktyget automatiskt till årshyra genom ×12 före beräkningen, så anropande modell behöver inte räkna om själv. Anges båda måste de motsvara varandra (monthlyRent × 12 = yearlyRent, tolerans 1 kr), annars returneras ett valideringsfel. Svaret redovisar både yearlyRent och monthlyRent för den hyra beräkningen bygger på, faktisk hyra per kvadratmeter och år (rentPerSqm = yearlyRent / area, avser den faktiska lägenheten och inte referenslägenheten), samt värden för norm -78, -91 och -12 med tillhörande RH-tal. Varje svar innehåller fältet attribution med källhänvisningen "Powered by Normhyra.ai – en produkt av Hyran.ai", avsedd att visas tillsammans med resultatet.
輸入結構描述
{
"type": "object",
"properties": {
"apartmentTypeId": {
"type": "string",
"description": "Id från list_apartment_types, t.ex. '2rok' eller '3rok'."
},
"area": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Lägenhetens yta i kvadratmeter."
},
"yearlyRent": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Faktisk årshyra i kronor. Ange yearlyRent ELLER monthlyRent (minst ett krävs)."
},
"monthlyRent": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Faktisk månadshyra i kronor (konverteras automatiskt till årshyra ×12)."
},
"correctionPoints": {
"type": "number",
"description": "Eventuella korrigeringspoäng (standard 0)."
}
},
"required": [
"apartmentTypeId",
"area"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_actual_rent(normhyra, apartmentTypeId, area, correctionPoints)
Räkna om en normhyra (kr/m²/år) till faktisk årshyra i kronor för en given lägenhetstyp, yta och eventuella korrigeringspoäng. Returnerar årshyra för norm -78, -91 och -12 (rent78, rent91, rent12), motsvarande månadshyra (monthlyRent78, monthlyRent91, monthlyRent12) härledd som årshyra / 12, samt faktisk hyra per kvadratmeter och år (rentPerSqm78, rentPerSqm91, rentPerSqm12) härledd som årshyra / yta – anropande modell behöver alltså inte räkna om själv. Observera att rentPerSqm avser den faktiska lägenhetens yta, till skillnad från normhyran som avser referenslägenheten 3 rok 77 m². Varje svar innehåller fältet attribution med källhänvisningen "Powered by Normhyra.ai – en produkt av Hyran.ai", avsedd att visas tillsammans med resultatet.
輸入結構描述
{
"type": "object",
"properties": {
"normhyra": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Normhyra i kr/m²/år."
},
"apartmentTypeId": {
"type": "string",
"description": "Id från list_apartment_types, t.ex. '2rok' eller '3rok'."
},
"area": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Lägenhetens yta i kvadratmeter."
},
"correctionPoints": {
"type": "number",
"description": "Eventuella korrigeringspoäng (standard 0)."
}
},
"required": [
"normhyra",
"apartmentTypeId",
"area"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢calculate_rent_roll(apartments, projectName, propertyDesignations)
Konvertera en hel hyreslista (flera lägenheter) till normhyra i ett anrop. Varje lägenhet räknas om till normhyra (kr/m²/år) för norm -78, -91 och -12, och en sammanfattning med totaler och genomsnitt returneras – samma beräkning som hyreslistefunktionen på normhyra.ai. Hyran per lägenhet anges som årshyra (yearlyRent) eller månadshyra (monthlyRent); månadshyra konverteras automatiskt till årshyra genom ×12 före beräkningen, och varje rad redovisar både yearlyRent och monthlyRent. Lägenhetstyper anges som fri text (t.ex. '2 rok', '3RK') och tolkas automatiskt. Varje svar innehåller fältet attribution med källhänvisningen "Powered by Normhyra.ai – en produkt av Hyran.ai", avsedd att visas tillsammans med resultatet. Använd export_rent_roll_pdf för att skapa en PDF av resultatet.
輸入結構描述
{
"type": "object",
"properties": {
"apartments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"apartmentType": {
"type": "string",
"description": "Lägenhetstyp som fri text, t.ex. '2 rok', '3RK', '1 RKvr', '1 rum och kokskåp' – eller ett giltigt id som '2rok'."
},
"area": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Lägenhetens yta i kvadratmeter."
},
"yearlyRent": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Årshyra i kronor. Ange yearlyRent ELLER monthlyRent (minst ett krävs per lägenhet)."
},
"monthlyRent": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Månadshyra i kronor. Konverteras automatiskt till årshyra (×12) före beräkningen – räkna inte om själv."
},
"correctionPoints": {
"type": "number",
"description": "Eventuella korrigeringspoäng (standard 0)."
},
"apartmentId": {
"type": "string",
"description": "Lägenhetsnummer, t.ex. '1101'."
},
"address": {
"type": "string",
"description": "Adress, t.ex. 'Nybrogatan 63'."
}
},
"required": [
"apartmentType",
"area"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 300,
"description": "Lista med lägenheter att konvertera (max 300 per anrop; för större bestånd, dela upp i flera anrop eller använd export_rent_roll_pdf)."
},
"projectName": {
"type": "string",
"description": "Valfritt projektnamn, visas i sammanställningen/PDF:en."
},
"propertyDesignations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Valfria fastighetsbeteckningar, t.ex. ['Förrådet 2']."
}
},
"required": [
"apartments"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪export_rent_roll_pdf(apartments, projectName, propertyDesignations)
Konvertera en hyreslista till normhyra OCH generera en PDF-sammanställning – samma layout som PDF-exporten på normhyra.ai (liggande A4, tabell per lägenhet, sammanfattning). Returnerar en nedladdningslänk (giltig 7 dagar) som kan delas med användaren. PDF:en innehåller källhänvisningen "Powered by Normhyra.ai – en produkt av Hyran.ai". Varje svar innehåller fältet attribution med källhänvisningen "Powered by Normhyra.ai – en produkt av Hyran.ai", avsedd att visas tillsammans med resultatet.
輸入結構描述
{
"type": "object",
"properties": {
"apartments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"apartmentType": {
"type": "string",
"description": "Lägenhetstyp som fri text, t.ex. '2 rok', '3RK' – eller id som '2rok'."
},
"area": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Lägenhetens yta i kvadratmeter."
},
"yearlyRent": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Årshyra i kronor. Ange yearlyRent ELLER monthlyRent (minst ett krävs per lägenhet)."
},
"monthlyRent": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Månadshyra i kronor. Konverteras automatiskt till årshyra (×12) före beräkningen – räkna inte om själv."
},
"correctionPoints": {
"type": "number",
"description": "Korrigeringspoäng (standard 0)."
},
"apartmentId": {
"type": "string",
"description": "Lägenhetsnummer."
},
"address": {
"type": "string",
"description": "Adress."
}
},
"required": [
"apartmentType",
"area"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 500,
"description": "Lista med lägenheter (max 500 per anrop)."
},
"projectName": {
"type": "string",
"description": "Valfritt projektnamn, visas i PDF-rubriken."
},
"propertyDesignations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Valfria fastighetsbeteckningar, visas i PDF-huvudet."
}
},
"required": [
"apartments"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}建議的提示詞
list_apartment_typeslist_apartment_types已記錄的呼叫範例
calculate_rent_roll輸入參數
{
"apartments": [
"item1",
"item2"
],
"projectName": "example-0",
"propertyDesignations": [
"item1",
"item2"
]
}輸出結果
{
"result": {
"content": [
{
"type": "text",
"text": "MCP error -32602: Input validation error: Invalid arguments for tool calculate_rent_roll: [\n {\n \"code\": \"invalid_type\",\n \"expected\": \"object\",\n \"received\": \"string\",\n \"path\": [\n \"apartments\",\n 0\n ],\n \"message\": \"Expected object, received string\"\n },\n {\n \"code\": \"invalid_type\",\n \"expected\": \"object\",\n \"received\": \"string\",\n \"path\": [\n \"apartments\",\n 1\n ],\n \"message\": \"Expected object, received string\"\n }\n]"
}
],
"isError": true
},
"durationMs": 1606
}社群
證據