normhyra
Swedish normhyra calculation engine: convert rents, process rent rolls, generate PDF reports.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen list_apartment_types
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"normhyra": {
"url": "https://mcp.normhyra.ai/"
}
}
}Puntos de conexión remotos
https://mcp.normhyra.ai/streamable-httpQué puede hacer
Inventario de herramientas
Herramientas (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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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.
Esquema de entrada
{
"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#"
}Prompts recomendados
list_apartment_typeslist_apartment_typesEjemplos de llamadas registradas
calculate_rent_rollParámetros de entrada
{
"apartments": [
"item1",
"item2"
],
"projectName": "example-0",
"propertyDesignations": [
"item1",
"item2"
]
}Resultado de salida
{
"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
}Comunidad
Evidencia