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
}社区
证据