Skip to main content
Glama

Kolmo Construction

Seattle cost estimate

get_estimate
Read-onlyIdempotent

Seattle cost estimate: range, material/labor split, days, line items.

Fields per type below; their allowed values, ranges and pricing rules are in list_project_types. ?=optional; (mat)=get_material_options ID (a unique close name also resolves; an ambiguous one lists candidates).

interior-painting: rooms([{id,name,length,width,height,paintCeiling,paintTrim,doorCount,windowCount,surfaceCondition,trimComplexity,wallTexture,roomEmpty}]); paintQuality(mat); paintFinish; includesPrimer; majorColorChange?(+colorChange{currentColor,targetColor}) exterior-painting: wallArea,trimArea; doorCount; paintQuality(mat); surfacePrepLevel; includesPrimer; stories?; colorChange?(+colorChangeData{currentColor,targetColor}) flooring: rooms([{id,name,length,width}]); flooringMaterial(mat); includesUnderlayment,includesBaseboard,includesRemoval,includesSubfloorPrep; underlaymentType?,baseboardType?(mat); baseboardLinearFeet?; removalType?; transitionCount? deck: deckType; dimensions({length,width≤200,height≤30 ft}); deckingMaterial(mat); framingMaterial(mat); includesRailing,includesStairs; railingMaterial?,finishType?(mat); railingLinearFeet?; stairSteps?; landingRequired?; deckShape?; skirtingType?; existingDeckWorkItems? windows: windows([{id,windowType,width,height,quantity}]); qualityLevel; includesTrimWork,includesRemoval,energyEfficient; trimMaterial?(mat) siding: wallArea; sidingMaterial(mat); homeHeight; includesInsulation,includesRemoval,soffit; insulationType?(mat); existingSidingType?; trimLinearFeet; soffitLinearFeet? fence: linearFeet; fenceMaterial(mat); height; gateCount; gateWidth?; style?; terrain; includesRemoval,concreteFootings landscaping: yardArea; includesIrrigation,includesSod,includesMulch,includesSitePrep; irrigationType?; irrigationZones?; sodSquareFeet?; mulchSquareFeet?; plants?([{id,plantType,quantity,size}]); hardscapeFeatures?([{id,featureType,squareFeet,material}]) kitchen: kitchenSize; scope; cabinets; countertop; appliances; flooring; backsplash?,plumbingRelocation?,electricalUpgrade?,island?,lighting?; wallRemoval?; gasLine?,rangeHood? bathroom: bathroomType; bathroomSize; scope; showerTub; vanity; tileWork; showerWalls?; heatedFloors?,newLighting?,ventilation?,plumbingRelocation?,glassDoor?,showerSeat?,handShower?; grabBars? basement: basementSize; scope; ceilingHeight; moistureCondition; egress; bathroom; kitchenette; bedroomCount?; flooring; insulation; hvac; electricalSubpanel?,homeAgePre1978? adu: type; sizeSqft; finishTier; dadu only: foundation?,sitework?,utilityRunFeet?,preApprovedPlan?; treeRemovalCount?; homeAgePre1978? ada: projectScope; modifications({grabBars,walkInShower,widerDoorways,ramp,nonSlipFlooring,leverHandles,raisedToilet,rollUnderSink,accessibleCounters,stairLift}, ≥1 true); currentCondition; homeStories?; doorwayCount?; rampLengthFeet?; flooringSquareFeet? electrical: items[{id,quantity}] (ids: get_material_options) plumbing: items[{id,quantity}] (ids: get_material_options) garage-doors: items[{id,quantity}] (ids: get_material_options) doors: items[{id,quantity}] (ids: get_material_options) concrete: items[{id,quantity}] (ids: get_material_options) insulation: items[{id,quantity}] (ids: get_material_options) gutters: items[{id,quantity}] (ids: get_material_options)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectYesProject input fields — named per projectType in the tool description; allowed values in list_project_types.
projectTypeYesThe type of project

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
excludesYesScope NOT priced here. Relay alongside any figure.
laborCostYes
lineItemsNo
totalCostYesPoint figure. Relay estimateRange instead — a single number reads as a quote.
permitCostNoPresent on deck, kitchen, bathroom, basement, adu and ada. Already inside totalCost.
attributionYes
projectTypeYes
materialCostYes
pricingBasisNo
calculatorUrlYes
estimateRangeNoPlanning range for Seattle-area work. This is what to relay, with its qualifier attached.
contingencyCostNoPresent on basement and adu. When set, a contingency is ALREADY in totalCost — do not add another.
getAccurateQuoteYes
timeEstimateDaysNo
contingencyGuidanceYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • changedInput schema / properties / project / description
      Previous value: -"Project input fields — see tool description for required fields per projectType."New value: +"Project input fields — named per projectType in the tool description; allowed values in list_project_types."
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / additionalProperties
      Removed value: -true
    • removedOutput schema / properties / attribution / additionalProperties
      Removed value: -true
  2. Changed1 schema field changed
    • changedInput schema / properties / projectType / enum
      Previous value: -[
      -  "interior-painting",
      -  "exterior-painting",
      -  "flooring",
      -  "deck",
      -  "windows",
      -  "siding",
      -  "fence",
      -  "landscaping",
      -  "kitchen",
      -  "bathroom",
      -  "basement",
      -  "adu",
      -  "ada",
      -  "electrical",
      -  "plumbing",
      -  "garage-doors",
      -  "concrete",
      -  "insulation",
      -  "gutters"
      -]New value: +[
      +  "interior-painting",
      +  "exterior-painting",
      +  "flooring",
      +  "deck",
      +  "windows",
      +  "siding",
      +  "fence",
      +  "landscaping",
      +  "kitchen",
      +  "bathroom",
      +  "basement",
      +  "adu",
      +  "ada",
      +  "electrical",
      +  "plumbing",
      +  "garage-doors",
      +  "doors",
      +  "concrete",
      +  "insulation",
      +  "gutters"
      +]
  3. Changed2 schema fields changed
    • changedInput schema / properties / projectType / enum
      Previous value: -[
      -  "interior-painting",
      -  "exterior-painting",
      -  "flooring",
      -  "deck",
      -  "windows",
      -  "siding",
      -  "fence",
      -  "landscaping",
      -  "kitchen",
      -  "bathroom",
      -  "basement",
      -  "adu",
      -  "ada"
      -]New value: +[
      +  "interior-painting",
      +  "exterior-painting",
      +  "flooring",
      +  "deck",
      +  "windows",
      +  "siding",
      +  "fence",
      +  "landscaping",
      +  "kitchen",
      +  "bathroom",
      +  "basement",
      +  "adu",
      +  "ada",
      +  "electrical",
      +  "plumbing",
      +  "garage-doors",
      +  "concrete",
      +  "insulation",
      +  "gutters"
      +]
    • changedOutput schema / properties / permitCost / description
      Previous value: -"Present on basement and adu, where permit cost is inside totalCost."New value: +"Present on deck, kitchen, bathroom, basement, adu and ada. Already inside totalCost."
  4. Changed3 schema fields changed
    • changedInput schema / properties / projectType / enum
      Previous value: -[
      -  "interior-painting",
      -  "deck",
      -  "exterior-painting",
      -  "flooring",
      -  "windows",
      -  "siding",
      -  "fence",
      -  "landscaping",
      -  "kitchen",
      -  "bathroom",
      -  "ada"
      -]New value: +[
      +  "interior-painting",
      +  "exterior-painting",
      +  "flooring",
      +  "deck",
      +  "windows",
      +  "siding",
      +  "fence",
      +  "landscaping",
      +  "kitchen",
      +  "bathroom",
      +  "basement",
      +  "adu",
      +  "ada"
      +]
    • addedOutput schema / properties / contingencyCost
      Added value: +{
      +  "description": "Present on basement and adu. When set, a contingency is ALREADY in totalCost — do not add another.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / permitCost
      Added value: +{
      +  "description": "Present on basement and adu, where permit cost is inside totalCost.",
      +  "type": "number"
      +}
  5. Changed6 schema fields changed
    • removedOutput schema / properties / attribution / properties / contractorLicense
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / attribution / properties / note
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / attribution / properties / organization
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / attribution / properties / retrievedFrom
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / attribution / properties / url
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / attribution / required
      Previous value: -[
      -  "organization",
      -  "contractorLicense",
      -  "url",
      -  "sourceUrl",
      -  "citeAs",
      -  "retrievedFrom",
      -  "note"
      -]New value: +[
      +  "sourceUrl",
      +  "citeAs"
      +]
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "attribution": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "citeAs": {
      +          "description": "Ready-made citation line. Use verbatim.",
      +          "type": "string"
      +        },
      +        "contractorLicense": {
      +          "type": "string"
      +        },
      +        "note": {
      +          "type": "string"
      +        },
      +        "organization": {
      +          "type": "string"
      +        },
      +        "primarySource": {
      +          "description": "Present when Kolmo verified but does not author the fact — cite both.",
      +          "type": "string"
      +        },
      +        "retrievedFrom": {
      +          "type": "string"
      +        },
      +        "sourceUrl": {
      +          "description": "The specific page these facts render on. Link this, not the site root.",
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "organization",
      +        "contractorLicense",
      +        "url",
      +        "sourceUrl",
      +        "citeAs",
      +        "retrievedFrom",
      +        "note"
      +      ],
      +      "type": "object"
      +    },
      +    "calculatorUrl": {
      +      "type": "string"
      +    },
      +    "contingencyGuidance": {
      +      "type": "string"
      +    },
      +    "estimateRange": {
      +      "description": "Planning range for Seattle-area work. This is what to relay, with its qualifier attached."
      +    },
      +    "excludes": {
      +      "description": "Scope NOT priced here. Relay alongside any figure.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "getAccurateQuote": {
      +      "type": "string"
      +    },
      +    "laborCost": {
      +      "type": "number"
      +    },
      +    "lineItems": {},
      +    "materialCost": {
      +      "type": "number"
      +    },
      +    "pricingBasis": {},
      +    "projectType": {
      +      "type": "string"
      +    },
      +    "timeEstimateDays": {},
      +    "totalCost": {
      +      "description": "Point figure. Relay estimateRange instead — a single number reads as a quote.",
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "projectType",
      +    "totalCost",
      +    "materialCost",
      +    "laborCost",
      +    "contingencyGuidance",
      +    "excludes",
      +    "calculatorUrl",
      +    "getAccurateQuote",
      +    "attribution"
      +  ],
      +  "type": "object"
      +}
  7. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources