Skip to main content
Glama

normhyra

Konvertera hyreslista till normhyra

calculate_rent_roll
Read-onlyIdempotent

Konvertera en hel hyreslista (valfritt antal lägenheter, ingen övre gräns) 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 eller månadshyra; månadshyra konverteras automatiskt till årshyra genom ×12 före beräkningen. Lägenhetstyper anges som fri text (t.ex. '2 rok', '3RK') och tolkas automatiskt. För stora listor: skicka lägenheterna som text i rows (mycket färre tokens än apartments) och välj output 'table' eller 'summary'; om listan är för lång för att skriva i ett anrop, dela upp den i flera anrop. 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. Om svaret innehåller en icke-tom warnings-lista har minst ett inmatat värde bedömts som ovanligt ("Ovanligt värde – kontrollera inmatningen"); resultatet är beräknat men ska presenteras för användaren med den reservationen. Rader med blockerande fel får error och inget resultat.

Input Schema

NameRequiredDescriptionDefault
rowsNoKompakt alternativ till apartments – rekommenderas för stora hyreslistor (sparar tokens). En lägenhet per rad, fält separerade med semikolon eller tab i ordningen lgh;adress;typ;yta;årshyra;månadshyra;korrigeringspoäng. Tomma fält tillåts (t.ex. ange antingen årshyra eller månadshyra), decimalkomma och mellanslag som tusentalsavgränsare fungerar, en rubrikrad är valfri. Exempel: "1101;Nybrogatan 63;2 rok;58,5;98400;;0". Ange apartments ELLER rows.
outputNoSvarsformat: 'full' = alla fält per rad (standard upp till 50 lägenheter), 'table' = kort semikolontabell lgh;typ;yta;årshyra;norm78;norm91;norm12 (standard över 50), 'summary' = bara sammanfattning plus rader med fel eller varningar.
apartmentsNoLista med lägenheter som objekt. För stora listor, använd rows i stället.
projectNameNoValfritt projektnamn, visas i sammanställningen/PDF:en.
propertyDesignationsNoValfria fastighetsbeteckningar, t.ex. ['Förrådet 2'].

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / apartments / description
      Previous value: -"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)."New value: +"Lista med lägenheter som objekt. För stora listor, använd rows i stället."
    • removedInput schema / properties / apartments / maxItems
      Removed value: -300
    • removedInput schema / properties / apartments / minItems
      Removed value: -1
    • addedInput schema / properties / output
      Added value: +{
      +  "description": "Svarsformat: 'full' = alla fält per rad (standard upp till 50 lägenheter), 'table' = kort semikolontabell lgh;typ;yta;årshyra;norm78;norm91;norm12 (standard över 50), 'summary' = bara sammanfattning plus rader med fel eller varningar.",
      +  "enum": [
      +    "full",
      +    "table",
      +    "summary"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / rows
      Added value: +{
      +  "description": "Kompakt alternativ till apartments – rekommenderas för stora hyreslistor (sparar tokens). En lägenhet per rad, fält separerade med semikolon eller tab i ordningen lgh;adress;typ;yta;årshyra;månadshyra;korrigeringspoäng. Tomma fält tillåts (t.ex. ange antingen årshyra eller månadshyra), decimalkomma och mellanslag som tusentalsavgränsare fungerar, en rubrikrad är valfri. Exempel: \"1101;Nybrogatan 63;2 rok;58,5;98400;;0\". Ange apartments ELLER rows.",
      +  "type": "string"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "apartments"
      -]
  2. Changed2 schema fields changed
    • changedInput schema / properties / apartments / items / properties / monthlyRent / description
      Previous value: -"Månadshyra i kronor (räknas om till årshyra ×12)."New value: +"Månadshyra i kronor. Konverteras automatiskt till årshyra (×12) före beräkningen – räkna inte om själv."
    • changedInput schema / properties / apartments / items / properties / yearlyRent / description
      Previous value: -"Årshyra i kronor. Ange yearlyRent ELLER monthlyRent."New value: +"Årshyra i kronor. Ange yearlyRent ELLER monthlyRent (minst ett krävs per lägenhet)."
  3. First observed

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, idempotentHint, openWorldHint=false), and the description adds substantial extra behavior: monthly rent is auto-converted (×12) so the caller must not do it, non-empty warnings means an unusual value was detected but the result is still computed, rows with blocking errors get error and no result, and every response carries a mandatory attribution field to display. This is well beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a long description but tightly packed — purpose first, then per-apartment semantics, then large-list strategy, then response/attribution and warning behavior. Nearly every sentence carries distinct, load-bearing information; only the reference to the normhyra.ai website is marginal padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description fully compensates by describing the return shape: per-apartment normhyra values, an aggregate summary with totals and averages, warnings, error rows, and the attribution field. Combined with the exhaustive parameter schema, an agent has everything needed to call and present results correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds operational meaning on top: the rows-as-text format and token savings rationale, the large-list default switch of the output parameter, and that apartment types are free text interpreted automatically. These go beyond the schema's field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: converting an entire rent roll (any number of apartments, no upper limit) to normhyra in a single call, and clearly scopes that each apartment is recomputed for norm -78, -91 and -12. It names one sibling (export_rent_roll_pdf) for a related task, but does not distinguish itself from calculate_normhyra or calculate_actual_rent, which are the closest competing siblings an agent must choose between.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage guidance: use rows instead of apartments for large lists to save tokens, pick output 'table' or 'summary' for long lists, and split across multiple calls if a list is too long. It routes to export_rent_roll_pdf for PDF generation. It stops short of explicit 'when not to use' versus the sibling calculators.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources