site
Server Details
Metal Roof Cost Calculator: the site's own MCP server — calculator, enquiry (enquiry = a human...
- Status
- Healthy
- Uptime
- 99.9% over 39 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
Each tool targets a distinct operation: calculate runs the calculator, calculator_describe and enquiry_describe document different areas, enquiry_fields enumerates form fields, and submit_enquiry performs the submission. The doc-oriented tools are clearly scoped to different subjects (calculator vs. enquiry), so an agent can select reliably.
Most names use a noun_verb or verb_noun pattern (calculator_describe, enquiry_describe, submit_enquiry), but the bare verb 'calculate' and the noun_noun 'enquiry_fields' deviate from the implicit prefixes (calculator_*, enquiry_*). The namespaces are readable but the convention is not applied uniformly.
Five tools is well-scoped for a single cost calculator with an enquiry flow: one action tool, one field/describe pair, and one submission tool. Nothing is redundant and no essential capability is split across excess tools.
The surface covers the full lifecycle: run the calculation, discover inputs/outputs/assumptions, inspect enquiry fields, understand the submission's legal meaning, and submit with a two-step consent/token flow. For a stateless calculator-plus-enquiry server, no obvious operation is missing.
Available Tools
5 toolscalculateMetal roof cost calculatorAInspect
Run the Metal roof cost calculator calculator: Actual roof area; Roofing squares (100 sq ft each); Panel area to order, including waste; Installed rate used, per sq ft. Missing inputs fall back to their documented defaults.
| Name | Required | Description | Default |
|---|---|---|---|
| rate | No | Your own installed price per sq ft (0 uses the panel default) | |
| panel | No | Panel type (sets a starting price per sq ft) | 14 |
| pitch | No | Roof pitch | 1.118 |
| waste | No | Waste allowance on material | |
| tearoff | No | Tear off the existing roof | 1 |
| footprint | No | Roof footprint (ground area under the roof) | |
| tearoffRate | No | Tear-off and disposal, per sq ft |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden; it discloses that missing inputs fall back to documented defaults and that the tool produces calculated quantities rather than performing an enquiry/submission. It does not explicitly state 'no side effects,' but a pure calculator's read-only nature is strongly implied by the output-oriented wording.
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?
The description is one tight sentence with the action front-loaded and no filler beyond the redundant 'calculator calculator'. The semicolon-separated output list is compact and each item adds information. Minor word duplication prevents a 5.
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 enumerates four outputs (actual roof area, squares, panel area to order, installed rate used) and the default-fallback behavior. It is complete enough to invoke the tool with confidence, though it doesn't define the exact response structure or an explicit total-cost figure, which would be helpful for a 'cost calculator.'
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?
The input schema already documents all 7 parameters with defaults and descriptions (100% coverage), which sets the baseline at 3. The description adds only the global fallback behavior and output names like 'Panel area to order, including waste' that slightly enrich waste semantics, but it does not compensate for or add much beyond the schema.
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 names the exact action ('Run') and resource ('Metal roof cost calculator') and lists the computed outputs, so an agent can tell this is the calculation tool. It does not explicitly contrast it with calculator_describe or submit_enquiry, but the verb and output list are clear. The duplicated 'calculator calculator' is awkward but not confusing.
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 use case is implied by the title and the imperative 'Run'—this is the tool for computing metal-roof values, not for describing or enquiring. However, the description never states when to prefer it over the sibling tools or gives exclusions/prerequisites. The fallback-default note is an invocation rule, not usage routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculator_describeWhat Metal roof cost calculator computesAInspect
The inputs this calculator takes (with units, ranges and defaults), the outputs it returns, and the assumptions and tables behind it.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does disclose the core behavior: it returns a description of inputs, outputs, assumptions, and tables. It does not explicitly state that the tool itself performs no calculation or has no side effects, but the describe-oriented wording makes that largely apparent.
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?
The description is a single sentence that front-loads the key content: inputs, outputs, and assumptions/tables. Every phrase adds value and there is 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 zero-parameter, no-output-schema descriptive tool, the description is fully sufficient. It names all the categories of information an agent would expect to receive, leaving no obvious gaps.
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?
The input schema has zero parameters, so the baseline is 4 per the rubric. The description adds no parameter details for this call itself, but it does clarify that the tool describes the underlying calculator's parameters rather than accepting its own, which is enough.
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 precisely states that the tool conveys the calculator's inputs (with units, ranges, defaults), outputs, and underlying assumptions/tables. Combined with the name 'calculator_describe' and title, it is unambiguous and clearly distinct from the sibling's 'calculate'.
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 purpose implies this should be used when an agent needs to understand the calculator's inputs/outputs before calculating, and the sibling list includes 'calculate' as the natural alternative. However, there is no explicit statement of when to choose this over other tools or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enquiry_describeWhat you get: an ENQUIRY with a human (not a purchase, not a guaranteed quote)AInspect
Read first. States plainly what submit_enquiry does on Metal Roof Cost Calculator: it starts an enquiry with human providers who quote directly. Nothing is bought, ordered or paid; no quote is guaranteed; it is free. Also returns who receives the details, the consent wording, and how the person confirms.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden, and it does well: it reveals that the tool returns who receives the details, the consent wording, and how the person confirms. It also clarifies key user-facing outcomes such as 'it is free' and 'no quote is guaranteed.'
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?
The description is compact and front-loaded with the most important usage signal ('Read first'). Every sentence earns its place: what the tool does, what it does not do, and what it returns.
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?
Given zero parameters, no output schema, and no annotations, the description provides enough context for an agent to know exactly why this tool exists, when to read it, and what information it will return. Nothing essential is missing for a describe-style tool.
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?
The tool has zero parameters, so there is no parameter burden for the description to carry. The schema already fully covers the empty parameter set, and the description adds no unnecessary parameter-related content.
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 states a specific verb-resource pair: it 'states plainly what submit_enquiry does' on the Metal Roof Cost Calculator. It also clearly differentiates itself from the actual submission action by clarifying that nothing is bought, ordered, or paid and no quote is guaranteed.
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 'Read first' gives a clear directive to consult this tool before taking action, and the description explains what kind of information the agent will gain. It does not explicitly name when to prefer sibling tools, but the 'not a purchase, not a guaranteed quote' framing implicitly tells the agent this is informational rather than transactional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enquiry_fieldsThe questions the enquiry asksAInspect
Every field of the Metal Roof Cost Calculator enquiry: key, label, type, whether required, help text and the allowed options where there are any. Pass answers to submit_enquiry keyed by field key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the burden of behavioral disclosure. It successfully describes what the tool returns (field metadata) and implies a read-only, non-mutating behavior by directing mutation to submit_enquiry. It does not mention errors or edge cases, but for a simple field-listing tool this is sufficient.
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?
A single sentence packs the resource, the exact output contents, and a downstream usage instruction with no filler. The most important information is front-loaded, and 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?
The description is complete enough for a simple metadata-retrieval tool with no parameters and no output schema. It covers what fields are returned and how to use them, and despite not mentioning sibling tools like enquiry_describe, the field-focused scope is clear.
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?
The tool has zero parameters, so the baseline is 4. The description adds useful contextual information by explaining that returned field keys are meant to be used as keys for submit_enquiry, which helps an agent understand how the no-input tool fits into the larger workflow.
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 clearly identifies the resource as 'Every field of the Metal Roof Cost Calculator enquiry' and enumerates the exact content: key, label, type, required status, help text, and allowed options. It implies a retrieval/description purpose and distinguishes itself from submit_enquiry, though it lacks an explicit verb like 'get' or 'list'.
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 description gives clear usage context by stating 'Pass answers to submit_enquiry keyed by field key,' which tells an agent how to use the field keys after fetching them. It does not explicitly contrast against enquiry_describe or calculator_describe, but the intended workflow is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_enquirySubmit an ENQUIRY to human providers (two steps; not a purchase)AInspect
Submits an enquiry to Metal Roof Cost Calculator — NOT a purchase, NOT a guaranteed quote. Step 1: call with the answers (keyed by field key from enquiry_fields) and consent=true; it validates and returns a summary, the consent line and a confirmation token — show the person the summary and the consent line. Step 2: only if the person agrees, call again with the same answers, consent=true and the confirmation token; the enquiry is then submitted, and the person receives an email with a link they must click before any provider sees it. Consent means the person has read and agreed to: "Send my contact details to up to three roofing contractors, chosen by Metal Roof Cost Calculator, who'll contact me directly. I'll be emailed each firm's name as my details go to it, and can stop any more firms getting them."
| Name | Required | Description | Default |
|---|---|---|---|
| answers | Yes | the person's answers, keyed by field key | |
| consent | Yes | true only when the person has agreed to: Send my contact details to up to three roofing contractors, chosen by Metal Roof Cost Calculator, who'll contact me directly. I'll be emailed each firm's name as my details go to it, and can stop any more firms getting them. | |
| confirmation | No | the confirmation token from step 1, after the person has approved the summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: it discloses the two-step confirmation flow, that submission triggers an email with a verification link, that no provider sees the enquiry until that link is clicked, and that contact details go to up to three contractors who may contact the person directly. These are exactly the side-effect and consent semantics an agent must know before invoking a mutation.
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?
Front-loaded with the purpose and the not-a-purchase caveat, then the two steps in order — well structured. It loses a point for re-quoting the full consent sentence verbatim, which already appears in the schema's consent description, making it longer than strictly necessary.
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?
No output schema exists, and the description compensates by describing what step 1 returns (a summary, the consent line, a confirmation token) and what happens after step 2 (email verification before providers see it). An agent has everything needed to drive both calls correctly.
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 coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema: it explains that answers are keyed by field key from enquiry_fields (a sibling tool), that consent=true is required at both steps, and that confirmation is the token returned by step 1. This relational context is not derivable from the schema alone.
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 and resource ("Submits an enquiry to Metal Roof Cost Calculator") and immediately scopes what it is not ("NOT a purchase, NOT a guaranteed quote"). This lets an agent distinguish it from the calculate/calculator sibling tools without opening 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?
Gives an explicit, ordered when-to-use protocol: Step 1 with answers + consent=true, show the person the summary and consent line, then Step 2 only if the person agrees, with the confirmation token. The gating condition for each call is stated, leaving nothing to inference.
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.
1 tool update
- Changed
submit_enquiry1 field changed- changed
Input schema / properties / consent / descriptionPrevious value: -"true only when the person has agreed to: Send my contact details to up to three local metal roofing contractors, chosen by Metal Roof Cost Calculator, who'll contact me directly. I'll be emailed each firm's name as my details go to it, and can stop any more firms getting them."New value: +"true only when the person has agreed to: Send my contact details to up to three roofing contractors, chosen by Metal Roof Cost Calculator, who'll contact me directly. I'll be emailed each firm's name as my details go to it, and can stop any more firms getting them."
1 tool update
- Changed
submit_enquiry1 field changed- changed
Input schema / properties / consent / descriptionPrevious value: -"true only when the person has agreed to: Happy for my details to go to a local metal roofing contractor, who'll contact me directly."New value: +"true only when the person has agreed to: Send my contact details to up to three local metal roofing contractors, chosen by Metal Roof Cost Calculator, who'll contact me directly. I'll be emailed each firm's name as my details go to it, and can stop any more firms getting them."
5 tool updates
- First observed
calculate - First observed
calculator_describe - First observed
enquiry_describe - First observed
enquiry_fields - First observed
submit_enquiry
Related MCP Connectors
Industrial Roofing Cost: the site's own MCP server — enquiry (enquiry = a human handoff, not a...
Ohio Roof Replacement Cost: the site's own MCP server — enquiry (enquiry = a human handoff, not...
Colorado Roof Replacement Cost: the site's own MCP server — enquiry (enquiry = a human handoff,...
Florida Roof Replacement Cost: the site's own MCP server — enquiry (enquiry = a human handoff,...
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceMortgage Calculator AI - MCP server providing AI-powered tools and automation by MEOK AI Labs9 npm80 PyPIMIT
- AlicenseAqualityAmaintenanceMCP server providing 12 tools for Seattle-area home remodeling: real-time cost estimation across 8 project types, contractor business info, project portfolio, blog content, and quote submission. Connects via Streamable HTTP — no auth required.36MIT
- FlicenseBqualityDmaintenanceUltra-lightweight MCP server for construction calculations and material estimation, enabling material calculator and cost estimator tools for structures like foundations, walls, slabs, and beams.42-
- AlicenseNot gradedqualityAmaintenanceMCP server for the Russian construction market — 3,395 contractor companies and 13,436 house-building projects across 18 regions. 21 tools for search, comparison, cost analytics, contractor recommendations, and quote requests.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.