Skip to main content
Glama

Proper Job Building Cost Calculator

Get a rough building cost example

get_estimate_requirements
Read-onlyIdempotent

Retrieve UK/US input requirements or labelled reference examples when specifically requested. For a project budget, vague cost question or drawings, use calculate_building_work. Reference examples are not the user's project price. No account or drawing-file access.

Input Schema

NameRequiredDescriptionDefault
scopeNoCountry-specific project scope. Use UK fields for GB and US fields for US; do not invent unanswered values.
stateNoUS two-letter state or DC code.
countryNoCountry pricing policy. Use GB for Great Britain or US for the United States. If omitted, GB is used for backwards compatibility.
jobTypeNoResidential project type supported by the selected country policy.
zipCodeNoOptional US five-digit ZIP code. Never send a street address.
postcodeAreaNoGB outward postcode only, for example BS3. Never send a full address.

Output Schema

NameRequiredDescriptionDefault
dataNo
errorNo
statusYes
schemaVersionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / scope / properties / vatTreatment
      Added value: +{
      +  "description": "Supplier-confirmed VAT treatment of the priced construction scope. Never infer zero/reduced rating from a project label or registration. Mixed-rate work stays unconfirmed until split; separate fees/goods may differ.",
      +  "enum": [
      +    "unconfirmed",
      +    "standard_20",
      +    "qualifying_conversion_5",
      +    "qualifying_empty_home_5",
      +    "qualifying_new_dwelling_0",
      +    "mixed"
      +  ],
      +  "type": "string"
      +}
  2. Changed8 schema fields changed
    • addedInput schema / properties / scope / properties / additionalInternalWorkPackages / description
      Added value: +"Packages in existing rooms outside the main extension or loft. Kitchen work and Bathroom work use kitchenScope and bathroomScope to define the same room allowance and are counted once."
    • addedInput schema / properties / scope / properties / additionalInternalWorksArea / description
      Added value: +"Total floor area of existing rooms affected outside the main extension or loft, in the supplied area unit."
    • addedInput schema / properties / scope / properties / bathroomScope / description
      Added value: +"Bathroom work included anywhere in this project. If Bathroom work is also selected as an additional internal package, this scope defines that same bathroom allowance; do not describe it as a second bathroom."
    • addedInput schema / properties / scope / properties / finishBand / description
      Added value: +"Finish specification: Builder grade is budget, Good domestic is a normal quality domestic finish, and Premium domestic is higher specification."
    • addedInput schema / properties / scope / properties / includesAdditionalInternalWorks / description
      Added value: +"True only when the project also changes existing internal rooms outside the main extension or loft."
    • addedInput schema / properties / scope / properties / kitchenScope / description
      Added value: +"Kitchen work included anywhere in this project. If Kitchen work is also selected as an additional internal package, this scope defines that same kitchen allowance; do not describe it as a second kitchen."
    • addedInput schema / properties / scope / properties / propertyForm / description
      Added value: +"Existing property type. Use only the user's answer; do not infer it from the project type."
    • addedInput schema / properties / scope / properties / scopeBand / description
      Added value: +"Breadth of work: Lean is a reduced scope, Balanced is a normal complete scope, and Expanded is a broader scope. This is not a confidence or risk setting."
  3. Changed11 schema fields changed
    • changedInput schema / properties / scope / properties / basementLightwellCount / minimum
      Previous value: --9007199254740991New value: +0
    • changedInput schema / properties / scope / properties / bedroomCount / minimum
      Previous value: --9007199254740991New value: +0
    • changedInput schema / properties / scope / properties / commercialKitchenetteCount / minimum
      Previous value: --9007199254740991New value: +0
    • changedInput schema / properties / scope / properties / commercialWashroomCount / minimum
      Previous value: --9007199254740991New value: +0
    • changedInput schema / properties / scope / properties / commercialWorkstationCount / minimum
      Previous value: --9007199254740991New value: +0
    • changedInput schema / properties / scope / properties / decoratingDoorCount / minimum
      Previous value: --9007199254740991New value: +0
    • changedInput schema / properties / scope / properties / decoratingWindowCount / minimum
      Previous value: --9007199254740991New value: +0
    • changedInput schema / properties / scope / properties / doorCount / minimum
      Previous value: --9007199254740991New value: +0
    • changedInput schema / properties / scope / properties / parkingSpaces / minimum
      Previous value: --9007199254740991New value: +0
    • changedInput schema / properties / scope / properties / roomCount / minimum
      Previous value: --9007199254740991New value: +0
    • changedInput schema / properties / scope / properties / windowCount / minimum
      Previous value: --9007199254740991New value: +0
  4. Changed3 schema fields changed
    • removedOutput schema / properties / requestId
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / status / enum
      Added value: +[
      +  "complete",
      +  "needs_input",
      +  "failed"
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "schemaVersion",
      -  "requestId",
      -  "status"
      -]New value: +[
      +  "schemaVersion",
      +  "status"
      +]
  5. Changed8 schema fields changed
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / country
      Added value: +{
      +  "description": "Country pricing policy. Use GB for Great Britain or US for the United States. If omitted, GB is used for backwards compatibility.",
      +  "enum": [
      +    "GB",
      +    "US"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / jobType
      Added value: +{
      +  "description": "Residential project type supported by the selected country policy.",
      +  "enum": [
      +    "Combined project",
      +    "Rear extension",
      +    "Kitchen extension",
      +    "Side extension",
      +    "Wraparound extension",
      +    "Loft conversion",
      +    "Barn conversion",
      +    "Refurbishment",
      +    "Commercial office refurbishment",
      +    "New kitchen",
      +    "New bathroom",
      +    "Office / summerhouse",
      +    "Garage conversion",
      +    "Basement work / conversion",
      +    "Lower-ground floor refurbishment",
      +    "New build",
      +    "home_addition",
      +    "whole_home_remodel",
      +    "kitchen_remodel",
      +    "bathroom_remodel",
      +    "attic_conversion",
      +    "garage_conversion",
      +    "basement_remodel",
      +    "backyard_studio",
      +    "new_home_construction"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / postcodeArea
      Added value: +{
      +  "description": "GB outward postcode only, for example BS3. Never send a full address.",
      +  "pattern": "^[A-Z]{1,2}\\d[A-Z\\d]?$",
      +  "type": "string"
      +}
    • addedInput schema / properties / scope
      Added value: +{
      +  "additionalProperties": false,
      +  "default": {},
      +  "description": "Country-specific project scope. Use UK fields for GB and US fields for US; do not invent unanswered values.",
      +  "properties": {
      +    "access": {
      +      "enum": [
      +        "straightforward",
      +        "constrained",
      +        "remote"
      +      ],
      +      "type": "string"
      +    },
      +    "accessIssues": {
      +      "type": "boolean"
      +    },
      +    "additionalInternalWorkPackages": {
      +      "items": {
      +        "enum": [
      +          "Plastering",
      +          "Painting & decorating",
      +          "Wood / laminate flooring",
      +          "Kitchen work",
      +          "Bathroom work",
      +          "Windows / doors / glazing",
      +          "External walls / insulation",
      +          "General building / making good"
      +        ],
      +        "type": "string"
      +      },
      +      "maxItems": 12,
      +      "type": "array"
      +    },
      +    "additionalInternalWorksArea": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "approximateSize": {
      +      "description": "Project floor area. Defaults to square feet for US work; set areaUnit when the user supplied square metres.",
      +      "exclusiveMinimum": 0,
      +      "maximum": 15000,
      +      "type": "number"
      +    },
      +    "areaUnit": {
      +      "description": "Unit for approximateSize. GB defaults to sq_m and US defaults to sq_ft. Common m2 and ft2 forms are accepted.",
      +      "enum": [
      +        "sq_m",
      +        "sq m",
      +        "m2",
      +        "m^2",
      +        "m²",
      +        "sqm",
      +        "square_metres",
      +        "square_meters",
      +        "square metres",
      +        "square meters",
      +        "sq_ft",
      +        "sq ft",
      +        "ft2",
      +        "ft^2",
      +        "ft²",
      +        "sqft",
      +        "sf",
      +        "square_feet",
      +        "square feet"
      +      ],
      +      "type": "string"
      +    },
      +    "availability": {
      +      "enum": [
      +        "Ready now",
      +        "2–4 weeks",
      +        "1–2 months",
      +        "3+ months",
      +        "6+ months",
      +        "Next year"
      +      ],
      +      "type": "string"
      +    },
      +    "barnStructureType": {
      +      "enum": [
      +        "Not sure",
      +        "Traditional timber / oak frame",
      +        "Steel portal frame",
      +        "Stone / brick load-bearing walls",
      +        "Mixed structure"
      +      ],
      +      "type": "string"
      +    },
      +    "basementAccess": {
      +      "enum": [
      +        "Direct external access",
      +        "Restricted side / rear access",
      +        "Removal through house",
      +        "Highly constrained urban access"
      +      ],
      +      "type": "string"
      +    },
      +    "basementArea": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "basementBathroomIncluded": {
      +      "type": "boolean"
      +    },
      +    "basementDrainageScope": {
      +      "enum": [
      +        "Existing gravity drainage retained",
      +        "Drainage alterations",
      +        "Pumped drainage required",
      +        "Not confirmed"
      +      ],
      +      "type": "string"
      +    },
      +    "basementGroundwater": {
      +      "enum": [
      +        "No known issue",
      +        "Possible / high water table",
      +        "Known groundwater / water ingress",
      +        "Not confirmed"
      +      ],
      +      "type": "string"
      +    },
      +    "basementHeadroom": {
      +      "enum": [
      +        "No floor lowering",
      +        "Minor lowering up to 300 mm",
      +        "Lowering 300-600 mm",
      +        "Major lowering over 600 mm",
      +        "Not confirmed"
      +      ],
      +      "type": "string"
      +    },
      +    "basementIntendedUse": {
      +      "enum": [
      +        "Storage / utility",
      +        "Habitable room(s)",
      +        "Bedroom / bathroom accommodation",
      +        "Kitchen / living accommodation",
      +        "Separate dwelling / unit"
      +      ],
      +      "type": "string"
      +    },
      +    "basementLightwellCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "basementOccupancy": {
      +      "enum": [
      +        "Vacant during works",
      +        "House occupied during works"
      +      ],
      +      "type": "string"
      +    },
      +    "basementScope": {
      +      "enum": [
      +        "Existing basement refurbishment",
      +        "Existing cellar conversion",
      +        "Lower / enlarge existing cellar",
      +        "New basement beneath extension",
      +        "New basement beneath existing house"
      +      ],
      +      "type": "string"
      +    },
      +    "basementStairScope": {
      +      "enum": [
      +        "Existing stair retained",
      +        "Alter existing stair / opening",
      +        "New basement staircase"
      +      ],
      +      "type": "string"
      +    },
      +    "basementStructuralSupport": {
      +      "enum": [
      +        "No underpinning expected",
      +        "Local structural support",
      +        "Sequential underpinning",
      +        "Piled / engineered support",
      +        "Not confirmed"
      +      ],
      +      "type": "string"
      +    },
      +    "basementUtilityIncluded": {
      +      "type": "boolean"
      +    },
      +    "basementWaterproofing": {
      +      "enum": [
      +        "Existing dry system retained",
      +        "Local repairs / upgrades",
      +        "Full tanking system",
      +        "Cavity-drain membrane and pumps",
      +        "Not confirmed"
      +      ],
      +      "type": "string"
      +    },
      +    "bathroomScope": {
      +      "enum": [
      +        "No bathroom work",
      +        "Bathroom allowance",
      +        "New bathroom: supply and install",
      +        "New bathroom: install only",
      +        "Ensuite / shower room",
      +        "WC / cloakroom"
      +      ],
      +      "type": "string"
      +    },
      +    "bedroomCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "climateCodeRequirements": {
      +      "type": "boolean"
      +    },
      +    "combinedAdditionalJobType": {
      +      "enum": [
      +        "Rear extension",
      +        "Kitchen extension",
      +        "Side extension",
      +        "Wraparound extension",
      +        "Loft conversion",
      +        "Barn conversion",
      +        "Refurbishment",
      +        "Office / summerhouse",
      +        "Garage conversion",
      +        "Basement work / conversion",
      +        "New build"
      +      ],
      +      "type": "string"
      +    },
      +    "combinedAdditionalSize": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "combinedPrimaryJobType": {
      +      "enum": [
      +        "Rear extension",
      +        "Kitchen extension",
      +        "Side extension",
      +        "Wraparound extension",
      +        "Loft conversion",
      +        "Barn conversion",
      +        "Refurbishment",
      +        "Office / summerhouse",
      +        "Garage conversion",
      +        "Basement work / conversion",
      +        "New build"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialAsbestosStatus": {
      +      "enum": [
      +        "Refurbishment survey clear",
      +        "Management survey only",
      +        "Survey required / not confirmed",
      +        "Known asbestos constraints"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialBuildingAccess": {
      +      "enum": [
      +        "Standalone / direct street access",
      +        "Shared building, straightforward access",
      +        "Managed building / booked access",
      +        "Constrained central-London access"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialDataScope": {
      +      "enum": [
      +        "No data / comms work",
      +        "Data points and Wi-Fi alterations",
      +        "New structured cabling, Wi-Fi and comms cabinet"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialElectricalScope": {
      +      "enum": [
      +        "Retain existing / minor electrical works",
      +        "Lighting and small-power alterations",
      +        "New lighting, power and floor-box layout"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialFireSecurityScope": {
      +      "enum": [
      +        "Existing systems retained",
      +        "Fire-safety alterations and interfaces",
      +        "Fire, access control, intercom and security package"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialFloorAccess": {
      +      "enum": [
      +        "Ground / first floor",
      +        "Upper floors with goods lift",
      +        "Upper floors with passenger lift only",
      +        "Upper floors by stairs only",
      +        "Multiple floors"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialFurnitureIncluded": {
      +      "type": "boolean"
      +    },
      +    "commercialHvacScope": {
      +      "enum": [
      +        "Retain existing HVAC",
      +        "Alter existing AC / ventilation",
      +        "New or substantially replaced HVAC"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialKitchenetteCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "commercialLandlordStatus": {
      +      "enum": [
      +        "Approval confirmed / not needed",
      +        "Licence to alter in progress",
      +        "Approval not started",
      +        "Not sure"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialOccupancy": {
      +      "enum": [
      +        "Vacant during works",
      +        "Phased / partly occupied",
      +        "Fully occupied live office",
      +        "Out-of-hours works only"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialPartitionsScope": {
      +      "enum": [
      +        "Retain layout / minor making good",
      +        "Some partitions and ceiling alterations",
      +        "Extensive partitions and suspended ceilings"
      +      ],
      +      "type": "string"
      +    },
      +    "commercialWashroomCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "commercialWorkstationCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "complexGroundworks": {
      +      "type": "boolean"
      +    },
      +    "decoratingDoorCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "decoratingWindowCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "doorCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "electricalServiceUpgrade": {
      +      "type": "boolean"
      +    },
      +    "externalWallArea": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "finishBand": {
      +      "enum": [
      +        "Builder grade",
      +        "Good domestic",
      +        "Premium domestic"
      +      ],
      +      "type": "string"
      +    },
      +    "finishLevel": {
      +      "enum": [
      +        "builder_grade",
      +        "standard",
      +        "premium"
      +      ],
      +      "type": "string"
      +    },
      +    "foundation": {
      +      "enum": [
      +        "slab",
      +        "crawl_space",
      +        "basement",
      +        "existing_not_applicable"
      +      ],
      +      "type": "string"
      +    },
      +    "hazardousMaterialRemediation": {
      +      "type": "boolean"
      +    },
      +    "hvacReplacement": {
      +      "type": "boolean"
      +    },
      +    "includesAdditionalInternalWorks": {
      +      "type": "boolean"
      +    },
      +    "includesBasementWork": {
      +      "type": "boolean"
      +    },
      +    "includesLowerGroundWork": {
      +      "type": "boolean"
      +    },
      +    "kitchenScope": {
      +      "enum": [
      +        "No kitchen work",
      +        "Kitchen allowance",
      +        "New kitchen: supply and install",
      +        "New kitchen: install only",
      +        "Client-supplied kitchen, builder prepares room",
      +        "Kitchen / diner works"
      +      ],
      +      "type": "string"
      +    },
      +    "lowerGroundAccess": {
      +      "enum": [
      +        "Direct external access",
      +        "Access through main home",
      +        "Constrained access"
      +      ],
      +      "type": "string"
      +    },
      +    "lowerGroundArea": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "lowerGroundDaylight": {
      +      "enum": [
      +        "Existing windows retained",
      +        "Alter or enlarge openings",
      +        "New lightwell / external excavation",
      +        "Not confirmed"
      +      ],
      +      "type": "string"
      +    },
      +    "lowerGroundExposure": {
      +      "enum": [
      +        "Mostly above ground",
      +        "Split-level / partly below ground",
      +        "Mostly below ground"
      +      ],
      +      "type": "string"
      +    },
      +    "lowerGroundMoisture": {
      +      "enum": [
      +        "Dry / no known issue",
      +        "Local damp repairs",
      +        "Known damp / waterproofing work",
      +        "Not confirmed"
      +      ],
      +      "type": "string"
      +    },
      +    "lowerGroundOccupancy": {
      +      "enum": [
      +        "Vacant during works",
      +        "House occupied during works"
      +      ],
      +      "type": "string"
      +    },
      +    "lowerGroundScope": {
      +      "enum": [
      +        "Refresh existing finished rooms",
      +        "Refurbish existing habitable floor",
      +        "Convert existing ancillary / storage rooms"
      +      ],
      +      "type": "string"
      +    },
      +    "lowerGroundServices": {
      +      "enum": [
      +        "Existing services retained",
      +        "Alter existing services",
      +        "New kitchen / bathroom services",
      +        "Independent services / meters"
      +      ],
      +      "type": "string"
      +    },
      +    "lowerGroundUse": {
      +      "enum": [
      +        "Part of the main home",
      +        "Dependent annexe",
      +        "Separate dwelling / unit"
      +      ],
      +      "type": "string"
      +    },
      +    "occupiedDuringWork": {
      +      "type": "boolean"
      +    },
      +    "parkingSpaces": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "planningStageOnly": {
      +      "type": "boolean"
      +    },
      +    "primaryConstruction": {
      +      "enum": [
      +        "wood_frame",
      +        "masonry_concrete",
      +        "other_unknown"
      +      ],
      +      "type": "string"
      +    },
      +    "propertyForm": {
      +      "enum": [
      +        "Flat",
      +        "Maisonette",
      +        "Terraced house",
      +        "Semi-detached house",
      +        "Detached house",
      +        "Barn / agricultural building",
      +        "Other / not sure",
      +        "Commercial office",
      +        "Office suite"
      +      ],
      +      "type": "string"
      +    },
      +    "propertyPeriod": {
      +      "enum": [
      +        "Not sure",
      +        "Modern / new build",
      +        "1970s-1990s",
      +        "1950s-1960s",
      +        "1930s-1940s",
      +        "Victorian / Edwardian",
      +        "Older / period property",
      +        "Listed / heritage"
      +      ],
      +      "type": "string"
      +    },
      +    "refurbishmentCondition": {
      +      "enum": [
      +        "Good",
      +        "Average",
      +        "Poor",
      +        "Damp / cracks / problematic"
      +      ],
      +      "type": "string"
      +    },
      +    "refurbishmentDecoratingArea": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "refurbishmentFlooringArea": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "refurbishmentPackages": {
      +      "items": {
      +        "enum": [
      +          "Plastering",
      +          "Painting & decorating",
      +          "Wood / laminate flooring",
      +          "Kitchen work",
      +          "Bathroom work",
      +          "Windows / doors / glazing",
      +          "External walls / insulation",
      +          "General building / making good"
      +        ],
      +        "type": "string"
      +      },
      +      "maxItems": 12,
      +      "type": "array"
      +    },
      +    "refurbishmentPlasteringArea": {
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "refurbishmentPrepLevel": {
      +      "enum": [
      +        "Simple refresh",
      +        "Normal prep",
      +        "Heavy prep"
      +      ],
      +      "type": "string"
      +    },
      +    "refurbishmentRoomState": {
      +      "enum": [
      +        "Empty",
      +        "Partly furnished",
      +        "Occupied"
      +      ],
      +      "type": "string"
      +    },
      +    "refurbishmentScope": {
      +      "enum": [
      +        "General refurbishment",
      +        "Mixed room upgrade",
      +        "Decoration only",
      +        "External walls / insulation",
      +        "Windows / doors / glazing",
      +        "Kitchen works",
      +        "Bathroom works",
      +        "Kitchen and bathroom works",
      +        "Whole property refurbishment"
      +      ],
      +      "type": "string"
      +    },
      +    "roomCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "scopeBand": {
      +      "enum": [
      +        "Lean",
      +        "Balanced",
      +        "Expanded"
      +      ],
      +      "type": "string"
      +    },
      +    "scopeLevel": {
      +      "enum": [
      +        "defined",
      +        "typical",
      +        "expanded"
      +      ],
      +      "type": "string"
      +    },
      +    "structuralChanges": {
      +      "type": "boolean"
      +    },
      +    "structuralSteelLikely": {
      +      "type": "boolean"
      +    },
      +    "urgencyBand": {
      +      "enum": [
      +        "Flexible",
      +        "Soon",
      +        "Urgent"
      +      ],
      +      "type": "string"
      +    },
      +    "windowCount": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / state
      Added value: +{
      +  "description": "US two-letter state or DC code.",
      +  "enum": [
      +    "CT",
      +    "ME",
      +    "MA",
      +    "NH",
      +    "RI",
      +    "VT",
      +    "NJ",
      +    "NY",
      +    "PA",
      +    "IN",
      +    "IL",
      +    "MI",
      +    "OH",
      +    "WI",
      +    "IA",
      +    "KS",
      +    "MN",
      +    "MO",
      +    "NE",
      +    "ND",
      +    "SD",
      +    "DE",
      +    "DC",
      +    "FL",
      +    "GA",
      +    "MD",
      +    "NC",
      +    "SC",
      +    "VA",
      +    "WV",
      +    "AL",
      +    "KY",
      +    "MS",
      +    "TN",
      +    "AR",
      +    "LA",
      +    "OK",
      +    "TX",
      +    "AZ",
      +    "CO",
      +    "ID",
      +    "MT",
      +    "NV",
      +    "NM",
      +    "UT",
      +    "WY",
      +    "CA",
      +    "OR",
      +    "WA",
      +    "AK",
      +    "HI"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / zipCode
      Added value: +{
      +  "description": "Optional US five-digit ZIP code. Never send a street address.",
      +  "pattern": "^\\d{5}$",
      +  "type": "string"
      +}
  6. Changed5 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / jobType
      Removed value: -{
      -  "enum": [
      -    "Combined project",
      -    "Rear extension",
      -    "Kitchen extension",
      -    "Side extension",
      -    "Wraparound extension",
      -    "Loft conversion",
      -    "Barn conversion",
      -    "Refurbishment",
      -    "Commercial office refurbishment",
      -    "New kitchen",
      -    "New bathroom",
      -    "Office / summerhouse",
      -    "Garage conversion",
      -    "Basement work / conversion",
      -    "Lower-ground floor refurbishment",
      -    "New build"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / postcodeArea
      Removed value: -{
      -  "pattern": "^[A-Z]{1,2}\\d[A-Z\\d]?$",
      -  "type": "string"
      -}
    • removedInput schema / properties / scope
      Removed value: -{
      -  "additionalProperties": false,
      -  "default": {},
      -  "properties": {
      -    "accessIssues": {
      -      "type": "boolean"
      -    },
      -    "additionalInternalWorkPackages": {
      -      "items": {
      -        "enum": [
      -          "Plastering",
      -          "Painting & decorating",
      -          "Wood / laminate flooring",
      -          "Kitchen work",
      -          "Bathroom work",
      -          "Windows / doors / glazing",
      -          "External walls / insulation",
      -          "General building / making good"
      -        ],
      -        "type": "string"
      -      },
      -      "maxItems": 12,
      -      "type": "array"
      -    },
      -    "additionalInternalWorksArea": {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "approximateSize": {
      -      "description": "Area in square metres, using the work type's area definition.",
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "availability": {
      -      "enum": [
      -        "Ready now",
      -        "2–4 weeks",
      -        "1–2 months",
      -        "3+ months",
      -        "6+ months",
      -        "Next year"
      -      ],
      -      "type": "string"
      -    },
      -    "barnStructureType": {
      -      "enum": [
      -        "Not sure",
      -        "Traditional timber / oak frame",
      -        "Steel portal frame",
      -        "Stone / brick load-bearing walls",
      -        "Mixed structure"
      -      ],
      -      "type": "string"
      -    },
      -    "basementAccess": {
      -      "enum": [
      -        "Direct external access",
      -        "Restricted side / rear access",
      -        "Removal through house",
      -        "Highly constrained urban access"
      -      ],
      -      "type": "string"
      -    },
      -    "basementArea": {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "basementBathroomIncluded": {
      -      "type": "boolean"
      -    },
      -    "basementDrainageScope": {
      -      "enum": [
      -        "Existing gravity drainage retained",
      -        "Drainage alterations",
      -        "Pumped drainage required",
      -        "Not confirmed"
      -      ],
      -      "type": "string"
      -    },
      -    "basementGroundwater": {
      -      "enum": [
      -        "No known issue",
      -        "Possible / high water table",
      -        "Known groundwater / water ingress",
      -        "Not confirmed"
      -      ],
      -      "type": "string"
      -    },
      -    "basementHeadroom": {
      -      "enum": [
      -        "No floor lowering",
      -        "Minor lowering up to 300 mm",
      -        "Lowering 300-600 mm",
      -        "Major lowering over 600 mm",
      -        "Not confirmed"
      -      ],
      -      "type": "string"
      -    },
      -    "basementIntendedUse": {
      -      "enum": [
      -        "Storage / utility",
      -        "Habitable room(s)",
      -        "Bedroom / bathroom accommodation",
      -        "Kitchen / living accommodation",
      -        "Separate dwelling / unit"
      -      ],
      -      "type": "string"
      -    },
      -    "basementLightwellCount": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    },
      -    "basementOccupancy": {
      -      "enum": [
      -        "Vacant during works",
      -        "House occupied during works"
      -      ],
      -      "type": "string"
      -    },
      -    "basementScope": {
      -      "enum": [
      -        "Existing basement refurbishment",
      -        "Existing cellar conversion",
      -        "Lower / enlarge existing cellar",
      -        "New basement beneath extension",
      -        "New basement beneath existing house"
      -      ],
      -      "type": "string"
      -    },
      -    "basementStairScope": {
      -      "enum": [
      -        "Existing stair retained",
      -        "Alter existing stair / opening",
      -        "New basement staircase"
      -      ],
      -      "type": "string"
      -    },
      -    "basementStructuralSupport": {
      -      "enum": [
      -        "No underpinning expected",
      -        "Local structural support",
      -        "Sequential underpinning",
      -        "Piled / engineered support",
      -        "Not confirmed"
      -      ],
      -      "type": "string"
      -    },
      -    "basementUtilityIncluded": {
      -      "type": "boolean"
      -    },
      -    "basementWaterproofing": {
      -      "enum": [
      -        "Existing dry system retained",
      -        "Local repairs / upgrades",
      -        "Full tanking system",
      -        "Cavity-drain membrane and pumps",
      -        "Not confirmed"
      -      ],
      -      "type": "string"
      -    },
      -    "bathroomScope": {
      -      "enum": [
      -        "No bathroom work",
      -        "Bathroom allowance",
      -        "New bathroom: supply and install",
      -        "New bathroom: install only",
      -        "Ensuite / shower room",
      -        "WC / cloakroom"
      -      ],
      -      "type": "string"
      -    },
      -    "bedroomCount": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    },
      -    "combinedAdditionalJobType": {
      -      "enum": [
      -        "Rear extension",
      -        "Kitchen extension",
      -        "Side extension",
      -        "Wraparound extension",
      -        "Loft conversion",
      -        "Barn conversion",
      -        "Refurbishment",
      -        "Office / summerhouse",
      -        "Garage conversion",
      -        "Basement work / conversion",
      -        "New build"
      -      ],
      -      "type": "string"
      -    },
      -    "combinedAdditionalSize": {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "combinedPrimaryJobType": {
      -      "enum": [
      -        "Rear extension",
      -        "Kitchen extension",
      -        "Side extension",
      -        "Wraparound extension",
      -        "Loft conversion",
      -        "Barn conversion",
      -        "Refurbishment",
      -        "Office / summerhouse",
      -        "Garage conversion",
      -        "Basement work / conversion",
      -        "New build"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialAsbestosStatus": {
      -      "enum": [
      -        "Refurbishment survey clear",
      -        "Management survey only",
      -        "Survey required / not confirmed",
      -        "Known asbestos constraints"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialBuildingAccess": {
      -      "enum": [
      -        "Standalone / direct street access",
      -        "Shared building, straightforward access",
      -        "Managed building / booked access",
      -        "Constrained central-London access"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialDataScope": {
      -      "enum": [
      -        "No data / comms work",
      -        "Data points and Wi-Fi alterations",
      -        "New structured cabling, Wi-Fi and comms cabinet"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialElectricalScope": {
      -      "enum": [
      -        "Retain existing / minor electrical works",
      -        "Lighting and small-power alterations",
      -        "New lighting, power and floor-box layout"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialFireSecurityScope": {
      -      "enum": [
      -        "Existing systems retained",
      -        "Fire-safety alterations and interfaces",
      -        "Fire, access control, intercom and security package"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialFloorAccess": {
      -      "enum": [
      -        "Ground / first floor",
      -        "Upper floors with goods lift",
      -        "Upper floors with passenger lift only",
      -        "Upper floors by stairs only",
      -        "Multiple floors"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialFurnitureIncluded": {
      -      "type": "boolean"
      -    },
      -    "commercialHvacScope": {
      -      "enum": [
      -        "Retain existing HVAC",
      -        "Alter existing AC / ventilation",
      -        "New or substantially replaced HVAC"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialKitchenetteCount": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    },
      -    "commercialLandlordStatus": {
      -      "enum": [
      -        "Approval confirmed / not needed",
      -        "Licence to alter in progress",
      -        "Approval not started",
      -        "Not sure"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialOccupancy": {
      -      "enum": [
      -        "Vacant during works",
      -        "Phased / partly occupied",
      -        "Fully occupied live office",
      -        "Out-of-hours works only"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialPartitionsScope": {
      -      "enum": [
      -        "Retain layout / minor making good",
      -        "Some partitions and ceiling alterations",
      -        "Extensive partitions and suspended ceilings"
      -      ],
      -      "type": "string"
      -    },
      -    "commercialWashroomCount": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    },
      -    "commercialWorkstationCount": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    },
      -    "complexGroundworks": {
      -      "type": "boolean"
      -    },
      -    "decoratingDoorCount": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    },
      -    "decoratingWindowCount": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    },
      -    "doorCount": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    },
      -    "externalWallArea": {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "finishBand": {
      -      "enum": [
      -        "Builder grade",
      -        "Good domestic",
      -        "Premium domestic"
      -      ],
      -      "type": "string"
      -    },
      -    "includesAdditionalInternalWorks": {
      -      "type": "boolean"
      -    },
      -    "includesBasementWork": {
      -      "type": "boolean"
      -    },
      -    "includesLowerGroundWork": {
      -      "type": "boolean"
      -    },
      -    "kitchenScope": {
      -      "enum": [
      -        "No kitchen work",
      -        "Kitchen allowance",
      -        "New kitchen: supply and install",
      -        "New kitchen: install only",
      -        "Client-supplied kitchen, builder prepares room",
      -        "Kitchen / diner works"
      -      ],
      -      "type": "string"
      -    },
      -    "lowerGroundAccess": {
      -      "enum": [
      -        "Direct external access",
      -        "Access through main home",
      -        "Constrained access"
      -      ],
      -      "type": "string"
      -    },
      -    "lowerGroundArea": {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "lowerGroundDaylight": {
      -      "enum": [
      -        "Existing windows retained",
      -        "Alter or enlarge openings",
      -        "New lightwell / external excavation",
      -        "Not confirmed"
      -      ],
      -      "type": "string"
      -    },
      -    "lowerGroundExposure": {
      -      "enum": [
      -        "Mostly above ground",
      -        "Split-level / partly below ground",
      -        "Mostly below ground"
      -      ],
      -      "type": "string"
      -    },
      -    "lowerGroundMoisture": {
      -      "enum": [
      -        "Dry / no known issue",
      -        "Local damp repairs",
      -        "Known damp / waterproofing work",
      -        "Not confirmed"
      -      ],
      -      "type": "string"
      -    },
      -    "lowerGroundOccupancy": {
      -      "enum": [
      -        "Vacant during works",
      -        "House occupied during works"
      -      ],
      -      "type": "string"
      -    },
      -    "lowerGroundScope": {
      -      "enum": [
      -        "Refresh existing finished rooms",
      -        "Refurbish existing habitable floor",
      -        "Convert existing ancillary / storage rooms"
      -      ],
      -      "type": "string"
      -    },
      -    "lowerGroundServices": {
      -      "enum": [
      -        "Existing services retained",
      -        "Alter existing services",
      -        "New kitchen / bathroom services",
      -        "Independent services / meters"
      -      ],
      -      "type": "string"
      -    },
      -    "lowerGroundUse": {
      -      "enum": [
      -        "Part of the main home",
      -        "Dependent annexe",
      -        "Separate dwelling / unit"
      -      ],
      -      "type": "string"
      -    },
      -    "parkingSpaces": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    },
      -    "planningStageOnly": {
      -      "type": "boolean"
      -    },
      -    "propertyForm": {
      -      "enum": [
      -        "Flat",
      -        "Maisonette",
      -        "Terraced house",
      -        "Semi-detached house",
      -        "Detached house",
      -        "Barn / agricultural building",
      -        "Other / not sure",
      -        "Commercial office",
      -        "Office suite"
      -      ],
      -      "type": "string"
      -    },
      -    "propertyPeriod": {
      -      "enum": [
      -        "Not sure",
      -        "Modern / new build",
      -        "1970s-1990s",
      -        "1950s-1960s",
      -        "1930s-1940s",
      -        "Victorian / Edwardian",
      -        "Older / period property",
      -        "Listed / heritage"
      -      ],
      -      "type": "string"
      -    },
      -    "refurbishmentCondition": {
      -      "enum": [
      -        "Good",
      -        "Average",
      -        "Poor",
      -        "Damp / cracks / problematic"
      -      ],
      -      "type": "string"
      -    },
      -    "refurbishmentDecoratingArea": {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "refurbishmentFlooringArea": {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "refurbishmentPackages": {
      -      "items": {
      -        "enum": [
      -          "Plastering",
      -          "Painting & decorating",
      -          "Wood / laminate flooring",
      -          "Kitchen work",
      -          "Bathroom work",
      -          "Windows / doors / glazing",
      -          "External walls / insulation",
      -          "General building / making good"
      -        ],
      -        "type": "string"
      -      },
      -      "maxItems": 12,
      -      "type": "array"
      -    },
      -    "refurbishmentPlasteringArea": {
      -      "minimum": 0,
      -      "type": "number"
      -    },
      -    "refurbishmentPrepLevel": {
      -      "enum": [
      -        "Simple refresh",
      -        "Normal prep",
      -        "Heavy prep"
      -      ],
      -      "type": "string"
      -    },
      -    "refurbishmentRoomState": {
      -      "enum": [
      -        "Empty",
      -        "Partly furnished",
      -        "Occupied"
      -      ],
      -      "type": "string"
      -    },
      -    "refurbishmentScope": {
      -      "enum": [
      -        "General refurbishment",
      -        "Mixed room upgrade",
      -        "Decoration only",
      -        "External walls / insulation",
      -        "Windows / doors / glazing",
      -        "Kitchen works",
      -        "Bathroom works",
      -        "Kitchen and bathroom works",
      -        "Whole property refurbishment"
      -      ],
      -      "type": "string"
      -    },
      -    "roomCount": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    },
      -    "scopeBand": {
      -      "enum": [
      -        "Lean",
      -        "Balanced",
      -        "Expanded"
      -      ],
      -      "type": "string"
      -    },
      -    "structuralSteelLikely": {
      -      "type": "boolean"
      -    },
      -    "urgencyBand": {
      -      "enum": [
      -        "Flexible",
      -        "Soon",
      -        "Urgent"
      -      ],
      -      "type": "string"
      -    },
      -    "windowCount": {
      -      "maximum": 9007199254740991,
      -      "minimum": -9007199254740991,
      -      "type": "integer"
      -    }
      -  },
      -  "type": "object"
      -}
  7. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuinely new context: reference examples are not the user's project price, and no account or drawing-file access is needed, which sets agent expectations for auth and interpretation.

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?

Four short sentences, zero filler, with the retrieval purpose and the sibling routing front-loaded. The caveat about reference examples not being a real price is terse but earns its place by preventing misreading.

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?

An output schema exists, so return values need no explanation, and annotations cover the safety profile. Given six optional parameters and a nested scope object, the description is sufficient for correct invocation, though it never clarifies what 'input requirements' concretely look like.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents scopes, country, state, jobType, zip and postcode. The description adds no parameter-level guidance beyond that, which is the correct baseline when structured fields carry the load.

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 verb (Retrieve) and a resource (UK/US input requirements or labelled reference examples), and explicitly distinguishes itself from calculate_building_work. The phrase 'input requirements' remains somewhat opaque about what is actually returned, so it falls short of a fully self-explanatory purpose.

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

Usage Guidelines5/5

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

Gives the triggering condition ('when specifically requested') and routes three concrete cases (project budget, vague cost question, drawings) to the named alternative calculate_building_work. Nothing about when to pick this tool versus its sibling is left to inference.

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.