Proper Job Building Cost Calculator
What this MCP does
Calculates and compares indicative UK and US residential building-project costs using supplied scope.
Tools
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'scope': {'type': 'object', 'default': {}, 'properties': {'access': {'enum': ['straightforward', 'constrained', 'remote'], 'type': 'string'}, 'areaUnit': {'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', 'description': 'Unit for approximateSize. GB defaults to sq_m and US defaults to sq_ft. Common m2 and ft2 forms are accepted.'}, 'doorCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'roomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'scopeBand': {'enum': ['Lean', 'Balanced', 'Expanded'], 'type': 'string', 'description': '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.'}, 'finishBand': {'enum': ['Builder grade', 'Good domestic', 'Premium domestic'], 'type': 'string', 'description': 'Finish specification: Builder grade is budget, Good domestic is a normal quality domestic finish, and Premium domestic is higher specification.'}, 'foundation': {'enum': ['slab', 'crawl_space', 'basement', 'existing_not_applicable'], 'type': 'string'}, 'scopeLevel': {'enum': ['defined', 'typical', 'expanded'], 'type': 'string'}, 'finishLevel': {'enum': ['builder_grade', 'standard', 'premium'], 'type': 'string'}, 'urgencyBand': {'enum': ['Flexible', 'Soon', 'Urgent'], 'type': 'string'}, 'windowCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'accessIssues': {'type': 'boolean'}, 'availability': {'enum': ['Ready now', '2–4 weeks', '1–2 months', '3+ months', '6+ months', 'Next year'], 'type': 'string'}, 'basementArea': {'type': 'number', 'minimum': 0}, 'bedroomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, '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', 'description': '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.'}, 'propertyForm': {'enum': ['Flat', 'Maisonette', 'Terraced house', 'Semi-detached house', 'Detached house', 'Barn / agricultural building', 'Other / not sure', 'Commercial office', 'Office suite'], 'type': 'string', 'description': "Existing property type. Use only the user's answer; do not infer it from the project type."}, 'basementScope': {'enum': ['Existing basement refurbishment', 'Existing cellar conversion', 'Lower / enlarge existing cellar', 'New basement beneath extension', 'New basement beneath existing house'], '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', 'description': '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.'}, 'parkingSpaces': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'basementAccess': {'enum': ['Direct external access', 'Restricted side / rear access', 'Removal through house', 'Highly constrained urban access'], 'type': 'string'}, 'lowerGroundUse': {'enum': ['Part of the main home', 'Dependent annexe', 'Separate dwelling / unit'], 'type': 'string'}, 'propertyPeriod': {'enum': ['Not sure', 'Modern / new build', '1970s-1990s', '1950s-1960s', '1930s-1940s', 'Victorian / Edwardian', 'Older / period property', 'Listed / heritage'], 'type': 'string'}, 'approximateSize': {'type': 'number', 'maximum': 15000, 'description': 'Project floor area. Defaults to square feet for US work; set areaUnit when the user supplied square metres.', 'exclusiveMinimum': 0}, 'hvacReplacement': {'type': 'boolean'}, 'lowerGroundArea': {'type': 'number', 'minimum': 0}, 'basementHeadroom': {'enum': ['No floor lowering', 'Minor lowering up to 300 mm', 'Lowering 300-600 mm', 'Major lowering over 600 mm', 'Not confirmed'], 'type': 'string'}, 'externalWallArea': {'type': 'number', 'minimum': 0}, 'lowerGroundScope': {'enum': ['Refresh existing finished rooms', 'Refurbish existing habitable floor', 'Convert existing ancillary / storage rooms'], 'type': 'string'}, 'barnStructureType': {'enum': ['Not sure', 'Traditional timber / oak frame', 'Steel portal frame', 'Stone / brick load-bearing walls', 'Mixed structure'], 'type': 'string'}, 'basementOccupancy': {'enum': ['Vacant during works', 'House occupied during works'], 'type': 'string'}, 'lowerGroundAccess': {'enum': ['Direct external access', 'Access through main home', 'Constrained access'], 'type': 'string'}, 'planningStageOnly': {'type': 'boolean'}, 'structuralChanges': {'type': 'boolean'}, 'basementStairScope': {'enum': ['Existing stair retained', 'Alter existing stair / opening', 'New basement staircase'], 'type': 'string'}, 'complexGroundworks': {'type': 'boolean'}, 'occupiedDuringWork': {'type': 'boolean'}, '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'}, 'basementGroundwater': {'enum': ['No known issue', 'Possible / high water table', 'Known groundwater / water ingress', 'Not confirmed'], 'type': 'string'}, 'basementIntendedUse': {'enum': ['Storage / utility', 'Habitable room(s)', 'Bedroom / bathroom accommodation', 'Kitchen / living accommodation', 'Separate dwelling / unit'], 'type': 'string'}, 'commercialDataScope': {'enum': ['No data / comms work', 'Data points and Wi-Fi alterations', 'New structured cabling, Wi-Fi and comms cabinet'], 'type': 'string'}, 'commercialHvacScope': {'enum': ['Retain existing HVAC', 'Alter existing AC / ventilation', 'New or substantially replaced HVAC'], 'type': 'string'}, 'commercialOccupancy': {'enum': ['Vacant during works', 'Phased / partly occupied', 'Fully occupied live office', 'Out-of-hours works only'], 'type': 'string'}, 'decoratingDoorCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, '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'}, 'lowerGroundServices': {'enum': ['Existing services retained', 'Alter existing services', 'New kitchen / bathroom services', 'Independent services / meters'], 'type': 'string'}, 'primaryConstruction': {'enum': ['wood_frame', 'masonry_concrete', 'other_unknown'], 'type': 'string'}, 'includesBasementWork': {'type': 'boolean'}, 'lowerGroundOccupancy': {'enum': ['Vacant during works', 'House occupied during works'], 'type': 'string'}, 'basementDrainageScope': {'enum': ['Existing gravity drainage retained', 'Drainage alterations', 'Pumped drainage required', 'Not confirmed'], 'type': 'string'}, 'basementWaterproofing': {'enum': ['Existing dry system retained', 'Local repairs / upgrades', 'Full tanking system', 'Cavity-drain membrane and pumps', 'Not confirmed'], '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'}, 'decoratingWindowCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'refurbishmentPackages': {'type': 'array', '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}, 'structuralSteelLikely': {'type': 'boolean'}, 'basementLightwellCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'combinedAdditionalSize': {'type': 'number', 'minimum': 0}, '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'}, 'refurbishmentCondition': {'enum': ['Good', 'Average', 'Poor', 'Damp / cracks / problematic'], 'type': 'string'}, 'refurbishmentPrepLevel': {'enum': ['Simple refresh', 'Normal prep', 'Heavy prep'], 'type': 'string'}, 'refurbishmentRoomState': {'enum': ['Empty', 'Partly furnished', 'Occupied'], 'type': 'string'}, 'basementUtilityIncluded': {'type': 'boolean'}, 'climateCodeRequirements': {'type': 'boolean'}, 'commercialWashroomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'includesLowerGroundWork': {'type': 'boolean'}, 'basementBathroomIncluded': {'type': 'boolean'}, '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'}, 'commercialLandlordStatus': {'enum': ['Approval confirmed / not needed', 'Licence to alter in progress', 'Approval not started', 'Not sure'], 'type': 'string'}, 'electricalServiceUpgrade': {'type': 'boolean'}, 'basementStructuralSupport': {'enum': ['No underpinning expected', 'Local structural support', 'Sequential underpinning', 'Piled / engineered support', 'Not confirmed'], 'type': 'string'}, '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'}, 'commercialElectricalScope': {'enum': ['Retain existing / minor electrical works', 'Lighting and small-power alterations', 'New lighting, power and floor-box layout'], 'type': 'string'}, 'commercialPartitionsScope': {'enum': ['Retain layout / minor making good', 'Some partitions and ceiling alterations', 'Extensive partitions and suspended ceilings'], 'type': 'string'}, 'refurbishmentFlooringArea': {'type': 'number', 'minimum': 0}, 'commercialKitchenetteCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'commercialWorkstationCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'additionalInternalWorksArea': {'type': 'number', 'minimum': 0, 'description': 'Total floor area of existing rooms affected outside the main extension or loft, in the supplied area unit.'}, 'commercialFireSecurityScope': {'enum': ['Existing systems retained', 'Fire-safety alterations and interfaces', 'Fire, access control, intercom and security package'], 'type': 'string'}, 'commercialFurnitureIncluded': {'type': 'boolean'}, 'refurbishmentDecoratingArea': {'type': 'number', 'minimum': 0}, 'refurbishmentPlasteringArea': {'type': 'number', 'minimum': 0}, 'hazardousMaterialRemediation': {'type': 'boolean'}, 'additionalInternalWorkPackages': {'type': 'array', '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, 'description': '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.'}, 'includesAdditionalInternalWorks': {'type': 'boolean', 'description': 'True only when the project also changes existing internal rooms outside the main extension or loft.'}}, 'description': 'Country-specific project scope. Use UK fields for GB and US fields for US; do not invent unanswered values.', 'additionalProperties': False}, 'state': {'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', 'description': 'US two-letter state or DC code.'}, 'country': {'enum': ['GB', 'US'], 'type': 'string', 'description': 'Country pricing policy. Use GB for Great Britain or US for the United States. If omitted, GB is used for backwards compatibility.'}, 'jobType': {'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', 'description': 'Residential project type supported by the selected country policy.'}, 'zipCode': {'type': 'string', 'pattern': '^\\d{5}$', 'description': 'Optional US five-digit ZIP code. Never send a street address.'}, 'postcodeArea': {'type': 'string', 'pattern': '^[A-Z]{1,2}\\d[A-Z\\d]?$', 'description': 'GB outward postcode only, for example BS3. Never send a full address.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['schemaVersion', 'status'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'enum': ['complete', 'needs_input', 'failed'], 'type': 'string'}, 'schemaVersion': {'type': 'string', 'const': '1'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['baseline', 'scenarios'], 'properties': {'baseline': {'type': 'object', 'properties': {'scope': {'type': 'object', 'default': {}, 'properties': {'access': {'enum': ['straightforward', 'constrained', 'remote'], 'type': 'string'}, 'areaUnit': {'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', 'description': 'Unit for approximateSize. GB defaults to sq_m and US defaults to sq_ft. Common m2 and ft2 forms are accepted.'}, 'doorCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'roomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'scopeBand': {'enum': ['Lean', 'Balanced', 'Expanded'], 'type': 'string', 'description': '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.'}, 'finishBand': {'enum': ['Builder grade', 'Good domestic', 'Premium domestic'], 'type': 'string', 'description': 'Finish specification: Builder grade is budget, Good domestic is a normal quality domestic finish, and Premium domestic is higher specification.'}, 'foundation': {'enum': ['slab', 'crawl_space', 'basement', 'existing_not_applicable'], 'type': 'string'}, 'scopeLevel': {'enum': ['defined', 'typical', 'expanded'], 'type': 'string'}, 'finishLevel': {'enum': ['builder_grade', 'standard', 'premium'], 'type': 'string'}, 'urgencyBand': {'enum': ['Flexible', 'Soon', 'Urgent'], 'type': 'string'}, 'windowCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'accessIssues': {'type': 'boolean'}, 'availability': {'enum': ['Ready now', '2–4 weeks', '1–2 months', '3+ months', '6+ months', 'Next year'], 'type': 'string'}, 'basementArea': {'type': 'number', 'minimum': 0}, 'bedroomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, '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', 'description': '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.'}, 'propertyForm': {'enum': ['Flat', 'Maisonette', 'Terraced house', 'Semi-detached house', 'Detached house', 'Barn / agricultural building', 'Other / not sure', 'Commercial office', 'Office suite'], 'type': 'string', 'description': "Existing property type. Use only the user's answer; do not infer it from the project type."}, 'basementScope': {'enum': ['Existing basement refurbishment', 'Existing cellar conversion', 'Lower / enlarge existing cellar', 'New basement beneath extension', 'New basement beneath existing house'], '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', 'description': '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.'}, 'parkingSpaces': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'basementAccess': {'enum': ['Direct external access', 'Restricted side / rear access', 'Removal through house', 'Highly constrained urban access'], 'type': 'string'}, 'lowerGroundUse': {'enum': ['Part of the main home', 'Dependent annexe', 'Separate dwelling / unit'], 'type': 'string'}, 'propertyPeriod': {'enum': ['Not sure', 'Modern / new build', '1970s-1990s', '1950s-1960s', '1930s-1940s', 'Victorian / Edwardian', 'Older / period property', 'Listed / heritage'], 'type': 'string'}, 'approximateSize': {'type': 'number', 'maximum': 15000, 'description': 'Project floor area. Defaults to square feet for US work; set areaUnit when the user supplied square metres.', 'exclusiveMinimum': 0}, 'hvacReplacement': {'type': 'boolean'}, 'lowerGroundArea': {'type': 'number', 'minimum': 0}, 'basementHeadroom': {'enum': ['No floor lowering', 'Minor lowering up to 300 mm', 'Lowering 300-600 mm', 'Major lowering over 600 mm', 'Not confirmed'], 'type': 'string'}, 'externalWallArea': {'type': 'number', 'minimum': 0}, 'lowerGroundScope': {'enum': ['Refresh existing finished rooms', 'Refurbish existing habitable floor', 'Convert existing ancillary / storage rooms'], 'type': 'string'}, 'barnStructureType': {'enum': ['Not sure', 'Traditional timber / oak frame', 'Steel portal frame', 'Stone / brick load-bearing walls', 'Mixed structure'], 'type': 'string'}, 'basementOccupancy': {'enum': ['Vacant during works', 'House occupied during works'], 'type': 'string'}, 'lowerGroundAccess': {'enum': ['Direct external access', 'Access through main home', 'Constrained access'], 'type': 'string'}, 'planningStageOnly': {'type': 'boolean'}, 'structuralChanges': {'type': 'boolean'}, 'basementStairScope': {'enum': ['Existing stair retained', 'Alter existing stair / opening', 'New basement staircase'], 'type': 'string'}, 'complexGroundworks': {'type': 'boolean'}, 'occupiedDuringWork': {'type': 'boolean'}, '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'}, 'basementGroundwater': {'enum': ['No known issue', 'Possible / high water table', 'Known groundwater / water ingress', 'Not confirmed'], 'type': 'string'}, 'basementIntendedUse': {'enum': ['Storage / utility', 'Habitable room(s)', 'Bedroom / bathroom accommodation', 'Kitchen / living accommodation', 'Separate dwelling / unit'], 'type': 'string'}, 'commercialDataScope': {'enum': ['No data / comms work', 'Data points and Wi-Fi alterations', 'New structured cabling, Wi-Fi and comms cabinet'], 'type': 'string'}, 'commercialHvacScope': {'enum': ['Retain existing HVAC', 'Alter existing AC / ventilation', 'New or substantially replaced HVAC'], 'type': 'string'}, 'commercialOccupancy': {'enum': ['Vacant during works', 'Phased / partly occupied', 'Fully occupied live office', 'Out-of-hours works only'], 'type': 'string'}, 'decoratingDoorCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, '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'}, 'lowerGroundServices': {'enum': ['Existing services retained', 'Alter existing services', 'New kitchen / bathroom services', 'Independent services / meters'], 'type': 'string'}, 'primaryConstruction': {'enum': ['wood_frame', 'masonry_concrete', 'other_unknown'], 'type': 'string'}, 'includesBasementWork': {'type': 'boolean'}, 'lowerGroundOccupancy': {'enum': ['Vacant during works', 'House occupied during works'], 'type': 'string'}, 'basementDrainageScope': {'enum': ['Existing gravity drainage retained', 'Drainage alterations', 'Pumped drainage required', 'Not confirmed'], 'type': 'string'}, 'basementWaterproofing': {'enum': ['Existing dry system retained', 'Local repairs / upgrades', 'Full tanking system', 'Cavity-drain membrane and pumps', 'Not confirmed'], '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'}, 'decoratingWindowCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'refurbishmentPackages': {'type': 'array', '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}, 'structuralSteelLikely': {'type': 'boolean'}, 'basementLightwellCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'combinedAdditionalSize': {'type': 'number', 'minimum': 0}, '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'}, 'refurbishmentCondition': {'enum': ['Good', 'Average', 'Poor', 'Damp / cracks / problematic'], 'type': 'string'}, 'refurbishmentPrepLevel': {'enum': ['Simple refresh', 'Normal prep', 'Heavy prep'], 'type': 'string'}, 'refurbishmentRoomState': {'enum': ['Empty', 'Partly furnished', 'Occupied'], 'type': 'string'}, 'basementUtilityIncluded': {'type': 'boolean'}, 'climateCodeRequirements': {'type': 'boolean'}, 'commercialWashroomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'includesLowerGroundWork': {'type': 'boolean'}, 'basementBathroomIncluded': {'type': 'boolean'}, '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'}, 'commercialLandlordStatus': {'enum': ['Approval confirmed / not needed', 'Licence to alter in progress', 'Approval not started', 'Not sure'], 'type': 'string'}, 'electricalServiceUpgrade': {'type': 'boolean'}, 'basementStructuralSupport': {'enum': ['No underpinning expected', 'Local structural support', 'Sequential underpinning', 'Piled / engineered support', 'Not confirmed'], 'type': 'string'}, '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'}, 'commercialElectricalScope': {'enum': ['Retain existing / minor electrical works', 'Lighting and small-power alterations', 'New lighting, power and floor-box layout'], 'type': 'string'}, 'commercialPartitionsScope': {'enum': ['Retain layout / minor making good', 'Some partitions and ceiling alterations', 'Extensive partitions and suspended ceilings'], 'type': 'string'}, 'refurbishmentFlooringArea': {'type': 'number', 'minimum': 0}, 'commercialKitchenetteCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'commercialWorkstationCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'additionalInternalWorksArea': {'type': 'number', 'minimum': 0, 'description': 'Total floor area of existing rooms affected outside the main extension or loft, in the supplied area unit.'}, 'commercialFireSecurityScope': {'enum': ['Existing systems retained', 'Fire-safety alterations and interfaces', 'Fire, access control, intercom and security package'], 'type': 'string'}, 'commercialFurnitureIncluded': {'type': 'boolean'}, 'refurbishmentDecoratingArea': {'type': 'number', 'minimum': 0}, 'refurbishmentPlasteringArea': {'type': 'number', 'minimum': 0}, 'hazardousMaterialRemediation': {'type': 'boolean'}, 'additionalInternalWorkPackages': {'type': 'array', '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, 'description': '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.'}, 'includesAdditionalInternalWorks': {'type': 'boolean', 'description': 'True only when the project also changes existing internal rooms outside the main extension or loft.'}}, 'description': 'Country-specific project scope. Use UK fields for GB and US fields for US; do not invent unanswered values.', 'additionalProperties': False}, 'state': {'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', 'description': 'US two-letter state or DC code.'}, 'country': {'enum': ['GB', 'US'], 'type': 'string', 'description': 'Country pricing policy. Use GB for Great Britain or US for the United States. If omitted, GB is used for backwards compatibility.'}, 'jobType': {'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', 'description': 'Residential project type supported by the selected country policy.'}, 'zipCode': {'type': 'string', 'pattern': '^\\d{5}$', 'description': 'Optional US five-digit ZIP code. Never send a street address.'}, 'postcodeArea': {'type': 'string', 'pattern': '^[A-Z]{1,2}\\d[A-Z\\d]?$', 'description': 'GB outward postcode only, for example BS3. Never send a full address.'}}, 'additionalProperties': False}, 'scenarios': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'changes'], 'properties': {'label': {'enum': ['Option 1', 'Option 2', 'Option 3'], 'type': 'string'}, 'changes': {'type': 'object', 'properties': {'access': {'enum': ['straightforward', 'constrained', 'remote'], 'type': 'string'}, 'areaUnit': {'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', 'description': 'Unit for approximateSize. GB defaults to sq_m and US defaults to sq_ft. Common m2 and ft2 forms are accepted.'}, 'doorCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'roomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'scopeBand': {'enum': ['Lean', 'Balanced', 'Expanded'], 'type': 'string', 'description': '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.'}, 'finishBand': {'enum': ['Builder grade', 'Good domestic', 'Premium domestic'], 'type': 'string', 'description': 'Finish specification: Builder grade is budget, Good domestic is a normal quality domestic finish, and Premium domestic is higher specification.'}, 'foundation': {'enum': ['slab', 'crawl_space', 'basement', 'existing_not_applicable'], 'type': 'string'}, 'scopeLevel': {'enum': ['defined', 'typical', 'expanded'], 'type': 'string'}, 'finishLevel': {'enum': ['builder_grade', 'standard', 'premium'], 'type': 'string'}, 'urgencyBand': {'enum': ['Flexible', 'Soon', 'Urgent'], 'type': 'string'}, 'windowCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'accessIssues': {'type': 'boolean'}, 'availability': {'enum': ['Ready now', '2–4 weeks', '1–2 months', '3+ months', '6+ months', 'Next year'], 'type': 'string'}, 'basementArea': {'type': 'number', 'minimum': 0}, 'bedroomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, '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', 'description': '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.'}, 'propertyForm': {'enum': ['Flat', 'Maisonette', 'Terraced house', 'Semi-detached house', 'Detached house', 'Barn / agricultural building', 'Other / not sure', 'Commercial office', 'Office suite'], 'type': 'string', 'description': "Existing property type. Use only the user's answer; do not infer it from the project type."}, 'basementScope': {'enum': ['Existing basement refurbishment', 'Existing cellar conversion', 'Lower / enlarge existing cellar', 'New basement beneath extension', 'New basement beneath existing house'], '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', 'description': '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.'}, 'parkingSpaces': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'basementAccess': {'enum': ['Direct external access', 'Restricted side / rear access', 'Removal through house', 'Highly constrained urban access'], 'type': 'string'}, 'lowerGroundUse': {'enum': ['Part of the main home', 'Dependent annexe', 'Separate dwelling / unit'], 'type': 'string'}, 'propertyPeriod': {'enum': ['Not sure', 'Modern / new build', '1970s-1990s', '1950s-1960s', '1930s-1940s', 'Victorian / Edwardian', 'Older / period property', 'Listed / heritage'], 'type': 'string'}, 'approximateSize': {'type': 'number', 'maximum': 15000, 'description': 'Project floor area. Defaults to square feet for US work; set areaUnit when the user supplied square metres.', 'exclusiveMinimum': 0}, 'hvacReplacement': {'type': 'boolean'}, 'lowerGroundArea': {'type': 'number', 'minimum': 0}, 'basementHeadroom': {'enum': ['No floor lowering', 'Minor lowering up to 300 mm', 'Lowering 300-600 mm', 'Major lowering over 600 mm', 'Not confirmed'], 'type': 'string'}, 'externalWallArea': {'type': 'number', 'minimum': 0}, 'lowerGroundScope': {'enum': ['Refresh existing finished rooms', 'Refurbish existing habitable floor', 'Convert existing ancillary / storage rooms'], 'type': 'string'}, 'barnStructureType': {'enum': ['Not sure', 'Traditional timber / oak frame', 'Steel portal frame', 'Stone / brick load-bearing walls', 'Mixed structure'], 'type': 'string'}, 'basementOccupancy': {'enum': ['Vacant during works', 'House occupied during works'], 'type': 'string'}, 'lowerGroundAccess': {'enum': ['Direct external access', 'Access through main home', 'Constrained access'], 'type': 'string'}, 'planningStageOnly': {'type': 'boolean'}, 'structuralChanges': {'type': 'boolean'}, 'basementStairScope': {'enum': ['Existing stair retained', 'Alter existing stair / opening', 'New basement staircase'], 'type': 'string'}, 'complexGroundworks': {'type': 'boolean'}, 'occupiedDuringWork': {'type': 'boolean'}, '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'}, 'basementGroundwater': {'enum': ['No known issue', 'Possible / high water table', 'Known groundwater / water ingress', 'Not confirmed'], 'type': 'string'}, 'basementIntendedUse': {'enum': ['Storage / utility', 'Habitable room(s)', 'Bedroom / bathroom accommodation', 'Kitchen / living accommodation', 'Separate dwelling / unit'], 'type': 'string'}, 'commercialDataScope': {'enum': ['No data / comms work', 'Data points and Wi-Fi alterations', 'New structured cabling, Wi-Fi and comms cabinet'], 'type': 'string'}, 'commercialHvacScope': {'enum': ['Retain existing HVAC', 'Alter existing AC / ventilation', 'New or substantially replaced HVAC'], 'type': 'string'}, 'commercialOccupancy': {'enum': ['Vacant during works', 'Phased / partly occupied', 'Fully occupied live office', 'Out-of-hours works only'], 'type': 'string'}, 'decoratingDoorCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, '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'}, 'lowerGroundServices': {'enum': ['Existing services retained', 'Alter existing services', 'New kitchen / bathroom services', 'Independent services / meters'], 'type': 'string'}, 'primaryConstruction': {'enum': ['wood_frame', 'masonry_concrete', 'other_unknown'], 'type': 'string'}, 'includesBasementWork': {'type': 'boolean'}, 'lowerGroundOccupancy': {'enum': ['Vacant during works', 'House occupied during works'], 'type': 'string'}, 'basementDrainageScope': {'enum': ['Existing gravity drainage retained', 'Drainage alterations', 'Pumped drainage required', 'Not confirmed'], 'type': 'string'}, 'basementWaterproofing': {'enum': ['Existing dry system retained', 'Local repairs / upgrades', 'Full tanking system', 'Cavity-drain membrane and pumps', 'Not confirmed'], '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'}, 'decoratingWindowCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'refurbishmentPackages': {'type': 'array', '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}, 'structuralSteelLikely': {'type': 'boolean'}, 'basementLightwellCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'combinedAdditionalSize': {'type': 'number', 'minimum': 0}, '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'}, 'refurbishmentCondition': {'enum': ['Good', 'Average', 'Poor', 'Damp / cracks / problematic'], 'type': 'string'}, 'refurbishmentPrepLevel': {'enum': ['Simple refresh', 'Normal prep', 'Heavy prep'], 'type': 'string'}, 'refurbishmentRoomState': {'enum': ['Empty', 'Partly furnished', 'Occupied'], 'type': 'string'}, 'basementUtilityIncluded': {'type': 'boolean'}, 'climateCodeRequirements': {'type': 'boolean'}, 'commercialWashroomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'includesLowerGroundWork': {'type': 'boolean'}, 'basementBathroomIncluded': {'type': 'boolean'}, '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'}, 'commercialLandlordStatus': {'enum': ['Approval confirmed / not needed', 'Licence to alter in progress', 'Approval not started', 'Not sure'], 'type': 'string'}, 'electricalServiceUpgrade': {'type': 'boolean'}, 'basementStructuralSupport': {'enum': ['No underpinning expected', 'Local structural support', 'Sequential underpinning', 'Piled / engineered support', 'Not confirmed'], 'type': 'string'}, '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'}, 'commercialElectricalScope': {'enum': ['Retain existing / minor electrical works', 'Lighting and small-power alterations', 'New lighting, power and floor-box layout'], 'type': 'string'}, 'commercialPartitionsScope': {'enum': ['Retain layout / minor making good', 'Some partitions and ceiling alterations', 'Extensive partitions and suspended ceilings'], 'type': 'string'}, 'refurbishmentFlooringArea': {'type': 'number', 'minimum': 0}, 'commercialKitchenetteCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'commercialWorkstationCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'additionalInternalWorksArea': {'type': 'number', 'minimum': 0, 'description': 'Total floor area of existing rooms affected outside the main extension or loft, in the supplied area unit.'}, 'commercialFireSecurityScope': {'enum': ['Existing systems retained', 'Fire-safety alterations and interfaces', 'Fire, access control, intercom and security package'], 'type': 'string'}, 'commercialFurnitureIncluded': {'type': 'boolean'}, 'refurbishmentDecoratingArea': {'type': 'number', 'minimum': 0}, 'refurbishmentPlasteringArea': {'type': 'number', 'minimum': 0}, 'hazardousMaterialRemediation': {'type': 'boolean'}, 'additionalInternalWorkPackages': {'type': 'array', '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, 'description': '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.'}, 'includesAdditionalInternalWorks': {'type': 'boolean', 'description': 'True only when the project also changes existing internal rooms outside the main extension or loft.'}}, 'description': 'Country-specific project scope. Use UK fields for GB and US fields for US; do not invent unanswered values.', 'additionalProperties': False}}, 'additionalProperties': False}, 'maxItems': 3, 'minItems': 1}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['schemaVersion', 'status'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'enum': ['complete', 'needs_input', 'failed'], 'type': 'string'}, 'schemaVersion': {'type': 'string', 'const': '1'}}, 'additionalProperties': False}
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'scope': {'type': 'object', 'default': {}, 'properties': {'access': {'enum': ['straightforward', 'constrained', 'remote'], 'type': 'string'}, 'areaUnit': {'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', 'description': 'Unit for approximateSize. GB defaults to sq_m and US defaults to sq_ft. Common m2 and ft2 forms are accepted.'}, 'doorCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'roomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'scopeBand': {'enum': ['Lean', 'Balanced', 'Expanded'], 'type': 'string', 'description': '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.'}, 'finishBand': {'enum': ['Builder grade', 'Good domestic', 'Premium domestic'], 'type': 'string', 'description': 'Finish specification: Builder grade is budget, Good domestic is a normal quality domestic finish, and Premium domestic is higher specification.'}, 'foundation': {'enum': ['slab', 'crawl_space', 'basement', 'existing_not_applicable'], 'type': 'string'}, 'scopeLevel': {'enum': ['defined', 'typical', 'expanded'], 'type': 'string'}, 'finishLevel': {'enum': ['builder_grade', 'standard', 'premium'], 'type': 'string'}, 'urgencyBand': {'enum': ['Flexible', 'Soon', 'Urgent'], 'type': 'string'}, 'windowCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'accessIssues': {'type': 'boolean'}, 'availability': {'enum': ['Ready now', '2–4 weeks', '1–2 months', '3+ months', '6+ months', 'Next year'], 'type': 'string'}, 'basementArea': {'type': 'number', 'minimum': 0}, 'bedroomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, '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', 'description': '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.'}, 'propertyForm': {'enum': ['Flat', 'Maisonette', 'Terraced house', 'Semi-detached house', 'Detached house', 'Barn / agricultural building', 'Other / not sure', 'Commercial office', 'Office suite'], 'type': 'string', 'description': "Existing property type. Use only the user's answer; do not infer it from the project type."}, 'basementScope': {'enum': ['Existing basement refurbishment', 'Existing cellar conversion', 'Lower / enlarge existing cellar', 'New basement beneath extension', 'New basement beneath existing house'], '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', 'description': '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.'}, 'parkingSpaces': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'basementAccess': {'enum': ['Direct external access', 'Restricted side / rear access', 'Removal through house', 'Highly constrained urban access'], 'type': 'string'}, 'lowerGroundUse': {'enum': ['Part of the main home', 'Dependent annexe', 'Separate dwelling / unit'], 'type': 'string'}, 'propertyPeriod': {'enum': ['Not sure', 'Modern / new build', '1970s-1990s', '1950s-1960s', '1930s-1940s', 'Victorian / Edwardian', 'Older / period property', 'Listed / heritage'], 'type': 'string'}, 'approximateSize': {'type': 'number', 'maximum': 15000, 'description': 'Project floor area. Defaults to square feet for US work; set areaUnit when the user supplied square metres.', 'exclusiveMinimum': 0}, 'hvacReplacement': {'type': 'boolean'}, 'lowerGroundArea': {'type': 'number', 'minimum': 0}, 'basementHeadroom': {'enum': ['No floor lowering', 'Minor lowering up to 300 mm', 'Lowering 300-600 mm', 'Major lowering over 600 mm', 'Not confirmed'], 'type': 'string'}, 'externalWallArea': {'type': 'number', 'minimum': 0}, 'lowerGroundScope': {'enum': ['Refresh existing finished rooms', 'Refurbish existing habitable floor', 'Convert existing ancillary / storage rooms'], 'type': 'string'}, 'barnStructureType': {'enum': ['Not sure', 'Traditional timber / oak frame', 'Steel portal frame', 'Stone / brick load-bearing walls', 'Mixed structure'], 'type': 'string'}, 'basementOccupancy': {'enum': ['Vacant during works', 'House occupied during works'], 'type': 'string'}, 'lowerGroundAccess': {'enum': ['Direct external access', 'Access through main home', 'Constrained access'], 'type': 'string'}, 'planningStageOnly': {'type': 'boolean'}, 'structuralChanges': {'type': 'boolean'}, 'basementStairScope': {'enum': ['Existing stair retained', 'Alter existing stair / opening', 'New basement staircase'], 'type': 'string'}, 'complexGroundworks': {'type': 'boolean'}, 'occupiedDuringWork': {'type': 'boolean'}, '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'}, 'basementGroundwater': {'enum': ['No known issue', 'Possible / high water table', 'Known groundwater / water ingress', 'Not confirmed'], 'type': 'string'}, 'basementIntendedUse': {'enum': ['Storage / utility', 'Habitable room(s)', 'Bedroom / bathroom accommodation', 'Kitchen / living accommodation', 'Separate dwelling / unit'], 'type': 'string'}, 'commercialDataScope': {'enum': ['No data / comms work', 'Data points and Wi-Fi alterations', 'New structured cabling, Wi-Fi and comms cabinet'], 'type': 'string'}, 'commercialHvacScope': {'enum': ['Retain existing HVAC', 'Alter existing AC / ventilation', 'New or substantially replaced HVAC'], 'type': 'string'}, 'commercialOccupancy': {'enum': ['Vacant during works', 'Phased / partly occupied', 'Fully occupied live office', 'Out-of-hours works only'], 'type': 'string'}, 'decoratingDoorCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, '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'}, 'lowerGroundServices': {'enum': ['Existing services retained', 'Alter existing services', 'New kitchen / bathroom services', 'Independent services / meters'], 'type': 'string'}, 'primaryConstruction': {'enum': ['wood_frame', 'masonry_concrete', 'other_unknown'], 'type': 'string'}, 'includesBasementWork': {'type': 'boolean'}, 'lowerGroundOccupancy': {'enum': ['Vacant during works', 'House occupied during works'], 'type': 'string'}, 'basementDrainageScope': {'enum': ['Existing gravity drainage retained', 'Drainage alterations', 'Pumped drainage required', 'Not confirmed'], 'type': 'string'}, 'basementWaterproofing': {'enum': ['Existing dry system retained', 'Local repairs / upgrades', 'Full tanking system', 'Cavity-drain membrane and pumps', 'Not confirmed'], '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'}, 'decoratingWindowCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'refurbishmentPackages': {'type': 'array', '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}, 'structuralSteelLikely': {'type': 'boolean'}, 'basementLightwellCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'combinedAdditionalSize': {'type': 'number', 'minimum': 0}, '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'}, 'refurbishmentCondition': {'enum': ['Good', 'Average', 'Poor', 'Damp / cracks / problematic'], 'type': 'string'}, 'refurbishmentPrepLevel': {'enum': ['Simple refresh', 'Normal prep', 'Heavy prep'], 'type': 'string'}, 'refurbishmentRoomState': {'enum': ['Empty', 'Partly furnished', 'Occupied'], 'type': 'string'}, 'basementUtilityIncluded': {'type': 'boolean'}, 'climateCodeRequirements': {'type': 'boolean'}, 'commercialWashroomCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'includesLowerGroundWork': {'type': 'boolean'}, 'basementBathroomIncluded': {'type': 'boolean'}, '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'}, 'commercialLandlordStatus': {'enum': ['Approval confirmed / not needed', 'Licence to alter in progress', 'Approval not started', 'Not sure'], 'type': 'string'}, 'electricalServiceUpgrade': {'type': 'boolean'}, 'basementStructuralSupport': {'enum': ['No underpinning expected', 'Local structural support', 'Sequential underpinning', 'Piled / engineered support', 'Not confirmed'], 'type': 'string'}, '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'}, 'commercialElectricalScope': {'enum': ['Retain existing / minor electrical works', 'Lighting and small-power alterations', 'New lighting, power and floor-box layout'], 'type': 'string'}, 'commercialPartitionsScope': {'enum': ['Retain layout / minor making good', 'Some partitions and ceiling alterations', 'Extensive partitions and suspended ceilings'], 'type': 'string'}, 'refurbishmentFlooringArea': {'type': 'number', 'minimum': 0}, 'commercialKitchenetteCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'commercialWorkstationCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'additionalInternalWorksArea': {'type': 'number', 'minimum': 0, 'description': 'Total floor area of existing rooms affected outside the main extension or loft, in the supplied area unit.'}, 'commercialFireSecurityScope': {'enum': ['Existing systems retained', 'Fire-safety alterations and interfaces', 'Fire, access control, intercom and security package'], 'type': 'string'}, 'commercialFurnitureIncluded': {'type': 'boolean'}, 'refurbishmentDecoratingArea': {'type': 'number', 'minimum': 0}, 'refurbishmentPlasteringArea': {'type': 'number', 'minimum': 0}, 'hazardousMaterialRemediation': {'type': 'boolean'}, 'additionalInternalWorkPackages': {'type': 'array', '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, 'description': '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.'}, 'includesAdditionalInternalWorks': {'type': 'boolean', 'description': 'True only when the project also changes existing internal rooms outside the main extension or loft.'}}, 'description': 'Country-specific project scope. Use UK fields for GB and US fields for US; do not invent unanswered values.', 'additionalProperties': False}, 'state': {'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', 'description': 'US two-letter state or DC code.'}, 'country': {'enum': ['GB', 'US'], 'type': 'string', 'description': 'Country pricing policy. Use GB for Great Britain or US for the United States. If omitted, GB is used for backwards compatibility.'}, 'jobType': {'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', 'description': 'Residential project type supported by the selected country policy.'}, 'zipCode': {'type': 'string', 'pattern': '^\\d{5}$', 'description': 'Optional US five-digit ZIP code. Never send a street address.'}, 'postcodeArea': {'type': 'string', 'pattern': '^[A-Z]{1,2}\\d[A-Z\\d]?$', 'description': 'GB outward postcode only, for example BS3. Never send a full address.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['schemaVersion', 'status'], 'properties': {'data': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'error': {'type': 'object', 'required': ['code', 'message'], 'properties': {'code': {'type': 'string'}, 'message': {'type': 'string'}}, 'additionalProperties': False}, 'status': {'enum': ['complete', 'needs_input', 'failed'], 'type': 'string'}, 'schemaVersion': {'type': 'string', 'const': '1'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
Microburbs Australian Property Data
Provides Australian property, suburb, valuation, sales, rental, zoning, school, risk, geospatial, and census statistics.
Superlógica Condomínios
Connects to a condominium ERP for billing, collections, agreements, expenses, bank movements, statements, files, communications, …
DFX Real Estate Intelligence
Provides US commercial real estate, parcel, debt maturity, bank CRE exposure, private capital, investor, ownership, occupancy, an…
RateAPI — live US mortgage, auto, HELOC, personal & deposit rates
Supplies live US lending and deposit rates, financing comparisons, affordability and amortization calculations, eligibility check…
immobilier
Creates, validates, analyzes, and exports French building and property designs as DXF, IFC, BCF, PDFs, visualizations, quantities…
US Company Intelligence for AI Agents (SEC EDGAR, x402)
Offers pay-per-call web extraction, search and LLM tools plus French company, property, procurement, marketplace and security dat…
lilo Vacation Rentals
Supports vacation-rental discovery, availability and direct booking, property operations, short-term-rental compliance, guest and…
Rafid Intelligence Network
Analyzes Oman properties using rental comparables, yields, costs, and payback metrics, and supports Oman company search, profilin…