Proven Plaza Calculators & Open Data
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
29 free construction calculators plus Florida contractor, permit, federal award and AI-crawler data.
| Author | io.github.ZacharyVorsteg |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 379 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Proven Plaza Calculators & Open Data": {
"url": "https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (57)
calc_concrete_slabread-onlyEstimate ready-mix cubic yards or the number of 80 lb bags for a rectangular slab, patio or driveway. Formula: Cubic yards = Length(ft) × Width(ft) × Thickness(in)/12 ÷ 27 × (1 + waste%). Bags = cubic feet ÷ bag yield.
Parameters:
depth_in— number — Thickness (in); default 4width_ft— number — Width (ft); default 10length_ft— number — Length (ft); default 20waste_pct— number — Waste allowance (%); default 10bag_yield_cf— number — Bag yield (cu ft/bag); default 0.6
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_concrete_columnread-onlyConcrete needed for round columns, piers and tube forms (sonotubes). Uses cylinder volume, which differs from slab math. Formula: Cubic feet = π × (diameter(in)/24)² × height(ft) × count; cubic yards = cu ft ÷ 27 × (1 + waste%).
Parameters:
count— number — Number of columns; default 4height_ft— number — Height (ft); default 4waste_pct— number — Waste allowance (%); default 10diameter_in— number — Tube diameter (in); default 12bag_yield_cf— number — Bag yield (cu ft/bag); default 0.6
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_concrete_footingread-onlyVolume for continuous trench/wall footings where width is in inches and length runs the full perimeter. Formula: Cubic yards = Length(ft) × Width(in)/12 × Depth(in)/12 ÷ 27 × (1 + waste%).
Parameters:
depth_in— number — Footing depth (in); default 8width_in— number — Footing width (in); default 16length_ft— number — Total footing length (ft); default 120waste_pct— number — Waste allowance (%); default 10bag_yield_cf— number — Bag yield (cu ft/bag); default 0.6
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_paintread-onlyGallons of wall paint from room perimeter and height, minus doors and windows, for any number of coats. Formula: Paintable area = perimeter × height − 20 sq ft per door − 15 sq ft per window. Gallons = area × coats ÷ label coverage.
Parameters:
coats— number — Coats; default 2doors— number — Doors; default 1windows— number — Windows; default 2wall_height_ft— number — Wall height (ft); default 8wall_perimeter_ft— number — Room perimeter (ft); default 48coverage_sqft_per_gal— number — Coverage (from your can label) (sq ft/gal); default 350
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_roofingread-onlyRoof area from the house footprint and pitch, converted to roofing squares (100 sq ft) and shingle bundles. Formula: Pitch factor = √(1 + (rise/12)²). Roof area = (L + 2×overhang) × (W + 2×overhang) × pitch factor. Squares = area ÷ 100 × (1 + waste%).
Parameters:
waste_pct— number — Waste allowance (%); default 10pitch_rise— number — Pitch (rise per 12 in run) (in); default 6overhang_in— number — Eave/rake overhang (in); default 12bundles_per_square— number — Bundles per square (see wrapper); default 3footprint_width_ft— number — Footprint width (ft); default 30footprint_length_ft— number — Footprint length (ft); default 40
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_drywallread-onlyNumber of drywall sheets for walls and optionally the ceiling. Formula: Sheets = (perimeter × height + ceiling area) × (1 + waste%) ÷ sheet area.
Parameters:
waste_pct— number — Waste allowance (%); default 10sheet_l_ft— number — Sheet length (ft); default 8sheet_w_ft— number — Sheet width (ft); default 4room_width_ft— number — Room width (ceiling) (ft); default 10room_length_ft— number — Room length (ceiling) (ft); default 14wall_height_ft— number — Wall height (ft); default 8include_ceiling— number — Include ceiling; default 1; one of 1 = Yes, 0 = Nowall_perimeter_ft— number — Room perimeter (ft); default 48
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_flooring_tileread-onlySquare footage plus waste and number of boxes for tile, laminate, vinyl plank or hardwood. Formula: Area = L × W; to buy = area × (1 + waste%); boxes = to buy ÷ coverage per box.
Parameters:
width_ft— number — Room width (ft); default 12length_ft— number — Room length (ft); default 14waste_pct— number — Waste allowance (more for diagonal layouts) (%); default 10box_coverage_sqft— number — Coverage per box (on the box) (sq ft); default 20
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_mulch_gravelread-onlyCubic yards (and optional tons) of mulch, gravel, sand or soil for a bed or path. Formula: Cubic yards = L(ft) × W(ft) × depth(in) ÷ 324 (since 27 cu ft × 12 in = 324). Tons = cu yd × supplier density.
Parameters:
depth_in— number — Depth (in); default 3width_ft— number — Width (ft); default 10length_ft— number — Length (ft); default 20tons_per_cy— number — Material density from your supplier (0 = skip) (tons/cu yd); default 0
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_voltage_dropread-onlyVoltage drop for a single- or three-phase run using NEC Chapter 9 Table 8 conductor sizes. Formula: VD = 2 × K × I × L ÷ CM (single phase) or √3 × K × I × L ÷ CM (three phase); K = ohm·cmil/ft (approx. 12.9 Cu, 21.2 Al); CM from NEC Ch. 9 Table 8.
Parameters:
awg— string — Wire size (AWG); default 12amps— number — Load current (A); default 16phase— number — Phase; default 1; one of 1 = Single phase, 3 = Three phasevolts— number — Source voltage (V); default 120material— string — Conductor; default copperone_way_ft— number — One-way length (ft); default 100
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_ac_bturead-onlyRoom air-conditioner capacity using the ENERGY STAR sizing chart and its adjustments for sun, occupants and kitchens. Formula: Base BTU from the ENERGY STAR area chart; −10% heavily shaded, +10% very sunny, +600 BTU per person above 2, +4,000 BTU for a kitchen.
Parameters:
shade— string — Sun exposure; default normalkitchen— number — Used as kitchen; default 0; one of 0 = No, 1 = Yes (+4,000 BTU)occupants— number — Regular occupants; default 2room_sqft— number — Room area (sq ft); default 350
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_deck_boardread-onlyNumber of deck boards for a rectangular deck, accounting for board width and gap. Formula: Rows = ⌈width(in) ÷ (board width + gap)⌉; boards = rows × ⌈deck length ÷ board length⌉ × (1 + waste%).
Parameters:
gap_in— number — Gap between boards (in); default 0.1875waste_pct— number — Waste allowance (%); default 10deck_width_ft— number — Deck width (ft); default 12board_width_in— number — Actual board width (in); default 5.5deck_length_ft— number — Deck length (board direction) (ft); default 16board_length_ft— number — Board length (ft); default 16
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_fenceread-onlyPosts, rails and pickets for a straight run of wood privacy or picket fence. Formula: Sections = ⌈length ÷ spacing⌉; posts = sections + 1 + gates; pickets = ⌈length(in) ÷ (picket width + gap)⌉.
Parameters:
gates— number — Gates (extra posts); default 1length_ft— number — Fence length (ft); default 100picket_gap_in— number — Gap between pickets (in); default 0picket_width_in— number — Picket width (in); default 5.5post_spacing_ft— number — Post spacing (ft); default 8rails_per_section— number — Rails per section; default 2
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_insulation_r_valueread-onlyThickness needed to reach a target R-value for the R-per-inch printed on your insulation product. Formula: Thickness(in) = target R ÷ R per inch. Volume in board feet = area(sq ft) × thickness(in).
Parameters:
target_r— number — Target R-value; default 38area_sqft— number — Area (optional) (sq ft); default 1000r_per_inch— number — R-value per inch (product label); default 3.2
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_pool_volumeread-onlyGallons in a rectangular pool with a sloped bottom, using average depth. Formula: Gallons = L × W × (shallow + deep)/2 × 7.48052 gal/cu ft.
Parameters:
deep_ft— number — Deep-end depth (ft); default 6width_ft— number — Width (ft); default 16length_ft— number — Length (ft); default 32shallow_ft— number — Shallow-end depth (ft); default 3.5
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_round_pool_volumeread-onlyGallons in a round or above-ground pool. Formula: Gallons = π × (D/2)² × average depth × 7.48052 (≈ D² × depth × 5.875).
Parameters:
diameter_ft— number — Diameter (ft); default 24avg_depth_ft— number — Average water depth (ft); default 4.5
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_oval_pool_volumeread-onlyGallons in an oval (elliptical) pool. Formula: Gallons = π × (L/2) × (W/2) × average depth × 7.48052.
Parameters:
width_ft— number — Width (ft); default 15length_ft— number — Length (ft); default 30avg_depth_ft— number — Average depth (ft); default 4.5
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_solar_panelread-onlyPanels needed to offset annual electricity use, from panel wattage, peak sun hours and system losses. Formula: Annual kWh per panel = W/1000 × peak sun hours × 365 × (1 − losses). Panels = ⌈annual use ÷ kWh per panel⌉.
Parameters:
annual_kwh— number — Annual usage (from your bills) (kWh); default 12000panel_watts— number — Panel rating (W); default 400peak_sun_hours— number — Peak sun hours/day (look up in PVWatts) (h); default 5system_losses_pct— number — System losses (%); default 14
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_board_footread-onlyBoard feet and cost for hardwood or dimensional lumber. Formula: Board feet = thickness(in) × width(in) × length(ft) ÷ 12 × pieces (one board foot = 144 cubic inches).
Parameters:
quantity— number — Pieces; default 10width_in— number — Width (in); default 6length_ft— number — Length (ft); default 8price_per_bf— number — Price per board foot (0 = skip) ($); default 0thickness_in— number — Thickness (in); default 1
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_asphaltread-onlyTons of hot-mix asphalt for a driveway or lot from area, compacted depth and mix density. Formula: Tons = L × W × depth(in)/12 × density(lb/cu ft) ÷ 2,000.
Parameters:
depth_in— number — Compacted depth (in); default 2width_ft— number — Width (ft); default 12lb_per_cf— number — Mix density (ask your plant) (lb/cu ft); default 145length_ft— number — Length (ft); default 50
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_stair_stringerread-onlyNumber of risers and treads, exact riser height, total run and stringer length from the floor-to-floor rise, checked against the IRC 7¾ in maximum riser. Formula: Risers = ⌈total rise ÷ max riser⌉; riser height = total rise ÷ risers; treads = risers − 1; total run = treads × tread depth; stringer length = √(rise² + run²).
Parameters:
max_riser_in— number — Maximum riser height allowed (in); default 7.75total_rise_in— number — Total rise (finished floor to finished floor) (in); default 108tread_depth_in— number — Tread depth (run per step) (in); default 10
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_rafter_lengthread-onlyCommon rafter length, ridge rise and roof angle from the horizontal run and pitch, with optional overhang. Formula: Pitch factor = √(1 + (rise/12)²). Rafter length = (run + overhang) × pitch factor. Ridge rise = run × rise ÷ 12. Angle = atan(rise ÷ 12).
Parameters:
run_ft— number — Horizontal run (half the span, minus half the ridge board) (ft); default 14pitch_rise— number — Pitch (rise per 12 in of run) (in); default 6overhang_in— number — Horizontal overhang (eave) (in); default 12
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_wall_studread-onlyStuds at 16 or 24 in on center for a wall length, plus extras for corners and openings, and linear feet of top and bottom plate. Formula: Studs on layout = ⌈length(in) ÷ spacing⌉ + 1; total = layout + corners × extras per corner + openings × extras per opening. Plate linear ft = length × plates.
Parameters:
plates— number — Plates (bottom + double top = 3); default 3corners— number — Corners in this wall; default 2openings— number — Door/window openings; default 1spacing_in— number — Stud spacing (on center); default 16; one of 16 = 16 in o.c., 24 = 24 in o.c., 12 = 12 in o.c.wall_length_ft— number — Wall length (ft); default 20studs_per_corner— number — Extra studs per corner; default 2studs_per_opening— number — Extra studs per opening (king/jack); default 2
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_brickread-onlyBricks for a single-wythe wall from its area, the brick face size and the mortar joint. Defaults are a modular brick with a ⅜ in joint. Formula: Bricks per sq ft = 144 ÷ ((length + joint) × (height + joint)); bricks = (wall area − openings) × bricks per sq ft × (1 + waste%).
Parameters:
joint_in— number — Mortar joint (in); default 0.375waste_pct— number — Waste allowance (%); default 5openings_sqft— number — Openings to subtract (sq ft); default 0unit_height_in— number — Brick height (actual) (in); default 2.25unit_length_in— number — Brick length (actual) (in); default 7.625wall_height_ft— number — Wall height (ft); default 8wall_length_ft— number — Wall length (ft); default 20
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_concrete_blockread-onlyNumber of 8×8×16 concrete blocks (CMU) for a wall. A standard block plus a ⅜ in joint covers 16 × 8 in, so about 1.125 blocks per square foot. Formula: Blocks per sq ft = 144 ÷ ((length + joint) × (height + joint)) = 144 ÷ (16 × 8) = 1.125 for standard units; blocks = net wall area × 1.125 × (1 + waste%).
Parameters:
joint_in— number — Mortar joint (in); default 0.375waste_pct— number — Waste allowance (%); default 5openings_sqft— number — Openings to subtract (sq ft); default 0unit_height_in— number — Block height (actual) (in); default 7.625unit_length_in— number — Block length (actual) (in); default 15.625wall_height_ft— number — Wall height (ft); default 8wall_length_ft— number — Wall length (ft); default 40
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_paverread-onlyNumber of pavers for a patio, walkway or driveway plus cubic yards of compacted base and bedding sand. Formula: Pavers per sq ft = 144 ÷ (paver length × width); pavers = area × per sq ft × (1 + waste%). Base and sand cubic yards = area × depth(in) ÷ 324.
Parameters:
width_ft— number — Area width (ft); default 12length_ft— number — Area length (ft); default 16waste_pct— number — Waste allowance (more for patterns/curves) (%); default 10base_depth_in— number — Base depth (per your design) (in); default 4sand_depth_in— number — Bedding sand depth (in); default 1paver_width_in— number — Paver width (in); default 4paver_length_in— number — Paver length (in); default 8
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_sodread-onlySquare feet of sod, number of pieces and pallets for a lawn area. Piece size and pallet coverage are editable because they vary by farm and grass type. Formula: Sq ft to buy = L × W × (1 + waste%); pieces = sq ft ÷ (piece length × width ÷ 144); pallets = sq ft ÷ pallet coverage.
Parameters:
width_ft— number — Lawn width (ft); default 40length_ft— number — Lawn length (ft); default 50waste_pct— number — Waste allowance (%); default 5pallet_sqft— number — Coverage per pallet (ask your supplier) (sq ft); default 400piece_width_in— number — Piece width (ask your supplier) (in); default 16piece_length_in— number — Piece length (ask your supplier) (in); default 24
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_pool_saltread-onlyPounds and bags of pool salt to raise a saltwater pool from its current salt level to the target your chlorine generator needs. Formula: Salt (lb) = gallons × 8.34 lb/gal × (target ppm − current ppm) ÷ 1,000,000. Bags = ⌈lb ÷ bag size⌉.
Parameters:
bag_lb— number — Bag size (lb); default 40target_ppm— number — Target salt level (from your cell manual) (ppm); default 3200current_ppm— number — Current salt level (test strip or meter) (ppm); default 0pool_gallons— number — Pool volume (gal); default 15000
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_pool_chlorineread-onlyFluid ounces of liquid chlorine (sodium hypochlorite) to raise free chlorine by a target number of ppm, from pool volume and product strength. Formula: Available chlorine (g) = gallons × 3.78541 L/gal × ppm (mg/L) ÷ 1,000. Product (mL) = grams ÷ (strength% ÷ 100), since trade percent is grams of available chlorine per 100 mL. Fl oz = mL ÷ 29.5735.
Parameters:
raise_ppm— number — Raise free chlorine by (ppm); default 3pool_gallons— number — Pool volume (gal); default 15000strength_pct— number — Product strength (trade %, on the jug) (%); default 12.5
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_generator_sizeread-onlyWhat size generator you need for a power outage: add the running watts of everything you will run at once, then add the single biggest motor starting surge. Enter how many of each item you plan to run at the same time. Formula: Total running watts = Σ (quantity × running watts). Total starting watts = total running watts + the single highest additional starting watts among the items you run, because motors rarely start at the same instant. Amps at 240 V = running watts ÷ 240. Margin is an optional buffer you choose.
Parameters:
box_fan— number — Box fan, 20 in: how many (200 W running); default 0light_60w— number — Light bulb, 60 W: how many (60 W running); default 4margin_pct— number — Safety margin (your choice) (%); default 10coffee_maker— number — Coffee maker: how many (1,000 W running); default 0refrigerator— number — Refrigerator/freezer: how many (700 W running, +2,200 W to start); default 1space_heater— number — Space heater: how many (1,800 W running); default 0window_ac_10k— number — Window AC, 10,000 BTU: how many (1,200 W running, +1,800 W to start); default 1central_ac_24k— number — Central AC, 24,000 BTU (2 ton): how many (3,800 W running, +4,950 W to start); default 0central_ac_40k— number — Central AC, 40,000 BTU: how many (6,000 W running, +6,700 W to start); default 0microwave_1000w— number — Microwave, 1,000 W: how many (1,000 W running); default 1other_running_w— number — Other running watts (TV, router, chargers: from nameplates) (W); default 300washing_machine— number — Washing machine: how many (1,150 W running, +2,250 W to start); default 0other_starting_w— number — Extra starting watts of your largest other motor (0 if none) (W); default 0sump_pump_half_hp— number — Sump pump, 1/2 HP: how many (1,050 W running, +2,200 W to start); default 0well_pump_third_hp— number — Water well pump, 1/3 HP: how many (1,000 W running, +2,200 W to start); default 0furnace_fan_half_hp— number — Furnace fan blower, 1/2 HP: how many (800 W running, +2,350 W to start); default 0garage_door_half_hp— number — Garage door opener, 1/2 HP: how many (875 W running, +2,350 W to start); default 0electric_water_heater— number — Electric water heater: how many (4,000 W running); default 0
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_rebarread-onlyHow much rebar a rectangular slab grid needs: bar count each way, lap splices, total linear feet, 20 ft sticks to order and steel weight from ASTM A615 bar weights. Formula: Bars each way = ⌊(clear span ÷ spacing)⌋ + 1, where clear span = side × 12 − 2 × edge clearance. A run longer than one stick needs ⌈(run − lap) ÷ (stick − lap)⌉ pieces, adding one lap per joint; lap = bar diameters × bar diameter. Linear ft = (bars × run + splices × lap) ÷ 12; sticks = ⌈linear ft × (1 + allowance) ÷ stick length⌉; weight = linear ft × ASTM A615 lb/ft.
Parameters:
bar— string — Bar size; default 4edge_in— number — Edge clearance each side (in); default 3width_ft— number — Slab width (ft); default 24length_ft— number — Slab length (ft); default 30waste_pct— number — Cut-off allowance (%); default 5spacing_in— number — Bar spacing on center (from your plans) (in); default 12stock_length_ft— number — Stick length (ft); default 20lap_bar_diameters— number — Lap splice length in bar diameters (from your plans or engineer); default 40
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_retaining_wallread-onlyHow many retaining wall blocks you need for a straight wall or a circle (fire pit, tree ring), including the buried course, cap units, base gravel for the leveling pad and drainage rock behind the wall. Block sizes are editable because every product line differs. Formula: Buried depth = max(exposed height ÷ bury ratio, minimum). Courses = ⌈(exposed height + buried depth − cap height) ÷ block height⌉. Blocks per course = ⌈run ÷ block face length⌉, where run = wall length, or π × outside diameter for a circle. Wall blocks = ⌈blocks per course × courses × (1 + waste%)⌉; caps = ⌈run ÷ cap length × (1 + waste%)⌉. Base gravel cu yd = run(ft) × trench width(in) × base depth(in) ÷ 144 ÷ 27; drainage rock cu yd = run(ft) × zone depth(in) × stacked block height(in) ÷ 144 ÷ 27 (straight walls only).
Parameters:
shape— string — Wall shape; default straightwaste_pct— number — Block waste/cut allowance (%); default 5min_bury_in— number — Minimum buried depth (from your block maker) (in); default 6base_depth_in— number — Compacted base depth (in); default 6bury_ratio_in— number — Bury 1 in of block for every __ in of exposed height (from your block maker) (in); default 8cap_height_in— number — Cap height (0 = no caps) (in); default 0cap_length_in— number — Cap face length (in); default 12drain_zone_in— number — Drainage rock zone behind the block (in); default 12block_height_in— number — Block height (from the block label) (in); default 4block_length_in— number — Block face length (from the block label) (in); default 12trench_width_in— number — Base trench width (in); default 24exposed_height_in— number — Exposed wall height above grade (including cap) (in); default 24length_or_diameter_ft— number — Wall length (straight) or outside diameter (circle) (ft); default 20
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_appliance_energy_costread-onlyDaily and yearly kWh and the cost to run any appliance from its wattage, hours of use and your electricity rate. Formula: kWh per day = watts × hours ÷ 1,000; kWh per year = kWh per day × days; cost = kWh × rate.
Parameters:
watts— number — Appliance wattage (nameplate, or amps × volts) (W); default 1500rate_per_kwh— number — Your electricity rate (from your bill) ($/kWh); default 0.15days_per_year— number — Days used per year; default 365hours_per_day— number — Hours used per day (h); default 4
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_gutter_sizeread-onlyCheck whether a gutter can carry the runoff from your roof in a design storm, and how many downspouts it needs. Uses the USDA NRCS gutter and downspout capacity table and your local rainfall intensity. Formula: Runoff Q (cfs) = roof area (sq ft) × rainfall intensity (in/hr) ÷ 43,200 (12 in/ft × 3,600 s/hr); gpm = cfs × 448.8. The gutter is adequate when Q ≤ its NRCS PA-1 capacity at your slope. Downspouts = the larger of ⌈Q ÷ one downspout's PA-1 capacity⌉ and ⌈run length ÷ max length per downspout⌉. Max roof area for the gutter = capacity × 43,200 ÷ intensity.
Parameters:
slope— string — Gutter slope; default 1/16gutter— string — Gutter; default alum5downspout— string — Downspout; default 2x3gutter_run_ft— number — Gutter run length (ft); default 40rain_in_per_hr— number — Design rainfall intensity (5-minute depth from NOAA Atlas 14 × 12) (in/hr); default 6roof_area_sqft— number — Roof area draining to this gutter (plan view, not slope length) (sq ft); default 1200max_run_per_downspout_ft— number — Max gutter length per downspout (SMACNA practical max 50 ft) (ft); default 50
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_concrete_stepsread-onlyHow much concrete solid steps need, from the total height to climb: number of risers, riser height, treads, top landing, cubic yards and 80 lb bags. Formula: Risers n = ⌈total rise ÷ max riser⌉; riser height R = total rise ÷ n. Side profile area = tread × R × n(n − 1) ÷ 2 + landing depth × n × R (each lower tread is a block of its own height; the landing sits at full height). Volume (cu ft) = profile (sq in) × width (in) ÷ 1,728; cubic yards = cu ft × (1 + waste) ÷ 27; bags = cu ft × (1 + waste) ÷ bag yield.
Parameters:
waste_pct— number — Waste allowance (%); default 10bag_yield_cf— number — Bag yield (from the bag) (cu ft/bag); default 0.6max_riser_in— number — Max riser height (IRC 7¾ in; check your local code) (in); default 7.75step_width_ft— number — Step width (ft); default 4total_rise_in— number — Total rise (ground to top of landing) (in); default 21tread_depth_in— number — Tread depth (in); default 11landing_depth_in— number — Top landing depth (0 = no landing) (in); default 36
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_groutread-onlyHow much grout a tile job takes from the tile size, joint width, joint depth and area, in pounds and bags. The grout density is editable so you can match your product. Formula: Each tile plus its joint is a (L + J) × (W + J) module, of which J × (L + W + J) is joint. Joint share = J(L + W + J) ÷ ((L + J)(W + J)). Grout volume (cu ft) = area × joint share × depth(in) ÷ 12; pounds = volume × density × (1 + waste); bags = ⌈pounds ÷ bag size⌉.
Parameters:
bag_lb— number — Bag size (lb); default 25area_sqft— number — Tiled area (sq ft); default 100waste_pct— number — Waste allowance (%); default 10density_lb_cf— number — Grout weight per cubic foot of joint (from your grout data sheet; ~100 sanded, ~85 unsanded) (lb/cu ft); default 100tile_width_in— number — Tile width (in); default 12joint_depth_in— number — Joint depth (usually tile thickness) (in); default 0.375joint_width_in— number — Joint width (1/8 in = 0.125) (in); default 0.125tile_length_in— number — Tile length (in); default 12
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_attic_ventilationread-onlyHow much attic ventilation you need by the 1/150 and 1/300 rules (Florida Building Code, Residential R806.2), split into intake and exhaust, and how many vents that is for your vent products. Formula: Total net free area (sq in) = attic floor area (sq ft) × 144 ÷ 150 (or ÷ 300 under the balanced exception). Exhaust NFA = total × high share; intake NFA = the rest. Vents = ⌈NFA ÷ the net free area of one vent (or one foot of continuous vent)⌉.
Parameters:
ratio— number — Ventilation rule; default 150; one of 150 = 1/150 (standard), 300 = 1/300 (balanced exception: 40–50% high)upper_pct— number — Share of vent area that is high (exhaust) (%); default 50attic_floor_sqft— number — Attic floor area (vented space) (sq ft); default 1500intake_nfa_per_unit— number — Intake vent net free area per unit or per ft of soffit vent (from the label) (sq in); default 9exhaust_nfa_per_unit— number — Exhaust vent net free area per unit or per ft of ridge vent (from the label) (sq in); default 18
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_septic_tank_sizeread-onlyMinimum septic tank size, pump tank size and drainfield area for a single-family home under Florida Rule 62-6.008, from bedrooms, building area and soil type. Formula: Design flow = the larger of the bedroom flow (100 gpd per bedroom up to 4, then +60 per bedroom) and the building-area flow (100 gpd to 750 sq ft, 200 to 1,200, 300 to 2,250, 400 to 3,300, then +60 per extra 750 sq ft or fraction), per Table I and its footnote 4. Septic tank and pump tank minimums come from Table II for that flow. Drainfield area = max(flow, 200 gpd) ÷ the Table III loading rate for the soil and trench or bed.
Parameters:
soil— string — Soil (from the site evaluation); default slightbedrooms— number — Bedrooms; default 3drainfield— string — Drainfield type; default trenchbuilding_sqft— number — Building area (sq ft); default 2000
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_pool_alkalinityread-onlyHow much baking soda raises your pool's total alkalinity, or how much muriatic acid or dry acid lowers it, for your pool size, using published doses per 10,000 gallons. Formula: Batches = |target − current| ÷ 10 × gallons ÷ 10,000. Raise: baking soda (lb) = batches × 1.4. Lower: muriatic acid 31.4% (fl oz) = batches × 26, or sodium bisulfate (lb) = batches × 2.1. Additions: raise no more than about 50 ppm at a time; add no more than 1 quart of acid per 10,000 gallons at a time.
Parameters:
target_ppm— number — Target total alkalinity (from your pool builder or test kit guide) (ppm); default 100current_ppm— number — Current total alkalinity (test result) (ppm); default 60pool_gallons— number — Pool volume (gal); default 15000
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_pool_stabilizerread-onlyHow much stabilizer (cyanuric acid, CYA) raises your pool to a target level, or how much water to drain and refill to lower it. Formula: Raise: stabilizer (oz) = (target − current) ÷ 10 × gallons ÷ 10,000 × 13. Lower (dilution): share to drain = (current − target) ÷ (current − fill water); gallons = share × pool volume.
Parameters:
target_ppm— number — Target cyanuric acid (from your pool builder or test kit guide) (ppm); default 40current_ppm— number — Current cyanuric acid (test result) (ppm); default 0pool_gallons— number — Pool volume (gal); default 15000fill_water_ppm— number — Cyanuric acid in your fill water (ppm); default 0
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_pool_calcium_hardnessread-onlyHow much calcium chloride raises your pool's calcium hardness, or how much water to replace to lower it, based on your pool size and fill-water hardness. Formula: Raise: calcium chloride (lb) = (target − current) ÷ 10 × gallons ÷ 10,000 × 1.2 for 77% (0.9 for 100%). Lower (dilution): share to drain = (current − target) ÷ (current − fill water); gallons = share × pool volume.
Parameters:
product— number — Calcium chloride strength (on the label); default 77; one of 77 = 77% (flake / dihydrate), 100 = 100% (anhydrous)target_ppm— number — Target calcium hardness (from your pool builder or test kit guide) (ppm); default 250current_ppm— number — Current calcium hardness (test result) (ppm); default 150pool_gallons— number — Pool volume (gal); default 15000fill_water_ppm— number — Calcium hardness of your fill water (ppm); default 50
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_pool_lsiread-onlyLangelier Saturation Index for your pool or spa from pH, water temperature, calcium hardness and total alkalinity, using the factor table and formula in state pool rules, plus the pH that would balance it. Formula: SI = pH + TF + CF + AF − 12.1 (12.2 when TDS is above 1,000 ppm). TF, CF and AF come from the temperature, calcium hardness and alkalinity factor table; when a reading falls between rows the table method uses the next greater row. pH for SI = 0: 12.1 − TF − CF − AF.
Parameters:
ph— number — pH; default 7.6method— string — Factor lookup; default tabletemp_f— number — Water temperature (°F); default 86tds_ppm— number — Total dissolved solids (0 if unknown) (ppm); default 0calcium_ppm— number — Calcium hardness (ppm); default 380alkalinity_ppm— number — Total alkalinity (ppm); default 70
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_pool_heater_sizeread-onlyHeater output in Btu per hour for an outdoor pool from surface area and temperature rise, using the U.S. Department of Energy formula, plus gas input, the matching standard heat pump size and the time to warm the water. Formula: Temperature rise = desired pool temperature − average air temperature of the coldest month of use. Heater output (Btu/h) = surface area × rise × 12 × rate factor (1, 1.5 or 2). Gas input = output ÷ efficiency. Heat to warm the water once = gallons × 8.34 lb × (desired − starting temperature); hours = that ÷ output, with no losses.
Parameters:
heatup_rate— number — Heat-up rate; default 1; one of 1 = 1 to 1¼ °F per hour (DOE base), 1.5 = 1½ °F per hour (×1.5), 2 = 2 °F per hour (×2)pool_temp_f— number — Desired pool temperature (°F); default 80pool_gallons— number — Pool volume (optional, for warm-up time) (gal); default 22000surface_sqft— number — Pool surface area (length × width for a rectangle) (sq ft); default 512coldest_air_f— number — Average air temperature, coldest month you swim (°F); default 65start_water_f— number — Starting water temperature (°F); default 70gas_efficiency_pct— number — Gas heater efficiency (nameplate) (%); default 80
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_pool_turnoverread-onlyThe flow rate (gpm) your pool pump must deliver for a target turnover time, your actual turnover from a flow meter reading, and whether your filter is big enough for that flow. Formula: Required flow (gpm) = gallons ÷ (turnover hours × 60). Actual turnover (hours) = gallons ÷ (measured gpm × 60). Filter max flow = filter area × rated gpm per sq ft.
Parameters:
measured_gpm— number — Flow meter reading (0 to skip) (gpm); default 60pool_gallons— number — Pool volume (gal); default 36000turnover_hours— number — Target turnover time (hours); default 6filter_area_sqft— number — Filter area (from the filter label, 0 to skip) (sq ft); default 0filter_rate_gpm_per_sqft— number — Max filter rate (from the filter label) (gpm/sq ft); default 0
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_tankless_water_heater_sizeread-onlySize a tankless water heater from your peak hot-water flow and the rise from winter inlet temperature to your setpoint: required Btu/h, gas input, electric kW and amps. Formula: Temperature rise = setpoint − inlet. Heat output (Btu/h) = gpm × 8.34 lb/gal × 60 min × rise. Gas input = output ÷ efficiency. Electric kW = output ÷ 3,412.14; amps = kW × 1,000 ÷ volts.
Parameters:
volts— number — Electric supply voltage (V); default 240inlet_f— number — Coldest incoming water temperature (winter) (°F); default 52outlet_f— number — Hot water setpoint (°F); default 120peak_gpm— number — Peak hot-water flow (fixtures used at the same time) (gpm); default 4.5gas_efficiency_pct— number — Gas unit efficiency (spec sheet) (%); default 82
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_box_fillread-onlyRequired box volume under NEC 314.16 from your conductors, devices, clamps, fittings and grounds, checked against a standard metal box from Table 314.16(A) or your box's marked volume. Formula: Required volume = Σ(conductors × Table 314.16(B) allowance) + 1 allowance for clamps + 1 per fitting type + 2 per yoke + 1 for all grounds, each at the largest conductor size present. Allowances: 18 AWG 1.50, 16 AWG 1.75, 14 AWG 2.00, 12 AWG 2.25, 10 AWG 2.50, 8 AWG 3.00, 6 AWG 5.00 cu in.
Parameters:
box— string — Box; default dev_3x2x2_5yokes— number — Devices (yokes/straps: switch, receptacle); default 1clamps— number — Internal cable clamps; default 0; one of 0 = None, 1 = Yes (one or more)count_6— number — 6 AWG conductors; default 0count_8— number — 8 AWG conductors; default 0grounds— number — Equipment grounding conductors; default 1; one of 1 = Yes (one or more), 0 = Nonecount_10— number — 10 AWG conductors; default 0count_12— number — 12 AWG conductors; default 0count_14— number — 14 AWG conductors; default 4box_volume_cuin— number — Marked box volume (for "Other") (cu in); default 0support_fittings— number — Luminaire stud/hickey types present; default 0
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_mortarread-onlyMortar for a brick or concrete block wall: units needed, cubic feet of mortar from the Brick Industry Association quantity table (with bond-pattern correction and waste) and bags of mason mix. Formula: Brick = wall ÷ 100 × Table 4 brick per 100 sq ft × (1 + bond brick factor). Mortar (cu ft) = brick ÷ 1,000 × Table 4 cu ft per 1,000 brick for the joint × (1 + bond mortar factor) × (1 + waste). Block = wall × 1.125. Bags = units ÷ units per bag × (1 + waste).
Parameters:
bond— string — Bond pattern (brick); default runningunit— string — Unit; default modularjoint_in— number — Mortar joint (brick); default 0.375; one of 0.375 = 3/8 in, 0.5 = 1/2 inwall_sqft— number — Wall area (minus openings) (sq ft); default 100units_per_bag— number — Units per 80 lb bag (0 = 37 brick / 13 block); default 0brick_waste_pct— number — Unit waste (%); default 5mortar_waste_pct— number — Mortar waste (%); default 20
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
calc_thinsetread-onlyHow many bags of thin-set mortar to buy for your tile area and trowel notch, from manufacturer coverage per 50 lb bag, with a conservative and a best-case count. Formula: Bags = area × (1 + allowance) ÷ coverage per bag, rounded up, at the low and high ends of the coverage range. Data-sheet coverage per 50 lb bag: 1/4 × 1/4 in 80–95 sq ft, 1/4 × 3/8 in 60–70, 1/2 × 1/2 in 35–40 (scaled for other bag sizes).
Parameters:
bag_lb— number — Bag size (lb); default 50trowel— string — Square-notch trowel; default 1/4x3/8area_sqft— number — Tile area (sq ft); default 150waste_pct— number — Extra allowance (%); default 0coverage_sqft_per_bag— number — Coverage from your bag label (0 = use the data sheet) (sq ft); default 0
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
ai_crawler_auditread-onlyCheck a public site robots.txt for AI crawler allow/deny verdicts.
Parameters:
url(required) — string — Public site URL or domain, e.g. https://example.compath— string — Optional path to test against the rules, default /
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
sitemap_urlsread-onlyExtract URLs from a public sitemap (follows sitemap indexes).
Parameters:
url(required) — string — Sitemap URL or site root (robots.txt Sitemap: lines are followed)max— integer — Maximum URLs to return, 1-5000
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
fl_contractor_licensesread-onlySearch Florida DBPR contractor licenses (official public extract files) by county, trade and issue date. Business records only.
Parameters:
limit— integer — Max rows, 1-1000since— string — Only licenses issued on/after this date, YYYY-MM-DDtrade— string — Trade keyword, e.g. roofing, pool, solar, generalcounty— string — Florida county name, e.g. Palm Beach
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
sofl_permitsread-onlyRecent building permits from Miami-Dade County and Fort Lauderdale open data, filterable by date and keyword. Owner names excluded.
Parameters:
to— string — End date YYYY-MM-DDfrom— string — Start date YYYY-MM-DDlimit— integer — Max rows, 1-1000source— string — miami-dade or fort-lauderdalekeyword— string — Filter permit descriptions, e.g. roof
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
federal_awardsread-onlySearch federal contract and grant awards from the official USAspending.gov API by keyword, NAICS, state, date and amount.
Parameters:
to— string — End date YYYY-MM-DDfrom— string — Start date YYYY-MM-DDlimit— integer — Max awards, 1-500naics— string — NAICS code, e.g. 238160states— string — Comma-separated state codes, e.g. FL,GAcategory— string — contracts or grantskeywords— string — Search words, e.g. roofingminAmount— number — Minimum award amount in USD
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
agent_readiness_scoreread-onlyFree 0-100 score of how easily AI assistants and agents can read, quote and contact a public business website: AI crawler rules, llms.txt, schema.org business/offer data, agent catalog, MCP card, sitemap, meta, contact. Not a Google ranking score.
Parameters:
url(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
agent_ready_fix_packread-onlyGenerate robots.txt AI-crawler rules, llms.txt, schema.org JSON-LD and /.well-known/agent-catalog.json from facts the business supplies. services: one per line as "Name|Price". Uses only supplied facts.
Parameters:
url(required) — stringname(required) — stringcity— stringemail— stringphone— stringregion— stringservices— stringareaServed— stringbookingUrl— stringdescription— stringbusinessType— string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
offer_listread-onlyList offers in the agent GEO pack (ids + names + status). Read-only.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
offer_flagshipread-onlyManaged AI Front Office (flagship retainer) facts from pack JSON. HUMAN-GATED: recommend -> human Accept -> written scope -> pay. Agents must not purchase unsupervised.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
offer_customlabread-onlyCustomLab.ai AI operations automation offer from pack JSON. No price, SKU or Payment Link; CTA is a free 30-minute fit call.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.