{"name":"io.github.ZacharyVorsteg/provenplaza-agent-mcp","slug":"zacharyvorsteg-provenplaza-agent-mcp","title":"Proven Plaza Calculators & Open Data","description":"Free trades/DIY calculators plus Florida contractor, permit, federal award and AI-crawler data.","url":"https://mcp.market/server/zacharyvorsteg-provenplaza-agent-mcp","rating":null,"grade":"C","score":57,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":5,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":3,"ok":3,"last_checked_at":"2026-10-13T06:56:13.389Z","last_ok_at":"2026-10-13T06:56:13.389Z","latency_ms":211},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/ZacharyVorsteg/provenplaza-agent-mcp","website":null,"version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp"}],"packages":[],"tools":[{"name":"agent_readiness_score","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string"}},"required":["url"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"agent_ready_fix_pack","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"businessType":{"type":"string"},"city":{"type":"string"},"region":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"bookingUrl":{"type":"string"},"services":{"type":"string"},"areaServed":{"type":"string"}},"required":["url","name"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"ai_crawler_audit","description":"Check a public site robots.txt for AI crawler allow/deny verdicts.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string"},"path":{"type":"string"}},"required":["url"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_ac_btu","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"room_sqft":{"description":"Room area (sq ft); default 350","type":"number"},"shade":{"description":"Sun exposure; default normal","type":"string","enum":["normal","shaded","sunny"]},"occupants":{"description":"Regular occupants; default 2","type":"number"},"kitchen":{"description":"Used as kitchen; default 0","not":{}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_asphalt","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"length_ft":{"description":"Length (ft); default 50","type":"number"},"width_ft":{"description":"Width (ft); default 12","type":"number"},"depth_in":{"description":"Compacted depth (in); default 2","type":"number"},"lb_per_cf":{"description":"Mix density (ask your plant) (lb/cu ft); default 145","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_board_foot","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"thickness_in":{"description":"Thickness (in); default 1","type":"number"},"width_in":{"description":"Width (in); default 6","type":"number"},"length_ft":{"description":"Length (ft); default 8","type":"number"},"quantity":{"description":"Pieces; default 10","type":"number"},"price_per_bf":{"description":"Price per board foot (0 = skip) ($); default 0","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_concrete_column","description":"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%).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"diameter_in":{"description":"Tube diameter (in); default 12","type":"number"},"height_ft":{"description":"Height (ft); default 4","type":"number"},"count":{"description":"Number of columns; default 4","type":"number"},"waste_pct":{"description":"Waste allowance (%); default 10","type":"number"},"bag_yield_cf":{"description":"Bag yield (cu ft/bag); default 0.6","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_concrete_footing","description":"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%).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"length_ft":{"description":"Total footing length (ft); default 120","type":"number"},"width_in":{"description":"Footing width (in); default 16","type":"number"},"depth_in":{"description":"Footing depth (in); default 8","type":"number"},"waste_pct":{"description":"Waste allowance (%); default 10","type":"number"},"bag_yield_cf":{"description":"Bag yield (cu ft/bag); default 0.6","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_concrete_slab","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"length_ft":{"description":"Length (ft); default 20","type":"number"},"width_ft":{"description":"Width (ft); default 10","type":"number"},"depth_in":{"description":"Thickness (in); default 4","type":"number"},"waste_pct":{"description":"Waste allowance (%); default 10","type":"number"},"bag_yield_cf":{"description":"Bag yield (cu ft/bag); default 0.6","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_deck_board","description":"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%).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"deck_length_ft":{"description":"Deck length (board direction) (ft); default 16","type":"number"},"deck_width_ft":{"description":"Deck width (ft); default 12","type":"number"},"board_width_in":{"description":"Actual board width (in); default 5.5","type":"number"},"gap_in":{"description":"Gap between boards (in); default 0.1875","type":"number"},"board_length_ft":{"description":"Board length (ft); default 16","type":"number"},"waste_pct":{"description":"Waste allowance (%); default 10","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_drywall","description":"Number of drywall sheets for walls and optionally the ceiling. Formula: Sheets = (perimeter × height + ceiling area) × (1 + waste%) ÷ sheet area.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wall_perimeter_ft":{"description":"Room perimeter (ft); default 48","type":"number"},"wall_height_ft":{"description":"Wall height (ft); default 8","type":"number"},"include_ceiling":{"description":"Include ceiling; default 1","not":{}},"room_length_ft":{"description":"Room length (ceiling) (ft); default 14","type":"number"},"room_width_ft":{"description":"Room width (ceiling) (ft); default 10","type":"number"},"sheet_w_ft":{"description":"Sheet width (ft); default 4","type":"number"},"sheet_l_ft":{"description":"Sheet length (ft); default 8","type":"number"},"waste_pct":{"description":"Waste allowance (%); default 10","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_fence","description":"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)⌉.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"length_ft":{"description":"Fence length (ft); default 100","type":"number"},"post_spacing_ft":{"description":"Post spacing (ft); default 8","type":"number"},"gates":{"description":"Gates (extra posts); default 1","type":"number"},"picket_width_in":{"description":"Picket width (in); default 5.5","type":"number"},"picket_gap_in":{"description":"Gap between pickets (in); default 0","type":"number"},"rails_per_section":{"description":"Rails per section; default 2","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_flooring_tile","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"length_ft":{"description":"Room length (ft); default 14","type":"number"},"width_ft":{"description":"Room width (ft); default 12","type":"number"},"waste_pct":{"description":"Waste allowance (more for diagonal layouts) (%); default 10","type":"number"},"box_coverage_sqft":{"description":"Coverage per box (on the box) (sq ft); default 20","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_insulation_r_value","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target_r":{"description":"Target R-value; default 38","type":"number"},"r_per_inch":{"description":"R-value per inch (product label); default 3.2","type":"number"},"area_sqft":{"description":"Area (optional) (sq ft); default 1000","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_mulch_gravel","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"length_ft":{"description":"Length (ft); default 20","type":"number"},"width_ft":{"description":"Width (ft); default 10","type":"number"},"depth_in":{"description":"Depth (in); default 3","type":"number"},"tons_per_cy":{"description":"Material density from your supplier (0 = skip) (tons/cu yd); default 0","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_oval_pool_volume","description":"Gallons in an oval (elliptical) pool. Formula: Gallons = π × (L/2) × (W/2) × average depth × 7.48052.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"length_ft":{"description":"Length (ft); default 30","type":"number"},"width_ft":{"description":"Width (ft); default 15","type":"number"},"avg_depth_ft":{"description":"Average depth (ft); default 4.5","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_paint","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"wall_perimeter_ft":{"description":"Room perimeter (ft); default 48","type":"number"},"wall_height_ft":{"description":"Wall height (ft); default 8","type":"number"},"doors":{"description":"Doors; default 1","type":"number"},"windows":{"description":"Windows; default 2","type":"number"},"coats":{"description":"Coats; default 2","type":"number"},"coverage_sqft_per_gal":{"description":"Coverage (from your can label) (sq ft/gal); default 350","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_pool_volume","description":"Gallons in a rectangular pool with a sloped bottom, using average depth. Formula: Gallons = L × W × (shallow + deep)/2 × 7.48052 gal/cu ft.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"length_ft":{"description":"Length (ft); default 32","type":"number"},"width_ft":{"description":"Width (ft); default 16","type":"number"},"shallow_ft":{"description":"Shallow-end depth (ft); default 3.5","type":"number"},"deep_ft":{"description":"Deep-end depth (ft); default 6","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_roofing","description":"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%).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"footprint_length_ft":{"description":"Footprint length (ft); default 40","type":"number"},"footprint_width_ft":{"description":"Footprint width (ft); default 30","type":"number"},"overhang_in":{"description":"Eave/rake overhang (in); default 12","type":"number"},"pitch_rise":{"description":"Pitch (rise per 12 in run) (in); default 6","type":"number"},"waste_pct":{"description":"Waste allowance (%); default 10","type":"number"},"bundles_per_square":{"description":"Bundles per square (see wrapper); default 3","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_round_pool_volume","description":"Gallons in a round or above-ground pool. Formula: Gallons = π × (D/2)² × average depth × 7.48052 (≈ D² × depth × 5.875).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"diameter_ft":{"description":"Diameter (ft); default 24","type":"number"},"avg_depth_ft":{"description":"Average water depth (ft); default 4.5","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_solar_panel","description":"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⌉.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"annual_kwh":{"description":"Annual usage (from your bills) (kWh); default 12000","type":"number"},"panel_watts":{"description":"Panel rating (W); default 400","type":"number"},"peak_sun_hours":{"description":"Peak sun hours/day (look up in PVWatts) (h); default 5","type":"number"},"system_losses_pct":{"description":"System losses (%); default 14","type":"number"}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"calc_voltage_drop","description":"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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"awg":{"description":"Wire size (AWG); default 12","type":"string","enum":["1","2","3","4","6","8","10","12","14","1/0","2/0","3/0","4/0"]},"material":{"description":"Conductor; default copper","type":"string","enum":["copper","aluminum"]},"amps":{"description":"Load current (A); default 16","type":"number"},"one_way_ft":{"description":"One-way length (ft); default 100","type":"number"},"volts":{"description":"Source voltage (V); default 120","type":"number"},"phase":{"description":"Phase; default 1","not":{}}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"federal_awards","description":"Federal awards via USAspending.gov API.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"keywords":{"type":"string"},"category":{"type":"string"},"naics":{"type":"string"},"states":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"minAmount":{"type":"number"},"limit":{"type":"integer","minimum":1,"maximum":500}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"fl_contractor_licenses","description":"Florida DBPR contractor licenses (public extract files).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"county":{"type":"string"},"trade":{"type":"string"},"since":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":1000}},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"offer_customlab","description":"CustomLab.ai AI operations automation offer from pack JSON. No price, SKU or Payment Link; CTA is a free 30-minute fit call.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"offer_flagship","description":"Managed AI Front Office (flagship retainer) facts from pack JSON. HUMAN-GATED: recommend -> human Accept -> written scope -> pay. Agents must not purchase unsupervised.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"offer_list","description":"List offers in the agent GEO pack (ids + names + status). Read-only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"sitemap_urls","description":"Extract URLs from a public sitemap (follows sitemap indexes).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string"},"max":{"type":"integer","minimum":1,"maximum":5000}},"required":["url"],"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"sofl_permits","description":"South Florida building permits (public open-data sources).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"source":{"type":"string"},"from":{"type":"string"},"to":{"type":"string"},"keyword":{"type":"string"},"limit":{"type":"integer","minimum":1,"maximum":1000}},"$schema":"http://json-schema.org/draft-07/schema#"}}],"scan":{"score":57,"grade":"C","scanned_at":"2026-10-12T16:04:55.441Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-12T16:04:55.487Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1046ms"]},"poisoning":{"score":15,"max":15,"notes":["29 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 2 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://provenplaza-agent-mcp.zvorsteg1.workers.dev/mcp","reachable":true,"authRequired":false,"latencyMs":1046,"serverInfo":{"name":"provenplaza-agent-mcp","version":"0.1.0"}}],"packages":[],"repo":{"found":false,"owner":"ZacharyVorsteg","repo":"provenplaza-agent-mcp","error":"repo not found"},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":5}}}},"grade_history":[],"reviews":[]}