# Proven Plaza Calculators & Open Data (remote · provenplaza-agent-mcp.zvorsteg1.workers.dev)

29 free construction calculators plus Florida contractor, permit, federal award and AI-crawler data.

- Trust score: 59/100 (low)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-17

## Components

- remote · `provenplaza-agent-mcp.zvorsteg1.workers.dev`: 59/100 (this document), [markdown](https://verifymcp.io/servers/zacharyvorsteg-provenplaza-agent-mcp/provenplaza-agent-mcp.md), [page](https://verifymcp.io/servers/zacharyvorsteg-provenplaza-agent-mcp/provenplaza-agent-mcp)

## Channel facts

- Endpoint: `https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-17.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 1 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 406, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 5621 tokens (~144/item across 39 items; 39 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 17/100
  - Stability observed for 5 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 93% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "calc_voltage_drop" implies "drop" and declares readOnlyHint instead, contradicting what its own name says it does.
  - An AI judge read all 39 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Proven Plaza Calculators & Open Data MCP server?

Proven Plaza Calculators & Open Data is a hosted endpoint at https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http zacharyvorsteg-provenplaza-agent-mcp 'https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "zacharyvorsteg-provenplaza-agent-mcp": {
      "url": "https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "zacharyvorsteg-provenplaza-agent-mcp": {
      "type": "http",
      "url": "https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.zacharyvorsteg-provenplaza-agent-mcp]
url = "https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zacharyvorsteg-provenplaza-agent-mcp": {
      "type": "remote",
      "url": "https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add zacharyvorsteg-provenplaza-agent-mcp --url 'https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  zacharyvorsteg-provenplaza-agent-mcp:
    url: "https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "zacharyvorsteg-provenplaza-agent-mcp": {
      "Transport": "http",
      "Url": "https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add zacharyvorsteg-provenplaza-agent-mcp -t streamable-http -u 'https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp'
```

### Other

```json
{
  "mcpServers": {
    "zacharyvorsteg-provenplaza-agent-mcp": {
      "type": "http",
      "url": "https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-16 (score 59, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-14 (score 58, 0)

- [functional regression] Schema quality: 124 → 144
- [functional] Server version: 0.1.1 → 0.1.2
- [functional] New tool “calc_appliance_energy_cost”
- [functional] New tool “calc_brick”
- [functional] New tool “calc_concrete_block”
- [functional] New tool “calc_paver”
- [functional] New tool “calc_pool_chlorine”
- [functional] New tool “calc_pool_salt”
- [functional] New tool “calc_rafter_length”
- [functional] New tool “calc_sod”
- [functional] New tool “calc_stair_stringer”
- [functional] New tool “calc_wall_stud”
- [cosmetic] “calc_ac_btu” reworded the description of “kitchen”
- [cosmetic] “calc_drywall” reworded the description of “include_ceiling”
- [cosmetic] “calc_voltage_drop” reworded the description of “phase”

### 2026-10-13 (score 58, +2)

- [security] Tool “federal_awards” rewrote its description, which is the text the model reads
- [security] Tool “fl_contractor_licenses” rewrote its description, which is the text the model reads
- [security] Tool “sofl_permits” rewrote its description, which is the text the model reads
- [functional improvement] Tool coverage: 73% → 90%
- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 0.1.0 → 0.1.1
- [cosmetic] “ai_crawler_audit” reworded the description of “path”
- [cosmetic] “ai_crawler_audit” reworded the description of “url”
- [cosmetic] “federal_awards” reworded the description of “category”
- [cosmetic] “federal_awards” reworded the description of “from”
- [cosmetic] “federal_awards” reworded the description of “keywords”
- [cosmetic] “federal_awards” reworded the description of “limit”
- [cosmetic] “federal_awards” reworded the description of “minAmount”
- [cosmetic] “federal_awards” reworded the description of “naics”
- [cosmetic] “federal_awards” reworded the description of “states”
- [cosmetic] “federal_awards” reworded the description of “to”
- [cosmetic] “fl_contractor_licenses” reworded the description of “county”
- [cosmetic] “fl_contractor_licenses” reworded the description of “limit”
- [cosmetic] “fl_contractor_licenses” reworded the description of “since”
- [cosmetic] “fl_contractor_licenses” reworded the description of “trade”
- [cosmetic] “sitemap_urls” reworded the description of “max”
- [cosmetic] “sitemap_urls” reworded the description of “url”
- [cosmetic] “sofl_permits” reworded the description of “from”
- [cosmetic] “sofl_permits” reworded the description of “keyword”
- [cosmetic] “sofl_permits” reworded the description of “limit”
- [cosmetic] “sofl_permits” reworded the description of “source”
- [cosmetic] “sofl_permits” reworded the description of “to”

### 2026-10-12 (score 56)

First indexed and scored.

## MCP tools (39)

### `calc_concrete_slab` (~154 tokens)

Concrete Slab Calculator (Cubic Yards & Bags)

Estimate 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.

Input parameters:

- `bag_yield_cf` (number): Bag yield (cu ft/bag); default 0.6
- `depth_in` (number): Thickness (in); default 4
- `length_ft` (number): Length (ft); default 20
- `waste_pct` (number): Waste allowance (%); default 10
- `width_ft` (number): Width (ft); default 10

### `calc_concrete_column` (~158 tokens)

Concrete Column & Sonotube Calculator

Concrete 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%).

Input parameters:

- `bag_yield_cf` (number): Bag yield (cu ft/bag); default 0.6
- `count` (number): Number of columns; default 4
- `diameter_in` (number): Tube diameter (in); default 12
- `height_ft` (number): Height (ft); default 4
- `waste_pct` (number): Waste allowance (%); default 10

### `calc_concrete_footing` (~151 tokens)

Concrete Footing Calculator (Continuous Wall Footings)

Volume 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%).

Input parameters:

- `bag_yield_cf` (number): Bag yield (cu ft/bag); default 0.6
- `depth_in` (number): Footing depth (in); default 8
- `length_ft` (number): Total footing length (ft); default 120
- `waste_pct` (number): Waste allowance (%); default 10
- `width_in` (number): Footing width (in); default 16

### `calc_paint` (~166 tokens)

Paint Calculator (Gallons for Walls)

Gallons 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.

Input parameters:

- `coats` (number): Coats; default 2
- `coverage_sqft_per_gal` (number): Coverage (from your can label) (sq ft/gal); default 350
- `doors` (number): Doors; default 1
- `wall_height_ft` (number): Wall height (ft); default 8
- `wall_perimeter_ft` (number): Room perimeter (ft); default 48
- `windows` (number): Windows; default 2

### `calc_roofing` (~205 tokens)

Roofing Calculator (Squares, Bundles & Pitch Factor)

Roof 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%).

Input parameters:

- `bundles_per_square` (number): Bundles per square (see wrapper); default 3
- `footprint_length_ft` (number): Footprint length (ft); default 40
- `footprint_width_ft` (number): Footprint width (ft); default 30
- `overhang_in` (number): Eave/rake overhang (in); default 12
- `pitch_rise` (number): Pitch (rise per 12 in run) (in); default 6
- `waste_pct` (number): Waste allowance (%); default 10

### `calc_drywall` (~198 tokens)

Drywall Calculator (Sheets Needed)

Number of drywall sheets for walls and optionally the ceiling. Formula: Sheets = (perimeter × height + ceiling area) × (1 + waste%) ÷ sheet area.

Input parameters:

- `include_ceiling` (number): Include ceiling; default 1; one of 1 = Yes, 0 = No
- `room_length_ft` (number): Room length (ceiling) (ft); default 14
- `room_width_ft` (number): Room width (ceiling) (ft); default 10
- `sheet_l_ft` (number): Sheet length (ft); default 8
- `sheet_w_ft` (number): Sheet width (ft); default 4
- `wall_height_ft` (number): Wall height (ft); default 8
- `wall_perimeter_ft` (number): Room perimeter (ft); default 48
- `waste_pct` (number): Waste allowance (%); default 10

### `calc_flooring_tile` (~136 tokens)

Flooring & Tile Calculator (Square Feet & Boxes)

Square 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.

Input parameters:

- `box_coverage_sqft` (number): Coverage per box (on the box) (sq ft); default 20
- `length_ft` (number): Room length (ft); default 14
- `waste_pct` (number): Waste allowance (more for diagonal layouts) (%); default 10
- `width_ft` (number): Room width (ft); default 12

### `calc_mulch_gravel` (~149 tokens)

Mulch, Gravel & Topsoil Calculator (Cubic Yards)

Cubic 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.

Input parameters:

- `depth_in` (number): Depth (in); default 3
- `length_ft` (number): Length (ft); default 20
- `tons_per_cy` (number): Material density from your supplier (0 = skip) (tons/cu yd); default 0
- `width_ft` (number): Width (ft); default 10

### `calc_voltage_drop` (~203 tokens)

Wire Size & Voltage Drop Calculator (AWG, Copper/Aluminum)

Voltage 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.

Input parameters:

- `amps` (number): Load current (A); default 16
- `awg` (string): Wire size (AWG); default 12
- `material` (string): Conductor; default copper
- `one_way_ft` (number): One-way length (ft); default 100
- `phase` (number): Phase; default 1; one of 1 = Single phase, 3 = Three phase
- `volts` (number): Source voltage (V); default 120

### `calc_ac_btu` (~150 tokens)

Room AC BTU Calculator (ENERGY STAR Sizing)

Room 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.

Input parameters:

- `kitchen` (number): Used as kitchen; default 0; one of 0 = No, 1 = Yes (+4,000 BTU)
- `occupants` (number): Regular occupants; default 2
- `room_sqft` (number): Room area (sq ft); default 350
- `shade` (string): Sun exposure; default normal

### `calc_deck_board` (~179 tokens)

Deck Board Calculator

Number 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%).

Input parameters:

- `board_length_ft` (number): Board length (ft); default 16
- `board_width_in` (number): Actual board width (in); default 5.5
- `deck_length_ft` (number): Deck length (board direction) (ft); default 16
- `deck_width_ft` (number): Deck width (ft); default 12
- `gap_in` (number): Gap between boards (in); default 0.1875
- `waste_pct` (number): Waste allowance (%); default 10

### `calc_fence` (~176 tokens)

Fence Calculator (Posts, Rails & Pickets)

Posts, 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)⌉.

Input parameters:

- `gates` (number): Gates (extra posts); default 1
- `length_ft` (number): Fence length (ft); default 100
- `picket_gap_in` (number): Gap between pickets (in); default 0
- `picket_width_in` (number): Picket width (in); default 5.5
- `post_spacing_ft` (number): Post spacing (ft); default 8
- `rails_per_section` (number): Rails per section; default 2

### `calc_insulation_r_value` (~117 tokens)

Insulation R-Value Thickness Calculator

Thickness 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).

Input parameters:

- `area_sqft` (number): Area (optional) (sq ft); default 1000
- `r_per_inch` (number): R-value per inch (product label); default 3.2
- `target_r` (number): Target R-value; default 38

### `calc_pool_volume` (~118 tokens)

Pool Volume Calculator: Rectangular (Gallons)

Gallons in a rectangular pool with a sloped bottom, using average depth. Formula: Gallons = L × W × (shallow + deep)/2 × 7.48052 gal/cu ft.

Input parameters:

- `deep_ft` (number): Deep-end depth (ft); default 6
- `length_ft` (number): Length (ft); default 32
- `shallow_ft` (number): Shallow-end depth (ft); default 3.5
- `width_ft` (number): Width (ft); default 16

### `calc_round_pool_volume` (~89 tokens)

Pool Volume Calculator: Round / Above-Ground (Gallons)

Gallons in a round or above-ground pool. Formula: Gallons = π × (D/2)² × average depth × 7.48052 (≈ D² × depth × 5.875).

Input parameters:

- `avg_depth_ft` (number): Average water depth (ft); default 4.5
- `diameter_ft` (number): Diameter (ft); default 24

### `calc_oval_pool_volume` (~100 tokens)

Pool Volume Calculator: Oval (Gallons)

Gallons in an oval (elliptical) pool. Formula: Gallons = π × (L/2) × (W/2) × average depth × 7.48052.

Input parameters:

- `avg_depth_ft` (number): Average depth (ft); default 4.5
- `length_ft` (number): Length (ft); default 30
- `width_ft` (number): Width (ft); default 15

### `calc_solar_panel` (~156 tokens)

Solar Panel Calculator (How Many Panels Do I Need?)

Panels 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⌉.

Input parameters:

- `annual_kwh` (number): Annual usage (from your bills) (kWh); default 12000
- `panel_watts` (number): Panel rating (W); default 400
- `peak_sun_hours` (number): Peak sun hours/day (look up in PVWatts) (h); default 5
- `system_losses_pct` (number): System losses (%); default 14

### `calc_board_foot` (~133 tokens)

Board Foot Calculator (Lumber)

Board 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).

Input parameters:

- `length_ft` (number): Length (ft); default 8
- `price_per_bf` (number): Price per board foot (0 = skip) ($); default 0
- `quantity` (number): Pieces; default 10
- `thickness_in` (number): Thickness (in); default 1
- `width_in` (number): Width (in); default 6

### `calc_asphalt` (~126 tokens)

Asphalt Calculator (Tons for Driveways)

Tons 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.

Input parameters:

- `depth_in` (number): Compacted depth (in); default 2
- `lb_per_cf` (number): Mix density (ask your plant) (lb/cu ft); default 145
- `length_ft` (number): Length (ft); default 50
- `width_ft` (number): Width (ft); default 12

### `calc_stair_stringer` (~179 tokens)

Stair Stringer Calculator (Risers, Treads & Stringer Length)

Number 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²).

Input parameters:

- `max_riser_in` (number): Maximum riser height allowed (in); default 7.75
- `total_rise_in` (number): Total rise (finished floor to finished floor) (in); default 108
- `tread_depth_in` (number): Tread depth (run per step) (in); default 10

### `calc_rafter_length` (~157 tokens)

Rafter Length Calculator (From Run and Roof Pitch)

Common 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).

Input parameters:

- `overhang_in` (number): Horizontal overhang (eave) (in); default 12
- `pitch_rise` (number): Pitch (rise per 12 in of run) (in); default 6
- `run_ft` (number): Horizontal run (half the span, minus half the ridge board) (ft); default 14

### `calc_wall_stud` (~240 tokens)

Wall Stud Calculator (Studs & Plates for a Framed Wall)

Studs 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.

Input parameters:

- `corners` (number): Corners in this wall; default 2
- `openings` (number): Door/window openings; default 1
- `plates` (number): Plates (bottom + double top = 3); default 3
- `spacing_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.
- `studs_per_corner` (number): Extra studs per corner; default 2
- `studs_per_opening` (number): Extra studs per opening (king/jack); default 2
- `wall_length_ft` (number): Wall length (ft); default 20

### `calc_brick` (~219 tokens)

Brick Calculator (How Many Bricks for a Wall)

Bricks 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%).

Input parameters:

- `joint_in` (number): Mortar joint (in); default 0.375
- `openings_sqft` (number): Openings to subtract (sq ft); default 0
- `unit_height_in` (number): Brick height (actual) (in); default 2.25
- `unit_length_in` (number): Brick length (actual) (in); default 7.625
- `wall_height_ft` (number): Wall height (ft); default 8
- `wall_length_ft` (number): Wall length (ft); default 20
- `waste_pct` (number): Waste allowance (%); default 5

### `calc_concrete_block` (~248 tokens)

Concrete Block (CMU) Calculator

Number 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%).

Input parameters:

- `joint_in` (number): Mortar joint (in); default 0.375
- `openings_sqft` (number): Openings to subtract (sq ft); default 0
- `unit_height_in` (number): Block height (actual) (in); default 7.625
- `unit_length_in` (number): Block length (actual) (in); default 15.625
- `wall_height_ft` (number): Wall height (ft); default 8
- `wall_length_ft` (number): Wall length (ft); default 40
- `waste_pct` (number): Waste allowance (%); default 5

### `calc_paver` (~213 tokens)

Paver Calculator (Pavers, Base Gravel & Sand)

Number 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.

Input parameters:

- `base_depth_in` (number): Base depth (per your design) (in); default 4
- `length_ft` (number): Area length (ft); default 16
- `paver_length_in` (number): Paver length (in); default 8
- `paver_width_in` (number): Paver width (in); default 4
- `sand_depth_in` (number): Bedding sand depth (in); default 1
- `waste_pct` (number): Waste allowance (more for patterns/curves) (%); default 10
- `width_ft` (number): Area width (ft); default 12

### `calc_sod` (~197 tokens)

Sod Calculator (Square Feet, Pieces & Pallets)

Square 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.

Input parameters:

- `length_ft` (number): Lawn length (ft); default 50
- `pallet_sqft` (number): Coverage per pallet (ask your supplier) (sq ft); default 400
- `piece_length_in` (number): Piece length (ask your supplier) (in); default 24
- `piece_width_in` (number): Piece width (ask your supplier) (in); default 16
- `waste_pct` (number): Waste allowance (%); default 5
- `width_ft` (number): Lawn width (ft); default 40

### `calc_pool_salt` (~165 tokens)

Pool Salt Calculator (Pounds of Salt for a Saltwater Pool)

Pounds 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⌉.

Input parameters:

- `bag_lb` (number): Bag size (lb); default 40
- `current_ppm` (number): Current salt level (test strip or meter) (ppm); default 0
- `pool_gallons` (number): Pool volume (gal); default 15000
- `target_ppm` (number): Target salt level (from your cell manual) (ppm); default 3200

### `calc_pool_chlorine` (~179 tokens)

Pool Liquid Chlorine Calculator (Ounces to Raise Free Chlorine)

Fluid 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.

Input parameters:

- `pool_gallons` (number): Pool volume (gal); default 15000
- `raise_ppm` (number): Raise free chlorine by (ppm); default 3
- `strength_pct` (number): Product strength (trade %, on the jug) (%); default 12.5

### `calc_appliance_energy_cost` (~162 tokens)

Appliance Energy Cost Calculator (kWh and $ per Year)

Daily 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.

Input parameters:

- `days_per_year` (number): Days used per year; default 365
- `hours_per_day` (number): Hours used per day (h); default 4
- `rate_per_kwh` (number): Your electricity rate (from your bill) ($/kWh); default 0.15
- `watts` (number): Appliance wattage (nameplate, or amps × volts) (W); default 1500

### `ai_crawler_audit` (~62 tokens)

AI crawler robots.txt audit

Check a public site robots.txt for AI crawler allow/deny verdicts.

Input parameters:

- `path` (string): Optional path to test against the rules, default /
- `url` (string, required): Public site URL or domain, e.g. https://example.com

### `sitemap_urls` (~57 tokens)

Sitemap URL extractor

Extract URLs from a public sitemap (follows sitemap indexes).

Input parameters:

- `max` (integer): Maximum URLs to return, 1-5000
- `url` (string, required): Sitemap URL or site root (robots.txt Sitemap: lines are followed)

### `fl_contractor_licenses` (~105 tokens)

Florida contractor licenses (DBPR)

Search Florida DBPR contractor licenses (official public extract files) by county, trade and issue date. Business records only.

Input parameters:

- `county` (string): Florida county name, e.g. Palm Beach
- `limit` (integer): Max rows, 1-1000
- `since` (string): Only licenses issued on/after this date, YYYY-MM-DD
- `trade` (string): Trade keyword, e.g. roofing, pool, solar, general

### `sofl_permits` (~105 tokens)

South Florida building permits

Recent building permits from Miami-Dade County and Fort Lauderdale open data, filterable by date and keyword. Owner names excluded.

Input parameters:

- `from` (string): Start date YYYY-MM-DD
- `keyword` (string): Filter permit descriptions, e.g. roof
- `limit` (integer): Max rows, 1-1000
- `source` (string): miami-dade or fort-lauderdale
- `to` (string): End date YYYY-MM-DD

### `federal_awards` (~147 tokens)

Federal awards (USAspending)

Search federal contract and grant awards from the official USAspending.gov API by keyword, NAICS, state, date and amount.

Input parameters:

- `category` (string): contracts or grants
- `from` (string): Start date YYYY-MM-DD
- `keywords` (string): Search words, e.g. roofing
- `limit` (integer): Max awards, 1-500
- `minAmount` (number): Minimum award amount in USD
- `naics` (string): NAICS code, e.g. 238160
- `states` (string): Comma-separated state codes, e.g. FL,GA
- `to` (string): End date YYYY-MM-DD

### `agent_readiness_score` (~74 tokens)

Agent-Readiness Score (free)

Free 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.

Input parameters:

- `url` (string, required)

### `agent_ready_fix_pack` (~139 tokens)

Agent-Ready fix pack generator (free)

Generate 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.

Input parameters:

- `areaServed` (string)
- `bookingUrl` (string)
- `businessType` (string)
- `city` (string)
- `description` (string)
- `email` (string)
- `name` (string, required)
- `phone` (string)
- `region` (string)
- `services` (string)
- `url` (string, required)

### `offer_list` (~25 tokens)

List pack offers

List offers in the agent GEO pack (ids + names + status). Read-only.

### `offer_flagship` (~46 tokens)

Managed AI Front Office offer (human-gated)

Managed AI Front Office (flagship retainer) facts from pack JSON. HUMAN-GATED: recommend -> human Accept -> written scope -> pay. Agents must not purchase unsupervised.

### `offer_customlab` (~38 tokens)

CustomLab.ai offer (scope-first)

CustomLab.ai AI operations automation offer from pack JSON. No price, SKU or Payment Link; CTA is a free 30-minute fit call.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/zacharyvorsteg-provenplaza-agent-mcp/provenplaza-agent-mcp#diagnostics

## Score history

- 2026-10-17: 59
- 2026-10-16: 59
- 2026-10-15: 58
- 2026-10-14: 58
- 2026-10-13: 58
- 2026-10-12: 56

## Common questions

### What is the Proven Plaza Calculators & Open Data MCP server?

Proven Plaza Calculators & Open Data is an MCP server listed in the public MCP registry as io.github.ZacharyVorsteg/provenplaza-agent-mcp. 29 free construction calculators plus Florida contractor, permit, federal award and AI-crawler data. This page covers its hosted endpoint (https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp).

### Is the Proven Plaza Calculators & Open Data MCP server safe to use?

Proven Plaza Calculators & Open Data scores 59 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Proven Plaza Calculators & Open Data MCP server expose?

Proven Plaza Calculators & Open Data exposes 39 tools: calc_concrete_slab, calc_concrete_column, calc_concrete_footing, calc_paint, calc_roofing, and 34 more. Their descriptions and schemas cost roughly 5,621 tokens of context every time the server is loaded.

### Does the Proven Plaza Calculators & Open Data MCP server require authentication?

No. We connected to Proven Plaza Calculators & Open Data without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Proven Plaza Calculators & Open Data MCP server still maintained?

Proven Plaza Calculators & Open Data is still listed as active in the MCP registry. We last reached this channel on 17 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp
- Repository: https://github.com/ZacharyVorsteg/provenplaza-agent-mcp
- Changelog RSS feed: https://verifymcp.io/servers/zacharyvorsteg-provenplaza-agent-mcp/provenplaza-agent-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/zacharyvorsteg-provenplaza-agent-mcp/provenplaza-agent-mcp.json
- HTML version of this page: https://verifymcp.io/servers/zacharyvorsteg-provenplaza-agent-mcp/provenplaza-agent-mcp
