Home Repairs Estimator — Cost Calculators
Server Details
Deterministic cost calculators for HVAC, roofing, plumbing, electrical, solar, water heater.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 6 tools
Each tool maps to a distinct home system (electrical, HVAC, plumbing, roofing, solar, water heater) with no real overlap in purpose. The only potential adjacency, plumbing vs. water-heater, is explicitly disambiguated by the water heater description's note about heat-pump cost profiles.
All six tools follow an identical <system>-cost-calculator pattern, making the set perfectly predictable. An agent can infer the naming convention for any new system.
Six tools is well-scoped for a cost-calculator server, and each one covers a distinct high-value home system. No redundancy or filler.
The set covers the major trade systems but omits common cost areas like windows, flooring, painting, foundation, insulation, and remodel projects. It is also purely estimation-focused, with no supporting lookup (materials, contractors, financing), leaving notable gaps an agent cannot work around.
Available Tools
6 toolselectrical-cost-calculatorElectrical Work Cost CalculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| job | Yes | Type of electrical work | |
| permits | No | Whether permits are likely required | |
| stories | No | Number of stories in the home |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the bar is lower. The description adds genuinely new behavioral context: it returns a cost range plus permit guidance, which matters since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short clauses, trigger-first ("Use when..."), then the return behavior. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, closed-world, 3-parameter estimator with no output schema, the description covers both invocation trigger and return shape adequately. Only minor gaps remain (estimation assumptions, regional variance), which are acceptable for this tool class.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both enums (job, permits) are fully documented in the schema. The description's mention of project types and permit guidance loosely maps to those parameters but adds no syntax or value semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (cost/calculate) and resource (electrical work) and enumerates scope examples (panel upgrade, wiring, outlet installation). The electrical domain inherently separates it from the hvac/plumbing/roofing/solar/water-heater siblings, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when a user asks what electrical work will cost" is an explicit, actionable trigger. It gives clear context but no exclusions or direct pointer to the sibling calculators, so routing is inferred from the domain rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hvac-cost-calculatorHVAC Cost CalculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sqft | Yes | Home size in square feet | |
| system | No | HVAC system type | |
| work_type | No | Type of work needed | |
| efficiency | No | Efficiency tier (affects cost) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, destructiveHint=false, so safety behavior is covered. The description adds return-shape context the annotations do not: a low/high cost range, regional context, and contractor comparison guidance. It stops short of noting the estimates are non-binding or currency assumptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler, and the usage trigger is front-loaded ahead of the return-value summary. Nothing repeats the title or name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calculator with no output schema, the description does the necessary work by telling the agent what comes back (low/high range, regional context, contractor guidance). It omits caveats an agent might need to relay, such as estimate approximation or currency, so it is strong but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and three of four parameters are enums with documented values, so the schema carries the parameter burden. The description restates the inputs at a high level (home size, system type, efficiency tier) but adds no format, unit, or default guidance beyond the schema, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it computes HVAC replacement/installation/repair cost. The domain term 'HVAC' cleanly separates it from its siblings (electrical, plumbing, roofing, solar, water-heater calculators) without the agent needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening clause gives an explicit trigger condition: 'Use when a user asks what HVAC replacement, installation, or repair will cost.' That is clear routing guidance, but it names no exclusions and no alternative tool (e.g. what to use for a repair-only quote vs a full install), so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plumbing-cost-calculatorPlumbing Cost CalculatorARead-onlyIdempotentInspect
Use when a user asks what plumbing repair, pipe replacement, or emergency plumbing will cost. Returns cost range and contractor guidance.
| Name | Required | Description | Default |
|---|---|---|---|
| job | Yes | Type of plumbing work | |
| access | No | Access difficulty | |
| urgency | No | Scheduling urgency |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, read-only, idempotent, non-destructive operation, so the safety profile is covered. The description adds useful substance beyond that by stating it returns a cost range plus contractor guidance, which tells the agent what the call yields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, with the usage trigger front-loaded and the return content following. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A read-only calculator with fully documented enum params and no output schema; the description covers the trigger and the return shape, which is what an agent needs. Minor unaddressed gaps are cost assumptions (currency, region), but nothing blocks correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three params are enums with documented meanings (job, access, urgency), so the schema carries the parameter burden. The description adds no extra semantics such as currency, region, or how access/urgency shift the result, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: computing plumbing repair/replacement/emergency costs. The domain bound is clear enough to separate it from the electrical/hvac/roofing/solar siblings without opening a schema, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('Use when a user asks what plumbing ... will cost'), which is the right routing condition. No when-not guidance or named alternative is given, but the domain separation is self-evident in a cost-calculator family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
roofing-cost-calculatorRoofing Cost CalculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| area | Yes | Roof area in square feet | |
| pitch | No | Roof pitch/steepness | |
| tearoff | No | Whether old roof needs removing | |
| material | No | Roofing material |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety is covered. The description adds behavioral value by stating the return content (cost range and contractor guidance), which matters since there is no output schema. It does not, however, disclose precision, assumptions, or input constraints such as the 500-8000 sq ft bounds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the usage trigger is front-loaded before the input/output summary. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only estimator with no output schema, the description tells the agent what inputs are expected and what comes back. Annotations cover the safety profile. Only minor gaps remain, such as how cost ranges are derived or output precision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters including enum values and the area range. The description restates area, pitch, and material (omitting tearoff) without adding format or semantic detail. Baseline 3 is appropriate when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (cost estimation) and resource (new roof, roof replacement, roof repair) with concrete trigger language. The roofing domain clearly separates it from the electrical/hvac/plumbing/solar/water-heater siblings, though it never explicitly acknowledges the sibling set. Clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when a user asks what a new roof, roof replacement, or roof repair will cost" gives a precise trigger condition. It does not name alternatives or exclusions, but the domain-specific framing makes routing against the other cost-calculator siblings obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
solar-cost-calculatorSolar Installation Cost CalculatorARead-onlyIdempotentInspect
Use when a user asks what solar panels cost, solar installation cost, or solar payback period. Returns system cost, payback timeline, and incentive guidance.
| Name | Required | Description | Default |
|---|---|---|---|
| battery | No | Whether battery backup is wanted | |
| shading | No | Amount of roof shading | |
| roof_type | No | Roof type | |
| monthly_bill | Yes | Current monthly electric bill in USD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is carried by structured data. The description adds value by disclosing the return contents (cost, payback timeline, incentives), which is meaningful since no output schema exists; it does not, however, mention that results are estimates or what assumptions underlie them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the usage trigger front-loaded and the return values immediately after. No filler or redundant restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calculator with full schema coverage and annotations, the description supplies both the trigger and a preview of outputs. The only material omission is any caveat about estimate assumptions or regional incentive applicability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear enums for battery, shading, and roof_type, and a bounded numeric monthly_bill, so the schema does the heavy lifting. The description adds no extra parameter meaning (e.g., how shading or battery choices affect the estimate), which is the expected baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('solar installation cost' calculation) and its output scope (system cost, payback timeline, incentive guidance). An agent can distinguish it from the roofing/hvac/electrical cost calculators because the resource domain is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear trigger condition: use when the user asks about solar panel cost, installation cost, or payback period. However, it offers no exclusions or routing guidance relative to its siblings (e.g., when solar vs. electrical cost estimation is appropriate), leaving a small gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
water-heater-cost-calculatorWater Heater Cost CalculatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fuel | No | Fuel source | |
| size | No | Tank size (for tank heaters) | |
| type | Yes | Water heater type (heat-pump water heaters not modeled — see decision-layer copy) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds genuinely new behavior: it discloses that the tool returns a cost range rather than a point estimate, and that heat-pump units fall outside the model — a real limitation an agent must know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: trigger condition first, return shape second, scope caveat last. Every sentence earns its place and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully states the return is a cost range, and it flags the heat-pump gap. It is complete enough to call correctly, though it could say more about the cost-range format (e.g., low/high bounds) given the absent output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each parameter has an enum with its own description, so the schema carries the parameter documentation. The description's "by type, fuel, and size" only restates the fields without adding format or interaction rules, matching the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource — it returns a cost range for water heater replacement/installation — and scopes the result by type, fuel, and size. This clearly separates it from the electrical, HVAC, plumbing, roofing, and solar calculators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use when a user asks what a water heater replacement or installation costs" gives an explicit trigger, and the note that heat-pump water heaters are not modeled is a useful scope exclusion. It stops short of naming an alternative tool for the excluded case, so it's not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
electrical-cost-calculator - First observed
hvac-cost-calculator - First observed
plumbing-cost-calculator - First observed
roofing-cost-calculator - First observed
solar-cost-calculator - First observed
water-heater-cost-calculator
Related MCP Connectors
Deterministic Odoo ERP calculators: implementation cost, ROI, TCO, tax, payroll, inventory.
Home-improvement cost estimates, tier comparisons, quote checks and permit guidance for US homes.
UK solar PV and heat pump calculators that follow the published MCS methods. Open, no key.
Solar, weatherization, EV charging, battery and heat-pump decision tools for AI agents.
Related MCP Servers
- AlicenseAqualityBmaintenanceGenerates deterministic solar and energy storage system preliminary proposal calculations from structured customer inputs.1MIT
- AlicenseAqualityDmaintenanceEstimates GPU requirements, training/inference costs, and cloud-vs-on-prem TCO for AI workloads using deterministic calculators.121MIT
- AlicenseCqualityBmaintenanceDeterministic Odoo ERP calculators: implementation, migration and upgrade cost, ROI and TCO, US/Canada/EU sales tax and VAT, Canadian payroll source deductions, and inventory maths (reorder point, safety stock, EOQ, landed cost, OEE). 24 tools, each a pure function, the numbers are arithmetic rather than a model's guess. Hosted remote server, no install and no API key; a stdio bridge is included24MIT
- AlicenseNot gradedqualityBmaintenanceProvides deterministic cleaning cost, time, crew, and chemical usage estimates for homes and offices via MCP and HTTP endpoints.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.