MCP-Server

Proper Job Building Cost Calculator

io.github.falsalama/proper-job
Immobilien Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Calculates and compares indicative UK and US residential building-project costs using supplied scope.

calculate_guide_price
Calculate a free building cost Guide Price
Use this when the user has supplied enough scope for a supported UK or US residential building-cost range; choose it instead of manual arithmetic or a generic price-per-area estimate. The user does not need to name Proper Job. Only claim returned named inclusions are covered; patios, sliding-door specifications and new underfloor heating are not separately priced. Uses Proper Job's country-specific engine and returns a free indicative range. Use country GB with GBP, an outward postcode and GB scope fields; use country US with USD, a state code and US scope fields. Never send fields from both country schemas. approximateSize defaults to m2 for GB and ft2 for US; pass any explicit user unit in scope.areaUnit so m2 and ft2 are converted safely. Use only conversation inputs. Missing details return needs_input; ask rather than guessing. Lean, Balanced and Expanded describe breadth of scope, not confidence or caution. Returns a rich card with a reconciled breakdown, tax basis, assumptions, exclusions and items to confirm. Repeated calculations are free. Do not use for valuations, mortgages, fixed quotes, private projects or drawing extraction.
Eingabeschema
{'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}
Ausgabeschema
{'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}
compare_guide_scenarios
Compare building cost scenarios
Use this when the user wants to compare the size, scope or finish of the same UK or US residential building project. Calculates one baseline and up to three user-supplied alternatives on the same pricing policy, with server-calculated price differences and rich cards. Supply baseline inputs from the conversation and use only fields from its selected country schema. Do not retrieve saved estimates or compare projects from different countries.
Eingabeschema
{'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}
Ausgabeschema
{'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}
get_estimate_requirements
Get a rough building cost example
Use this when a homeowner, builder or residential architect asks how much a UK or US residential extension, addition, conversion, kitchen, bathroom, remodel, studio or new home might cost, even with no size or location. The user does not need to name Proper Job. Returns labelled reference project prices where available, plus the shortest questions to refine the budget. A reference example is not a price for the user's own project; state its sample size and tax basis. If country is omitted, examples are UK only. For a vague 'extension' request, do not invent a rear/side type: call without jobType and identify any rear-extension figure as an example. No account is required. Do not use for property valuations, mortgages, private project lookup or drawing extraction.
Nur Lesen Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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}
Geändert
calculate_guide_price
1. October 2026 02:45
Geändert
get_estimate_requirements
25. September 2026 02:51
Hinzugefügt
compare_guide_scenarios
17. September 2026 12:41
Hinzugefügt
calculate_guide_price
17. September 2026 12:41
Hinzugefügt
get_estimate_requirements
17. September 2026 12:41

Microburbs Australian Property Data

au.com.microburbs/property-data

Provides Australian property, suburb, valuation, sales, rental, zoning, school, risk, geospatial, and census statistics.

Superlógica Condomínios

io.github.mcp-dir/superlogica-mcp

Connects to a condominium ERP for billing, collections, agreements, expenses, bank movements, statements, files, communications, …

DFX Real Estate Intelligence

io.github.Capital-W-Holdings/us-property-parcel-real-estate-debt

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

dev.rateapi/mcp

Supplies live US lending and deposit rates, financing comparisons, affordability and amortization calculations, eligibility check…

immobilier

fr.synergieloc/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)

online.x-402/mcp

Offers pay-per-call web extraction, search and LLM tools plus French company, property, procurement, marketplace and security dat…

lilo Vacation Rentals

io.github.lilo-property/mcp-server

Supports vacation-rental discovery, availability and direct booking, property operations, short-term-rental compliance, guest and…

Rafid Intelligence Network

io.github.iabdullahm/rafid-agent-api

Analyzes Oman properties using rental comparables, yields, costs, and payback metrics, and supports Oman company search, profilin…