Deterministic cost calculators for HVAC, roofing, plumbing, electrical, solar, water heater.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use when a user asks what electrical work will cost — panel upgrade, wiring, outlet installation, or any electrical project. Returns cost range with permit guidance.
Type of electrical work
Whether permits are likely required
Number of stories in the home
Use when a user asks what electrical work will cost — panel upgrade, wiring, outlet installation, or any electrical project. Returns cost range with permit guidance.
| Argument | Type | Description |
|---|---|---|
| job* | string | Type of electrical work |
| permits | string | Whether permits are likely required |
| stories | number | Number of stories in the home |
{
"type": "object",
"required": [
"job"
],
"properties": {
"job": {
"enum": [
"Panel upgrade",
"Outlet/switch",
"Wiring replacement",
"EV charger",
"Generator",
"Ceiling fan",
"Smoke detectors"
],
"type": "string",
"description": "Type of electrical work"
},
"permits": {
"enum": [
"Yes",
"No",
"Unknown"
],
"type": "string",
"description": "Whether permits are likely required"
},
"stories": {
"type": "number",
"maximum": 4,
"minimum": 1,
"description": "Number of stories in the home"
}
},
"additionalProperties": false
}Use when a user asks what HVAC replacement, installation, or repair will cost. Given home size, system type, and efficiency tier, returns low/high cost range, regional context, and contractor comparison guidance.
| Argument | Type | Description |
|---|---|---|
| sqft* | number | Home size in square feet |
| system | string | HVAC system type |
| work_type | string | Type of work needed |
| efficiency | string | Efficiency tier (affects cost) |
{
"type": "object",
"required": [
"sqft"
],
"properties": {
"sqft": {
"type": "number",
"maximum": 8000,
"minimum": 300,
"description": "Home size in square feet"
},
"system": {
"enum": [
"Heat Pump",
"Central AC",
"Furnace + AC",
"Furnace only"
],
"type": "string",
"description": "HVAC system type"
},
"work_type": {
"enum": [
"Replace",
"Repair",
"New install"
],
"type": "string",
"description": "Type of work needed"
},
"efficiency": {
"enum": [
"Basic",
"Mid",
"High"
],
"type": "string",
"description": "Efficiency tier (affects cost)"
}
},
"additionalProperties": false
}Use when a user asks what plumbing repair, pipe replacement, or emergency plumbing will cost. Returns cost range and contractor guidance.
| Argument | Type | Description |
|---|---|---|
| job* | string | Type of plumbing work |
| access | string | Access difficulty |
| urgency | string | Scheduling urgency |
{
"type": "object",
"required": [
"job"
],
"properties": {
"job": {
"enum": [
"Leak repair",
"Pipe replacement",
"Drain cleaning",
"Water heater",
"Fixture install",
"Emergency"
],
"type": "string",
"description": "Type of plumbing work"
},
"access": {
"enum": [
"Normal",
"Difficult (wall/floor access)"
],
"type": "string",
"description": "Access difficulty"
},
"urgency": {
"enum": [
"Standard",
"Urgent (same day)",
"Emergency (after hours)"
],
"type": "string",
"description": "Scheduling urgency"
}
},
"additionalProperties": false
}Use when a user asks what a new roof, roof replacement, or roof repair will cost. Given roof area, pitch, and material, returns cost range and contractor guidance.
| Argument | Type | Description |
|---|---|---|
| area* | number | Roof area in square feet |
| pitch | string | Roof pitch/steepness |
| tearoff | string | Whether old roof needs removing |
| material | string | Roofing material |
{
"type": "object",
"required": [
"area"
],
"properties": {
"area": {
"type": "number",
"maximum": 8000,
"minimum": 500,
"description": "Roof area in square feet"
},
"pitch": {
"enum": [
"Low",
"Moderate",
"Steep"
],
"type": "string",
"description": "Roof pitch/steepness"
},
"tearoff": {
"enum": [
"Yes",
"No"
],
"type": "string",
"description": "Whether old roof needs removing"
},
"material": {
"enum": [
"Asphalt",
"Metal",
"Tile",
"Slate"
],
"type": "string",
"description": "Roofing material"
}
},
"additionalProperties": false
}Use when a user asks what solar panels cost, solar installation cost, or solar payback period. Returns system cost, payback timeline, and incentive guidance.
| Argument | Type | Description |
|---|---|---|
| battery | string | Whether battery backup is wanted |
| shading | string | Amount of roof shading |
| roof_type | string | Roof type |
| monthly_bill* | number | Current monthly electric bill in USD |
{
"type": "object",
"required": [
"monthly_bill"
],
"properties": {
"battery": {
"enum": [
"Yes",
"No",
"Maybe"
],
"type": "string",
"description": "Whether battery backup is wanted"
},
"shading": {
"enum": [
"Low",
"Moderate",
"High"
],
"type": "string",
"description": "Amount of roof shading"
},
"roof_type": {
"enum": [
"Asphalt shingle",
"Metal",
"Tile",
"Flat"
],
"type": "string",
"description": "Roof type"
},
"monthly_bill": {
"type": "number",
"maximum": 1000,
"minimum": 30,
"description": "Current monthly electric bill in USD"
}
},
"additionalProperties": false
}Use when a user asks what a water heater replacement or installation costs. Returns cost range by type (tank/tankless), fuel, and size. Note: heat-pump water heaters have a distinct installed cost profile and are not modeled here.
| Argument | Type | Description |
|---|---|---|
| fuel | string | Fuel source |
| size | string | Tank size (for tank heaters) |
| type* | string | Water heater type (heat-pump water heaters not modeled — see decision-layer copy) |
{
"type": "object",
"required": [
"type"
],
"properties": {
"fuel": {
"enum": [
"Gas",
"Electric",
"Propane"
],
"type": "string",
"description": "Fuel source"
},
"size": {
"enum": [
"Small (30–40 gal)",
"Medium (50 gal)",
"Large (75–80 gal)"
],
"type": "string",
"description": "Tank size (for tank heaters)"
},
"type": {
"enum": [
"Tank",
"Tankless"
],
"type": "string",
"description": "Water heater type (heat-pump water heaters not modeled — see decision-layer copy)"
}
},
"additionalProperties": false
}