Skip to main content
Glama

Gulvbuddy prisestimat

Estimer nyt trægulv

estimer_traegulv
Read-onlyIdempotent

Estimate the price of a new wood floor installed in Denmark (DKK incl. VAT). Giver et vejledende prisestimat for nyt trægulv inkl. montering og moms, som et spænd fra og til. Et estimat er ikke et tilbud; den faste pris kommer efter opmåling. Felter der udelades, indgår som et spænd over alle valgmuligheder.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "m2": "<m2>",
      "moenster": "<moenster>"
    },
    "name": "estimer_traegulv"
  }
}

Input Schema

NameRequiredDescriptionDefault
m2YesGulvets areal i kvadratmeter (m²).
nuanceNoGulvets farvenuance (colour tone). natur: Natur, hvid: Hvid, brun: Brun, gra: Mørk.
slidlagNoSlidlagets tykkelse (wear layer). lamel25: 3,5 mm, lamel6: 5,5 mm.
elevatorNoOm bygningen har elevator (ja eller nej).
moensterYesLægningsmønster (pattern): planker, sildeben (herringbone) eller chevron.
boligtypeNoBoligens type.
faestelseNoLægningsmetode (installation method). fuldlimet: Fuldlimet, flydende: Flydende.
fodlisterNoFodlister (skirting boards). ingen: Behold dine egne, mdf: Hvide lister, eg: Massiv eg.
gulvvarmeNoGulvvarme (underfloor heating): ingen, findes (findes allerede) eller tilfoej (skal etableres).
sorteringNoTræets sortering (grade). faa: Med knaster, ingen: Rolig.
behandlingNoOverfladebehandling (finish). olie: Olie, lak: Lak.
postnummerNoPostnummer (postcode) på det sted gulvet skal ligge, fire cifre.
stoerrelseNoPlankestørrelse (plank size). standard: Standard, stor: Stor.
bygningsaarNoBoligens byggeår (year built), fire cifre.
gammelt_gulvNoGulvet der ligger i dag: ingen, flydende (floating), limet_skruet (glued or screwed), klinker (tiles) eller ved_ikke.
fjern_gammeltNoOm det gamle gulv skal fjernes (true eller false).

Output Schema

NameRequiredDescriptionDefault
sporYes
typeYes
beskedYes
linjerYes
metodeYes
areal_m2Yes
daekningYes
varighedYes
forbeholdYes
sikkerhedYes
undergulvYes
linjer_noteYes
regnet_udenYes
uoplyste_valgYes
pris_inkl_momsYes
konfigurator_urlYes
uoplyste_valg_tekstYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed31 schema fields changed
    • addedInput schema / properties / behandling / description
      Added value: +"Overfladebehandling (finish). olie: Olie, lak: Lak."
    • addedInput schema / properties / behandling / enum
      Added value: +[
      +  "olie",
      +  "lak"
      +]
    • removedInput schema / properties / behandling / pattern
      Removed value: -"^[a-z0-9_]{1,24}$"
    • addedInput schema / properties / boligtype / description
      Added value: +"Boligens type."
    • addedInput schema / properties / bygningsaar / description
      Added value: +"Boligens byggeår (year built), fire cifre."
    • addedInput schema / properties / elevator / description
      Added value: +"Om bygningen har elevator (ja eller nej)."
    • addedInput schema / properties / faestelse / description
      Added value: +"Lægningsmetode (installation method). fuldlimet: Fuldlimet, flydende: Flydende."
    • addedInput schema / properties / faestelse / enum
      Added value: +[
      +  "fuldlimet",
      +  "flydende"
      +]
    • removedInput schema / properties / faestelse / pattern
      Removed value: -"^[a-z0-9_]{1,24}$"
    • addedInput schema / properties / fjern_gammelt / description
      Added value: +"Om det gamle gulv skal fjernes (true eller false)."
    • addedInput schema / properties / fodlister / description
      Added value: +"Fodlister (skirting boards). ingen: Behold dine egne, mdf: Hvide lister, eg: Massiv eg."
    • addedInput schema / properties / fodlister / enum
      Added value: +[
      +  "ingen",
      +  "mdf",
      +  "eg"
      +]
    • removedInput schema / properties / fodlister / pattern
      Removed value: -"^[a-z0-9_]{1,24}$"
    • addedInput schema / properties / gammelt_gulv / description
      Added value: +"Gulvet der ligger i dag: ingen, flydende (floating), limet_skruet (glued or screwed), klinker (tiles) eller ved_ikke."
    • addedInput schema / properties / gulvvarme / description
      Added value: +"Gulvvarme (underfloor heating): ingen, findes (findes allerede) eller tilfoej (skal etableres)."
    • addedInput schema / properties / m2 / description
      Added value: +"Gulvets areal i kvadratmeter (m²)."
    • addedInput schema / properties / moenster / description
      Added value: +"Lægningsmønster (pattern): planker, sildeben (herringbone) eller chevron."
    • addedInput schema / properties / nuance / description
      Added value: +"Gulvets farvenuance (colour tone). natur: Natur, hvid: Hvid, brun: Brun, gra: Mørk."
    • addedInput schema / properties / nuance / enum
      Added value: +[
      +  "natur",
      +  "hvid",
      +  "brun",
      +  "gra"
      +]
    • removedInput schema / properties / nuance / pattern
      Removed value: -"^[a-z0-9_]{1,24}$"
    • addedInput schema / properties / postnummer / description
      Added value: +"Postnummer (postcode) på det sted gulvet skal ligge, fire cifre."
    • addedInput schema / properties / slidlag / description
      Added value: +"Slidlagets tykkelse (wear layer). lamel25: 3,5 mm, lamel6: 5,5 mm."
    • addedInput schema / properties / slidlag / enum
      Added value: +[
      +  "lamel25",
      +  "lamel6"
      +]
    • removedInput schema / properties / slidlag / pattern
      Removed value: -"^[a-z0-9_]{1,24}$"
    • addedInput schema / properties / sortering / description
      Added value: +"Træets sortering (grade). faa: Med knaster, ingen: Rolig."
    • addedInput schema / properties / sortering / enum
      Added value: +[
      +  "faa",
      +  "ingen"
      +]
    • removedInput schema / properties / sortering / pattern
      Removed value: -"^[a-z0-9_]{1,24}$"
    • addedInput schema / properties / stoerrelse / description
      Added value: +"Plankestørrelse (plank size). standard: Standard, stor: Stor."
    • addedInput schema / properties / stoerrelse / enum
      Added value: +[
      +  "standard",
      +  "stor"
      +]
    • removedInput schema / properties / stoerrelse / pattern
      Removed value: -"^[a-z0-9_]{1,24}$"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "areal_m2": {
      +      "type": "number"
      +    },
      +    "besked": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "daekning": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "daekket",
      +            "forespoergsel",
      +            "udenfor",
      +            "ukendt"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "forbehold": {
      +      "type": "string"
      +    },
      +    "konfigurator_url": {
      +      "type": "string"
      +    },
      +    "linjer": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "fra": {
      +            "type": "number"
      +          },
      +          "navn": {
      +            "type": "string"
      +          },
      +          "sektion": {
      +            "type": "string"
      +          },
      +          "til": {
      +            "type": "number"
      +          }
      +        },
      +        "required": [
      +          "sektion",
      +          "navn",
      +          "fra",
      +          "til"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "linjer_note": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "metode": {
      +      "type": "string"
      +    },
      +    "pris_inkl_moms": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "fra": {
      +              "type": "number"
      +            },
      +            "til": {
      +              "type": "number"
      +            },
      +            "valuta": {
      +              "const": "DKK",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "fra",
      +            "til",
      +            "valuta"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "regnet_uden": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "sikkerhed": {
      +      "type": "string"
      +    },
      +    "spor": {
      +      "const": "nyt_gulv",
      +      "type": "string"
      +    },
      +    "type": {
      +      "const": "estimat",
      +      "type": "string"
      +    },
      +    "undergulv": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "i_totalen": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "tekst": {
      +          "type": "string"
      +        },
      +        "typisk_spaend_inkl_moms": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": {},
      +              "properties": {
      +                "fra": {
      +                  "type": "number"
      +                },
      +                "til": {
      +                  "type": "number"
      +                }
      +              },
      +              "required": [
      +                "fra",
      +                "til"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "i_totalen",
      +        "tekst",
      +        "typisk_spaend_inkl_moms"
      +      ],
      +      "type": "object"
      +    },
      +    "uoplyste_valg": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "behandling": {
      +            "type": "string"
      +          },
      +          "felt": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "felt",
      +          "behandling"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "uoplyste_valg_tekst": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "varighed": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": {},
      +          "properties": {
      +            "dage_fra": {
      +              "type": "number"
      +            },
      +            "dage_til": {
      +              "type": "number"
      +            },
      +            "tekst": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "dage_fra",
      +            "dage_til",
      +            "tekst"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "type",
      +    "spor",
      +    "areal_m2",
      +    "pris_inkl_moms",
      +    "sikkerhed",
      +    "besked",
      +    "linjer",
      +    "linjer_note",
      +    "undergulv",
      +    "varighed",
      +    "uoplyste_valg",
      +    "uoplyste_valg_tekst",
      +    "regnet_uden",
      +    "daekning",
      +    "forbehold",
      +    "metode",
      +    "konfigurator_url"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description usefully adds that output is a from-to range in DKK incl. VAT, that omitted fields widen the span, and that the estimate is not a binding quote — meaningful context beyond the annotations. It stops short of describing dependencies between inputs (e.g. pattern or subfloor affecting price) that would matter for a 16-parameter pricing tool.

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

Conciseness3/5

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

It is short and front-loaded, but the English first sentence and the Danish follow-up restate the same fact (price estimate for a new wood floor incl. installation and VAT), which is wasted text. The language switch also adds noise for an agent parsing the definition.

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

Completeness4/5

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

For a 16-parameter estimator with a full output schema and rich annotations, the description covers scope, currency, VAT treatment, output shape and the omitted-field rule — enough to invoke it correctly. Only the absence of routing to sibling tools (forklar_prisen, estimer_slibning) leaves a gap.

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?

With 100% schema description coverage, the schema already documents every parameter and enum value, so the baseline is 3. The description adds one real semantic rule the schema does not: omitted optional fields are not treated as defaults but are priced as a span across all options, which changes how an agent should decide whether to fill them in.

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?

The first sentence gives a specific verb and resource: 'Estimate the price of a new wood floor installed in Denmark (DKK incl. VAT)'. 'Nyt trægulv' implicitly separates it from the sanding sibling estimer_slibning, but no sibling is named and no explicit boundary is drawn.

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?

It sets clear expectations for use: the result is a range, an estimate is not a quote, and the firm price only follows an on-site measurement. It also explains what happens when fields are omitted (the range widens over all options), which is genuine usage guidance, but it never names an alternative tool for adjacent needs.

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