Skip to main content
Glama

Ampworth

Server Details

UK solar PV and heat pump calculators, with guides, on one server. Follows the MCS methods. No key.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 15 tools

Disambiguation4/5

Tools generally target distinct tasks (system sizing, output, shading, running costs, noise). The main overlap is between 'solar_pv_system_size' and 'solar_pv_output', but the size tool explicitly states when to use the output calculator, which mitigates the confusion. Heat pump tools (size, running_cost, noise, hot_water, radiator_flow, room_heat_loss) are individual method steps and can be mixed up, but their descriptions clarify the required inputs and outputs.

Naming Consistency3/5

The naming is mixed: some tools use noun_noun (heat_pump_noise, solar_pv_output), others use verb_noun (get_document, search_documents, list_calculators, connection_route). This is readable but not a single predictable pattern. The names are still descriptive and domain-specific.

Tool Count5/5

With 15 tools, the count is well within the ideal 3-15 range. Each tool addresses a specific calculation or document operation relevant to the domain, so none feels extraneous.

Completeness4/5

The tool set covers key MCS calculations for solar PV and heat pumps, plus document search and retrieval. Minor gaps include lack of a dedicated tool for battery sizing or detailed financial modeling beyond the self-consumption value estimate, but these are workable through existing tools and the system size tool.

Available Tools

15 tools
connection_routeNetwork connection routeA
Read-onlyIdempotent
Inspect

Work out which ENA connection procedure a domestic installation of solar panels, batteries or both falls under: connect first and notify the distribution network operator within 28 days, or apply and wait for approval before anything is connected.

The rules are the ENA's engineering recommendations, not MCS documents: EREC G98 for small installations, EREC G99 for everything larger, and EREC G100 for export limitation. Every test is in amps per phase at a nominal 230 V, and it applies to the premises as a whole, so list EVERY inverter that can export, existing ones included. A battery counts as generation even if it only ever charges from the panels.

The figure that counts is each inverter's registered capacity: its AC rating, or a lower limit the manufacturer has fixed. It is NOT the panels' kWp. A 4.4 kWp array on a 3.68 kW inverter is a 3.68 kW installation. Where an inverter has been capped below its hardware rating, give the hardware rating as 'designCapacityKw', because G99 tests that separately.

The routes are: G98 when the total is 16 A per phase or less (3.68 kW single phase, 11.04 kW three phase); G99 SGI-1, also connect and notify, when the total is within 16 A but an inverter built for up to 32 A has been capped; G99 SGI-2 and SGI-3, fast track applications answered within 10 working days, which allow larger totals held back by a type-tested export limiter; and the standard G99 application for anything else. An export limiter NEVER brings an installation under G98.

IMPORTANT: this says which procedure applies, not what the operator will decide. Approval depends on the local network, which only the operator can assess. Say so whenever you report a result.

Method from EREC G98 / G99. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
phasesNoThe supply: 1 for single phase, which is almost every British house, or 3 for three phase. Defaults to 1.
devicesYesEvery inverter at the premises that can export: solar, battery and hybrid, existing ones included. A battery counts even if it only charges from the panels. At least one is required.
exportLimitKwNoThe export limit a fully type-tested G100 scheme would hold the premises to, in kW per phase, where one is proposed. Optional. An export limit never brings an installation under G98, but it decides which G99 route applies.
otherInstallationsNearbyNoTrue when the same installer has fitted, or plans to fit, generation at other premises within 500 metres, or on the same street, within 28 days either side. That turns a G98 notification into an application. Defaults to false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYes
routeYes
methodYes
phasesYesRegistered capacity on each phase, in kW and in amps at the nominal 230 V the recommendations use.
devicesYes
totalKwYesRegistered capacity of every device added together.
verdictYes
warningYesWhich route applies is arithmetic; what the network operator decides is not. Always present.
g98LimitKwYes16 A per phase at 230 V: 3.68 kW on a single phase supply, 11.04 kW on three phase.
referencesYes
worstPhaseAYesCurrent on the most heavily loaded phase. This is the figure the thresholds are tested against.
alternativesNoChanges that would put the installation on an easier route, and what each would cost.
exportLimitANoThe proposed export limit converted to amps per phase.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint, openWorldHint=false), the description discloses important behavioral limits: it says which procedure applies but not what the operator will decide, and instructs the agent to repeat that caveat whenever reporting a result. It also discloses the underlying method (EREC G98/G99) and that all tests are in amps per phase at 230 V across the whole premises.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Long, but front-loaded with the outcome (which procedure applies) before the rules, and nearly every sentence carries a decision-relevant fact. Minor redundancy: the 'export limiter never brings an installation under G98' point appears in the main prose and again in the schema description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation. For a read-only rule-evaluation calculator the description supplies everything an agent needs to call it correctly: the capacity semantics, the premises-wide scope, the phase handling context, the neighbour-proximity trigger, and the mandatory caveat about operator discretion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema carries the basics. The description still adds real semantic value: registered capacity is the inverter's AC rating, not panel kWp; designCapacityKw matters only for inverters capped below hardware rating because G99 tests it separately; a battery counts as generation even if it only charges from panels; every exporting inverter including existing ones must be listed. It adds meaning beyond the schema for several fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and outcome: determining which ENA connection procedure (connect-and-notify vs apply-and-wait) a domestic solar/battery installation falls under. It names the governing documents (EREC G98/G99/G100) and the exact decision rules, so an agent can distinguish it cleanly from the solar_pv_* sizing and output calculators.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the domain logic thoroughly and frames the tool as a method-following calculator 'for understanding a system and checking a quotation', which implies when it applies. However, it never names a sibling tool or states when another calculator should be used instead, and gives no explicit exclusions, so usage is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_documentRead one document in fullA
Read-onlyIdempotent
Inspect

Fetch the full text of one guide, article or set of questions by its slug, as Markdown, not HTML. Slugs come from search_documents or list_documents.

The answer carries the MCS documents the text draws on, and the ids of any calculators on this site that do the arithmetic the text describes. Where the document is a set of questions, each question and answer comes back separately.

Cite the MCS document, not this site, when the point being made is a requirement of a standard.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe document's slug, from search_documents or list_documents. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesThe page, which is the address to cite.
kindYes'guide', 'article' or 'faq'.
slugYes
tagsNo
textNoThe document as Markdown: prose, with headings, tables, lists and absolute links. For a set of questions this is every question and answer run together; they also come back separately in questions.
levelNoArticles only: beginner, intermediate or advanced.
titleYes
apiUrlYesThe same document as JSON.
relatedNoDocuments worth reading next.
sourcesNoThe MCS documents this draws on. Cite these, not this site, when the point is a requirement of a standard.
summaryYes
updatedYesThe date of the last change, as YYYY-MM-DD.
categoryYesThe subject key: 'basics', 'heat-pumps', 'solar-pv', 'batteries', 'standards' or 'paperwork'.
featuredNo
headingsNoThe in-page sections.
questionsNoFor a set of questions, each question with its answer as Markdown.
levelLabelNo
calculatorsNoIds of calculators on this site that do the arithmetic described here.
perspectiveNoGuides only: who the guide is written for.
categoryLabelYes
readingMinutesYes
perspectiveLabelNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent and non-destructive behavior, so the safety profile is covered. The description adds real behavioral value beyond them: the output is Markdown not HTML, the response carries MCS source documents and calculator ids, and question-sets return Q&A separately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action in the first sentence, then layers return-shape and citation guidance. Every sentence carries information, though the final citation instruction is advisory rather than operational and slightly dilutes focus.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with an output schema and full safety annotations, the description covers what is needed: what it returns, in what format, and how to obtain the required slug. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description already says 'from search_documents or list_documents. Required.' The description repeats the slug provenance but adds no syntax, format, or edge-case detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: fetch the full text of one guide/article/question-set by slug. It distinguishes itself from siblings by noting slugs come from search_documents or list_documents, so an agent can tell retrieval-by-id apart from listing/searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the workflow explicit by telling the agent the slug must come from search_documents or list_documents, which effectively routes discovery through the siblings. It stops short of stating when not to use it (e.g., when only metadata is needed), so it is clear context rather than full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

heat_pump_noiseHeat pump noise assessmentA
Read-onlyIdempotent
Inspect

Calculate the sound pressure level an air source heat pump produces at an assessment position, and whether it meets the 37 dB(A) permitted development noise limit, using the method in MCS 020.

The formula is Lp = Lw + 10 log(Q / 4.pi.r^2) - Ab.

Lw is the A-weighted sound POWER level of the unit from its product fiche, energy label or the MCS product database. This is not the sound pressure level, which is a smaller number that already has a distance built into it; confusing the two produces an answer that is wrong by about twenty decibels. The figure for low noise mode must not be used.

Q is the directivity factor, from the count of reflecting surfaces within one metre of the unit that extend at least a metre past it in two or more directions. The ground counts; vegetation does not. One surface gives Q=2, two gives Q=4, three gives Q=8. More than three cannot meet MCS 020 at all.

r is the straight-line distance in metres to the assessment position, which is a window or door of a habitable room in a NEIGHBOURING property, at any floor. Every affected position must be checked separately, and the nearest is not always the worst.

Ab is the barrier attenuation. Fences with gaps, and vegetation of any kind, count as no barrier.

Where several units serve one position, list them all and they are combined logarithmically.

Method from MCS 020. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
unitsYesThe heat pump or heat pumps being assessed, each with its own distance and barrier to this assessment position. At least one is required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
limitYesThe permitted development noise limit, 37.0 dB(A).
notesYes
unitsYes
methodYes
verdictYes
headroomYesDecibels below the limit. Negative when the limit is exceeded.
remediesNoWhat would bring a failing position within the limit.
compliantYesTrue when the level is at or below the limit.
referencesYes
soundPressureLevelYesCombined A-weighted sound pressure level at the assessment position, in dB(A), rounded to one decimal place as MCS 020 requires.

TDQS

A4.3/5.0
Behavior4/5

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 covered. The description adds genuine domain behaviour: input provenance (product fiche, energy label, MCS product database), the prohibition on using low-noise-mode figures, the sound-power vs sound-pressure trap, and the logarithmic combination of multiple units.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and logically ordered (purpose, formula, each variable, caveats), but a substantial share of the text restates the input-schema descriptions almost verbatim, which is space that does not earn its place given 100% schema coverage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained. Inputs, units, the governing standard, the pass/fail threshold, multi-unit handling, and the professional-liability disclaimer are all covered, so an agent has everything needed to invoke this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description's parameter prose largely mirrors the schema (Lw, Q, r, Ab definitions). It still adds conceptual meaning the schema lacks: the directivity mapping (Q=2/4/8 for one/two/three surfaces), the note that more than three surfaces cannot meet MCS 020 at all, and the warning that the nearest position is not always the worst.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a precise verb and resource (calculate sound pressure level of an air source heat pump at an assessment position) plus the regulatory test applied (37 dB(A) permitted development limit, MCS 020). This clearly separates it from siblings such as heat_pump_size and heat_pump_running_cost, which cover entirely different calculations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is explicit: 'for understanding a system and checking a quotation', with the closing caveat that installed work still needs a design and site survey. It also states the assessment position definition (habitable room window/door of a neighbouring property) and that each affected position must be checked separately. It does not, however, name or route to any alternative tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

heat_pump_running_costHeat pump running costA
Read-onlyIdempotent
Inspect

Compare what a household spends heating on its current fuel with what the same heat would cost from a heat pump.

The heat demand is worked out from the household's own metered fuel use, not from a model, because a year of bills describes a particular house far better than any estimate of it. Supply the annual fuel use in the fuel's own unit (kWh for gas and electricity, litres for oil and LPG, kilograms for coal), its price per unit in pounds, and the seasonal efficiency of the existing appliance, which defaults to a realistic figure for that fuel instead of the one on the badge.

The comparison turns on one ratio. A heat pump costs less to run whenever its seasonal coefficient of performance beats the ratio between the price of a unit of electricity and the price of a unit of heat from the current fuel. The result reports that break-even figure explicitly.

SCOP must be the figure at the flow temperature the system is actually designed for. The same machine can return 4.2 at 35 degrees and 3.1 at 55, and quoting the first for a system designed at the second is the commonest way of overstating a saving.

This is a running cost comparison. It says nothing about the capital cost or any grant.

Method from MCS 007. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
fuelNoThe fuel being replaced: 'mains_gas', 'oil', 'lpg', 'electricity' or 'coal'. Defaults to 'mains_gas'.
scopYesSeasonal coefficient of performance of the proposed heat pump: the units of heat it delivers per unit of electricity, averaged over a year at the design flow temperature. Required.
annualFuelUseYesHow much of that fuel the house uses in a year, in the fuel's own unit: kWh for gas and electricity, litres for oil and LPG, kilograms for coal. Take it from a year of bills. Required.
fuelPricePerUnitYesPrice of one unit of that fuel, in pounds. Required.
nonHeatingFractionNoShare of that fuel used for something other than heating and hot water, such as a gas hob, as a decimal. A hob is usually 0.03 to 0.05. Defaults to 0.
applianceEfficiencyNoSeasonal efficiency of the existing appliance, as a decimal. Defaults to the typical figure for the fuel.
electricityPricePerKwhYesPrice of a unit of electricity, in pounds. Required.
fuelStandingChargePerDayNoDaily standing charge for that fuel in pounds, if it has one. A house that removes its gas boiler can usually stop paying this.
electricityStandingChargePerDayNoDaily electricity standing charge in pounds. It is paid either way, so it only changes the answer if the tariff changes with the heat pump.

Output Schema

ParametersJSON Schema
NameRequiredDescription
fuelYes
scopYes
notesYes
methodYes
verdictYes
referencesYes
breakEvenScopYesThe seasonal efficiency at which the heat pump costs exactly what the current system costs. Below this it costs more.
annualDifferenceYesPositive when the heat pump costs less.
costPerKwhHeatNowYesWhat a unit of delivered heat costs today, in pounds.
currentAnnualCostYes
percentDifferenceYes
heatPumpAnnualCostYes
annualHeatDemandKwhYesUseful heat the house actually needs in a year, after the existing appliance's losses are taken off its fuel input.
applianceEfficiencyYes
breakEvenPriceRatioYesHow many times dearer a unit of electricity is than a unit of the current fuel. Compare it with the SCOP: a heat pump saves money whenever the SCOP beats this ratio.
costPerKwhHeatHeatPumpYesWhat a unit of delivered heat would cost from the heat pump.
heatPumpElectricityKwhYesUnits of electricity the heat pump would use in a year.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish the safe-read profile (readOnlyHint, idempotentHint, non-destructive), so the description wisely spends its words on domain behavior instead: the break-even ratio that decides the answer, the default appliance efficiency, and the warning that SCOP must match the design flow temperature. This is substantive context beyond the structured fields, though it does not discuss precision or edge cases in inputs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and each paragraph carries distinct information (units, the ratio, the SCOP caveat, scope exclusions). It is longer than ideal, with the flow-temperature explanation somewhat verbose, but nothing is purely filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With four required parameters, nine total properties, a 100% documented schema, and an output schema, the description supplies everything an agent needs: what is computed, what is excluded, the critical SCOP constraint, and the note that the break-even figure is reported explicitly. No material gap remains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes beyond it by explaining fuel-specific units (kWh/litres/kg), the meaning of the break-even comparison, and why SCOP must correspond to the actual design flow temperature rather than the badge figure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence states a specific comparison verb and both resources: household heating spend on current fuel versus the same heat from a heat pump. This clearly separates it from siblings like heat_pump_size or heat_pump_noise, which address different questions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when this calculator applies ('running cost comparison') and explicitly excludes capital cost and grants, and it names the MCS 007 method plus the caveat that installation still needs a site survey. It does not, however, route to a specific sibling calculator for sizing or noise, leaving the alternative selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

heat_pump_sizeWhat size heat pump do I need?A
Read-onlyIdempotent
Inspect

Estimate the heat pump a UK house needs, and what it would cost to run against the fuel it burns now.

IMPORTANT: MIS 3005-D requires a heat pump to be sized from a room-by-room heat loss calculation to BS EN 12831, and nothing here replaces that. Say so whenever you report a result from this, and point the user at the room-by-room calculation. What the figure is for is checking whether a size somebody has been quoted is plausible, because oversizing is the commonest fault in heat pump installations and it is invisible to the person living with it.

There are two routes and the first is much the better one.

From metered fuel, which is preferred: give 'annualFuelUse' from a year of bills. The fuel becomes heat delivered, hot water comes off it using the MIS 3005-D formula, and what remains divided by the local heating degree days gives the building's heat loss coefficient in watts per kelvin. Degree days are computed from the Met Office monthly means published in MGD 007 section 5.

From the fabric, as a fallback when there are no bills: give 'floorAreaM2', an 'insulation' level and a 'propertyType'. The watts per kelvin per square metre behind this are a reasonable reading of British housing stock but they are NOT MCS figures, because MCS publishes no such shortcut. Say so when using this route.

Either way the peak load is the coefficient multiplied by the design temperature difference for the location, from Table 2 of MIS 3005-D. The heat pump must deliver at least that at the design outside temperature and the design flow temperature, which is not the same as its headline rating.

The result also compares what each of four flow temperatures would cost to run, which is the decision that governs the bill and the one a quotation most often leaves unstated. Supply 'quotedHeatPumpKw' to have a quoted size checked against the estimate.

Method from MIS 3005-D. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
fuelNoThe fuel the house is heated with now: 'mains_gas', 'oil', 'lpg', 'electricity' or 'coal'. Defaults to 'mains_gas'.
scopNoSeasonal coefficient of performance of the proposed heat pump, if it is known from the MCS Product Directory. Defaults to an indicative figure for the chosen flow temperature.
bedroomsNoNumber of bedrooms, for the hot water demand. Defaults to 3.
locationYesNearest of the eight tabulated locations: 'belfast', 'birmingham', 'cardiff', 'edinburgh', 'glasgow', 'london', 'manchester' or 'plymouth'. Required.
occupantsNoNumber of people living there, if known. MIS 3005-D takes the greater of this and bedrooms plus one.
insulationNoHow well insulated the building is: 'solid', 'cavity_unfilled', 'insulated', 'modern' or 'very_efficient'. Used only with floorAreaM2.
designBasisNo'a' for the 99% outside design temperature or 'b' for the colder 99.6% one. Defaults to 'a'.
floorAreaM2NoTotal heated floor area in square metres, over all storeys. Used only when no fuel figure is given.
internalTempNoWhole-house mean internal design temperature in Celsius. Defaults to 20, which is a reasonable average of the room-by-room figures in MIS 3005-D Table 1.
propertyTypeNo'detached', 'semi', 'end_terrace', 'mid_terrace', 'flat' or 'bungalow'. Used only with floorAreaM2. Defaults to 'semi'.
annualFuelUseNoHow much of that fuel the house burns in a year, in its own unit: kWh for gas and electricity, litres for oil and LPG, kilograms for coal. Give this if it is known: it describes the actual house and is far better than the fabric estimate.
flowTemperatureNoThe flow temperature the system would be designed around: 35, 45, 50 or 55. Defaults to 45. This is the single biggest influence on running cost.
fuelPricePerUnitNoPrice of one unit of the current fuel, in pounds. Optional; supplying it and the electricity price gives a running cost comparison.
quotedHeatPumpKwNoThe output of a heat pump somebody has quoted, in kW. Optional; supplying it says whether that size looks plausible against this estimate.
nonHeatingFractionNoShare of that fuel used for something other than heating and hot water, such as a gas hob, as a decimal. A hob is usually 0.03 to 0.05. Defaults to 0.
summerMonthFuelUseNoFuel used in a single summer month, in the same unit, when the heating is off. Give this if it can be found: almost all of it is hot water, so it separates hot water from space heating exactly and removes the biggest assumption in the estimate.
applianceEfficiencyNoSeasonal efficiency of the existing boiler as a decimal. Defaults to a realistic figure for the fuel instead of the one on the badge.
electricityPricePerKwhNoPrice of a unit of electricity, in pounds. Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
scopYes
basisYes
notesYes
methodYes
warningYes
locationYes
basisNoteYes
referencesYes
designBasisYes
scopAssumedYesTrue when an indicative figure stood in for a real one from the product directory.
internalTempYes
breakEvenScopNoThe seasonal efficiency at which the two cost the same.
peakHeatLossKwYesThe space heating load at the design outside temperature. The heat pump must deliver at least this, at the design flow temperature, without help from an immersion heater.
flowTemperatureYes
quotedSizeCheckNo
annualDifferenceNoPositive when the heat pump costs less.
annualHotWaterKwhYes
currentAnnualCostNo
heatingDegreeDaysYes
externalDesignTempYes
heatPumpAnnualCostNo
annualHeatDemandKwhYes
dailyHotWaterLitresYes
wattsPerSquareMetreNoPeak load per square metre of floor, where a floor area was given. A useful sanity check.
flowTemperatureCostsNo
annualSpaceHeatingKwhYes
hotWaterFromSummerUseYesTrue when a summer month's fuel separated hot water from space heating, instead of an allowance standing in for it.
temperatureDifferenceYes
heatPumpElectricityKwhYes
heatLossCoefficientWPerKYesHow many watts the building loses for every degree between inside and outside. The figure everything else follows from.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, not destructive), so the description exceeds the bar by disclosing the method (coefficient from degree days, peak load from MIS 3005-D Table 2), the caveat that the fabric route is not MCS-derived, and the design-flow vs headline-rating distinction. This is unusually rich context for a calculator.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Reasonably front-loaded (purpose, then the IMPORTANT caveat, then the two routes), and the length is defensible for an 18-parameter calculator. It loses a point for mild repetition, notably the instruction to flag limits being restated for the metered and fabric routes separately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description compensates fully for the tool's complexity by documenting method provenance, the design-temperature basis, and the recommended framing of results. Nothing an agent needs to invoke or report this correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage the baseline is 3, but the prose adds genuine relational meaning beyond per-field docs: it explains that annualFuelUse and the fabric parameters are mutually exclusive routes, that quotedHeatPumpKw drives a plausibility check, and that flowTemperature governs four cost scenarios. It does not restate individual field syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (estimate heat pump size for a UK house) plus a secondary function (running-cost comparison against current fuel). It is clearly distinguishable from siblings like room_heat_loss, heat_pump_running_cost and radiator_flow_temperature, which it never overlaps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly lays out two routes, names the metered-fuel route as preferred and the fabric route as fallback, and states the trigger for each (annualFuelUse present vs absent). It also names the shape of use (checking whether a quotation is plausible) and points to the room-by-room calculation as the alternative for actual design.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hot_water_cylinderHot water demand and cylinder sizeA
Read-onlyIdempotent
Inspect

Work out the daily hot water demand of a dwelling and the size of cylinder a heat pump needs, using the formula in MIS 3005-D 3.5.2 and the BS 6700 guidance reproduced in MGD 007.

The demand is 45 litres a day for each of N, where N is the greater of the number of bedrooms plus one and the number of people actually living there. For a new build, where occupancy is unknown, the bedroom count is used.

The cylinder does not have to hold a whole day's demand, because it reheats as it empties. What it must cover is the largest draw-off before the heat pump catches up, which is why a larger heat pump needs a smaller cylinder: reheat time is volume times temperature rise, divided by 14.3 times the kW.

The result gives the BS 6700 minimum, a recommended size rounded to a volume cylinders are made in, and the reheat time. Note that cylinder volume is not the whole story: a heat pump cylinder needs a much larger coil than a boiler cylinder, because the water arrives cooler and there is less temperature difference to drive heat across the surface.

Method from MIS 3005-D. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
bedroomsYesNumber of bedrooms in the property. Required.
bathroomsNoNumber of bathrooms with a bath. Defaults to 1.
occupantsNoNumber of people who actually live there, if known. MIS 3005-D takes the greater of this and bedrooms plus one. Leave it out for a new build, where the occupancy is not yet known.
storageTempNoTemperature the cylinder is stored at, in Celsius. Defaults to 55, which is a common heat pump setting. A weekly pasteurisation cycle above 60 is separate.
coldWaterTempNoIncoming mains temperature in Celsius. Defaults to 10.
heatPumpOutputKwNoHeat output of the heat pump in kW when it is heating the cylinder. A larger heat pump reheats faster, so it needs less stored volume. Defaults to 6.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYes
methodYes
bedroomsYes
bathroomsYes
occupantsNo
referencesYes
storageTempYes
coldWaterTempYes
reheatMinutesYesRoughly how long the heat pump takes to bring the whole cylinder up from cold, ignoring standing losses.
occupancyBasisYesWhich of the two gave the larger figure.
designOccupancyYesN in the MIS 3005-D formula: the greater of bedrooms plus one and the known occupants.
energyPerDayKwhYesHeat needed each day to raise the daily demand from mains temperature to storage temperature.
heatPumpOutputKwYes
dailyDemandLitresYesAverage daily hot water demand: 45 litres for each of N.
minimumCylinderLitresYesThe BS 6700 minimum for this number of bathrooms and this heat pump output, before the allowance MGD 007 adds for extra bathing capacity.
recommendedCylinderLitresYesCylinder volume from the BS 6700 guidance in MGD 007, given the number of baths and the heat pump output.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this a safe, idempotent, non-destructive, closed-world read, so the description's job is to add method and outcome context — and it does: it discloses the demand formula (45 l/day per N, N = max(bedrooms+1, occupants)), the reheat-time relationship (volume × ΔT / (14.3 × kW)), and the three outputs returned (BS 6700 minimum, rounded recommended size, reheat time). It also flags the coil-size caveat that a heat pump cylinder needs a larger coil than a boiler cylinder.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the demand rule are front-loaded, and the paragraph structure maps sensibly onto method, sizing logic, and caveats. It is longer than strictly needed for invocation — the coil-size paragraph is explanatory rather than operational — but no sentence is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present the description need not enumerate return fields, yet it still describes what the result contains. For a six-parameter engineering calculator with a formula-based method, the description supplies the standard reference, the core equation, default behaviour, and the professional disclaimer, leaving nothing an agent needs in order to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so a baseline of 3 applies, but the description goes further by explaining the interaction between parameters: occupancy defaults to bedrooms-plus-one logic for new builds, and a larger heat pump means a smaller cylinder because reheat time falls with kW. It also contextualises storageTemp by noting the separate weekly pasteurisation cycle above 60.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: working out daily hot water demand for a dwelling and the cylinder volume a heat pump requires, citing MIS 3005-D 3.5.2 and BS 6700/MGD 007. This is clearly distinguishable from siblings like heat_pump_size, room_heat_loss or radiator_flow_temperature, which address different calculations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage frame: 'for understanding a system and checking a quotation', and warns that installed work still needs a design and site survey from a certified installer. It stops short of routing the agent between alternatives (e.g. when to use heat_pump_size instead), so it is clear context without exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_calculatorsList the calculators and their reference dataA
Read-onlyIdempotent
Inspect

Lists every calculator on this server, with the standard behind it and whether it is the whole-system sizing calculator or one of the single-method ones, plus the reference data a caller needs to build a valid request: the compass directions and their orientations, the shading descriptions, the twenty-five solar postcode zones, the eight heat pump design locations with their design temperatures, the room types and their internal design temperatures, the heat loss element kinds, the occupancy archetypes and the fuel types. Call this when a value must be one of a fixed set and you are not sure what the set is.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noticeYes
referenceYes
calculatorsYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds genuine behavioral content beyond that: it enumerates the categories of reference data returned (compass directions, postcode zones, design temperatures, etc.), telling the agent what knowledge it gains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then a dense but purposeful enumeration of the reference datasets, closing with the usage trigger. Every clause carries information, though the long middle list is heavy for a single sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, an output schema present, and rich annotations, the description need not explain return structure or safety. It covers purpose, scope, returned content categories, and the invocation condition, so an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so there is nothing to disambiguate; the baseline for a zero-parameter tool is 4. Nothing in the description misleads about inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (lists) and resource (every calculator plus its reference data), and disambiguates what kind of calculators (whole-system sizing vs single-method) so an agent can distinguish it from the sibling calculator tools like heat_pump_size or solar_pv_system_size.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly gives the trigger condition: 'Call this when a value must be one of a fixed set and you are not sure what the set is.' This is clear context for invocation, though it does not name which sibling to prefer or state exclusions when a value is already known.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_documentsList what the documents coverA
Read-onlyIdempotent
Inspect

Lists every document, optionally filtered by kind ('guide', 'article' or 'faq'), by category, or, for guides, by the reader they are written for. Guides are shelved by perspective: 'considering', 'buying', 'selling', 'installing' and 'learning'. The first four are plain language and name no standards; 'learning' carries the methods and the citations. Match the perspective to the person asking. Use this to see the shape of what is covered before searching, or when a search returned nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoFilter by kind: 'guide', 'article' or 'faq'. Optional.
levelNoArticles only. Filter by how much the piece assumes: 'beginner', 'intermediate' or 'advanced'. Use it to match the person asking, so somebody new is not sent to an advanced piece.
categoryNoFilter by category: 'heat-pumps', 'solar-pv', 'batteries', 'standards' or 'paperwork'. Optional.
perspectiveNoGuides only. Filter by who the guide is written for: 'considering' (still deciding), 'buying' (about to commit), 'selling' (sells these systems), 'installing' (fits them) or 'learning' (wants the technical detail). Use this to match the reader: the first four are plain language and name no standards, the fifth carries the methods and citations.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
countYes
levelsYesHow much articles assume of the reader. Match it to the person asking.
documentsYes
categoriesYes
perspectivesYesWho the guides are written for. Match the reader before quoting one at them.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is fully covered without description help. The description adds that the listing is exhaustive ('every document') and that filters are optional, but says nothing about pagination, result volume, or auth needs — modest added value on top of rich annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core verb and resource, then layers filters and usage in a single tight paragraph with no filler sentences. The perspective enum list and the 'first four are plain language' clause duplicate what the schema fields already say, which is mild redundancy but does not bloat the text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so the description is not obliged to describe return values, and it covers what remains: scope of the listing, optional filters, domain-specific filter semantics, and when to prefer this over searching. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and articles/guides-only constraints plus enum meanings are already documented per-field in the schema. The description largely restates the 'perspective' and 'level' values, adding interpretation ('match the reader') but little syntax or format detail the schema lacks. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Lists') plus resource ('every document') and immediately scopes it with the available filters. The final sentence implicitly distinguishes it from search_documents by positioning it as the browse-the-shape tool rather than the lookup tool, so an agent can route correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance: 'before searching, or when a search returned nothing' — the second clause is a genuine fallback rule that names the sibling's failure mode. It also instructs how to pick filter values ('Match the perspective to the person asking'), which is actionable selection guidance rather than vague context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

radiator_flow_temperatureRadiator flow temperatureA
Read-onlyIdempotent
Inspect

Work out the flow temperature a heat pump must produce to heat a room through a given radiator, and the resulting MCS Heat Emitter Guide star rating, following section 4 of MGD 007.

This is the calculation that decides whether a heat pump will be cheap or expensive to run. A heat pump's efficiency falls as the water temperature rises, by roughly two to three per cent per degree, and the temperature it must produce is set by the radiators, not by the machine.

Supply the room's design heat loss in watts, from a room-by-room calculation, and the rated output of the radiator in that room. British catalogues normally quote at a mean-water-to-air difference of 50 K; if yours quotes 60, say so and the figure is restated.

The result gives the oversize factor, which is the radiator's output at 50 K divided by the room's heat loss, and converts it to a required flow temperature through the BS EN 442 output law. Star ratings run from 0 to 6, one star per five degrees of flow temperature, with six stars at 35 degrees.

Run this for every room. A house runs at the flow temperature its worst room demands, so one undersized radiator sets the running cost for the whole house.

Method from MGD 007. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
roomTempNoInternal design temperature of the room in Celsius. Defaults to 21.
systemDeltaTNoDesigned drop in water temperature between flow and return, in kelvin. Heat pump systems commonly use 5; boiler systems used 10 or 20. Defaults to 5.
ratedAtDeltaTNoThe mean-water-to-air temperature difference the rated output was quoted at. British catalogues normally quote 50; some older ones quote 60. Defaults to 50.
roomHeatLossWYesThe room's design heat loss in watts, from a room-by-room heat loss calculation. Required.
radiatorOutputWYesRated output of the radiator or radiators in that room, in watts, at the catalogue temperature. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYes
methodYes
verdictYes
referencesYes
starRatingYesTemperature star rating from the MCS Heat Emitter Guide, 0 to 6. More stars mean a lower flow temperature and a more efficient system.
meanWaterTempYesAverage of flow and return temperature needed to deliver the room's heat loss through this radiator.
ratedAtDeltaTYes
roomHeatLossWYes
oversizeFactorYesRadiator output at 50 K divided by the room's heat loss. The single number the Heat Emitter Guide turns into a star rating.
flowTemperatureYesThe flow temperature the heat pump must produce, in Celsius.
radiatorOutputWYes
starRatingLabelYes
outputAtDeltaT50YesThe radiator's output restated at a mean-water-to-air difference of 50 K, so oversize factors are comparable between catalogues.
returnTemperatureYes
outputAtDesignFlowWYesWhat this radiator actually gives at the flow temperature worked out here.
radiatorOutputForFiveStarsWYesThe radiator output at 50 K that would reach a five star rating, meaning a 40 degree flow temperature.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real domain behaviour: efficiency falls ~2-3% per degree of water temperature, star ratings scale one star per 5 degrees with six stars at 35C, and a caveat that installed systems still need a certified installer. It stops short of stating validity bounds or how out-of-range inputs are handled.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose, which is good, but it runs five paragraphs and includes economic rationale ('cheap or expensive to run') and a restatement of the 50 K/60 K point that overlaps the schema. The method and installer caveats earn their place; the economic lecture is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be spelled out, and the description correctly covers inputs, method provenance (MGD 007 section 4 / BS EN 442), workflow, and interpretation of the star rating. It is complete enough to invoke correctly, with only minor gaps around edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all five parameters and the baseline is 3. The description adds interpretive framing (heat loss in watts from a room-by-room calc, catalogue ratings normally at 50 K, restated if 60), but largely echoes what the schema already states for ratedAtDeltaT and radiatorOutputW. Marginal added meaning over the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: compute the flow temperature a heat pump must produce through a given radiator, plus the resulting MCS star rating. This is clearly distinguishable from siblings like room_heat_loss (which produces the heat-loss input) and heat_pump_size. An agent can identify the tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives strong operational context: 'Run this for every room' and explains that the whole house runs at its worst room's flow temperature. It also implies the pipeline dependency on a room-by-room heat loss figure. However, it never explicitly names a sibling tool (e.g. room_heat_loss) as the source of the input, so the routing is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

room_heat_lossRoom heat lossA
Read-onlyIdempotent
Inspect

Calculate the design heat loss of a single room in watts, following BS EN 12831 as MIS 3005-D applies it. This is the figure a heat pump is sized from and the figure the radiator in that room must be able to deliver.

BS EN 12831 is a room-by-room method. Run this once for each heated room and add the results; sizing a heat pump from floor area alone is what produces the oversized installations that cycle all winter.

Internal design temperatures come from Table 1 of MIS 3005-D and follow from the room type: 22 for a bathroom, 21 for living and dining rooms, 18 for bedrooms, halls, kitchens and toilets. These are minimums, so a higher figure is accepted and a lower one is refused.

External design temperatures come from Table 2, for eight locations, in two columns: 'a' is the 99% figure and 'b' the colder 99.6% one, which needs no uplift for intermittent heating.

Each element needs an area, a U-value, and a kind. The kind matters because it fixes which temperature difference applies. Walls, windows, doors, roofs and suspended floors lose heat to the outside design temperature. A SOLID FLOOR ON THE GROUND loses heat to the local annual average air temperature instead, which is far warmer, and getting this wrong is the commonest error in a heat loss calculation. Window and door areas belong to the window and the door, not to the wall behind them.

Method from MIS 3005-D. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
elementsYesEvery surface through which the room loses heat. At least one is required.
locationYesWhich of the eight tabulated locations the property is nearest: 'belfast', 'birmingham', 'cardiff', 'edinburgh', 'glasgow', 'london', 'manchester' or 'plymouth'. Required.
roomNameNoA name for the room.
roomTypeNoWhich of the tabulated room types this is: 'living_room', 'dining_room', 'bedsitting_room', 'bathroom', 'bedroom', 'kitchen', 'hall' or 'toilet'. Sets the internal design temperature. Defaults to 'living_room'.
designBasisNo'a' for the 99% outside design temperature or 'b' for the colder 99.6% figure. Column B needs no uplift for intermittent heating. Defaults to 'a'.
floorAreaM2YesFloor area of the room in square metres. Required, and used with the ceiling height to work out the ventilation loss.
internalTempNoInternal design temperature in Celsius, if it should differ from the tabulated value for the room type. MIS 3005-D sets the tabulated values as a floor, not a target, so a higher figure is allowed and a lower one is not.
ceilingHeightMNoFloor to ceiling height in metres. Defaults to 2.4.
airChangesPerHourNoHow many times an hour the air in the room is replaced. A draughty old room may be 1.5 or more; a well sealed new one 0.5. Defaults to 1.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYes
methodYes
elementsYes
locationYes
roomNameNo
roomTypeYes
referencesYes
designBasisYes
fabricLossWYes
largestLossNoWhich single element loses most, which is where insulating first pays best.
internalTempYes
roomVolumeM3Yes
totalHeatLossWYesThe room's design heat loss in watts. This is what the emitter in the room has to deliver on the coldest day.
ventilationLossWYes
externalDesignTempYes
fabricSharePercentYes
wattsPerSquareMetreYesHeat loss divided by floor area. A useful sanity check: a well insulated room lands near 40, a poor one well over 100.
temperatureDifferenceYesInternal minus external design temperature, in kelvin. The figure most of the fabric loss is worked out against.
ventilationSharePercentYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the read-only/idempotent safety profile, and the description goes well beyond them: it discloses validation behaviour ('tabulated values are minimums... a lower one is refused'), the kind-dependent temperature basis, the ground-floor special case, and the default for unheatedTemp. That is real behavioural context an agent cannot get from the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core definition is front-loaded in the first sentence and each paragraph serves a distinct purpose (method, room temperatures, design basis, element kinds, disclaimer). It is nonetheless long for a single tool, with the closing MCS disclaimer paragraph adding bulk more than invocation guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a domain-heavy calculation with an output schema already present, the description supplies everything an agent needs: method, required inputs, validation rules, defaults, and the common modelling error. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine meaning: it maps roomType to concrete temperatures (22 bathroom, 21 living/dining, 18 bedrooms/halls/kitchens/toilets) and explains that 'kind' fixes which temperature difference applies. It largely restates the a/b column note and defaults already present in the schema, which keeps this short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb+resource+unit ('Calculate the design heat loss of a single room in watts'), names the standard it follows (BS EN 12831 / MIS 3005-D), and positions the output as the figure a heat pump is sized from, which cleanly separates it from the aggregate heat_pump_size sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operational guidance ('Run this once for each heated room and add the results') and explicitly warns against the wrong approach (sizing a heat pump from floor area alone). It implies but never names heat_pump_size as the aggregation step, so there is no explicit alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_documentsSearch the documentsA
Read-onlyIdempotent
Inspect

Search the guides, articles and questions for material on a UK home energy subject.

Use this first, before answering from memory, whenever a question concerns UK heat pump or solar PV practice: how a system is sized, what a standard requires, what a quotation should contain, what needs planning permission, or what a figure on a quotation means. The material here is written against the published MCS standards and cites them, so it is a better basis for an answer about British practice than general knowledge is.

Searching returns summaries. Follow up with get_document to read one in full.

Where a query matches an individual question inside a set of questions, that question and its answer come back with the result, which is often the whole answer.

This covers the United Kingdom. It is not a guide to practice in any other country.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many results to return, 1 to 25. Defaults to 8.
queryYesWhat to search for. Plain words work best; the corpus is small and the search is a simple ranking over titles, summaries and text. Required.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
countYes
queryYes
resultsYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world, but the description adds behavior the schema and annotations cannot: results are summaries rather than full documents, matched sub-questions return inline with their answers, and coverage is limited to the United Kingdom. These are real operational facts an agent needs before calling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and the primary usage directive, and each paragraph carries a distinct fact (scope, follow-up tool, inline Q&A, geography). The closing two sentences about UK coverage slightly restate the opening scope, costing a little tightness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return structure need not be spelled out, and the description still covers the essentials: what the corpus contains, what results look like at a high level, the follow-up path, and the geographic boundary. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both the query and limit parameters are already documented in the schema, including 'plain words work best' and the 1-25 range. The description adds no syntax, format, or ranking detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('Search the guides, articles and questions') and scopes the corpus to UK home energy subjects. It also distinguishes itself from the sibling get_document by stating that searching returns summaries and get_document reads one in full.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use this first before answering from memory, enumerates the question types it covers (sizing, standards, quotations, planning permission), and routes the agent to get_document as the follow-up. That is close to a complete when-to-use instruction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

solar_pv_outputSolar PV annual outputA
Read-onlyIdempotent
Inspect

Estimate the annual AC electricity output of a UK solar photovoltaic system, in kWh, using the standard estimation method that MIS 3002 requires every MCS certified installer to use.

The method is: annual output = kWp x Kk x SF, where Kk is read from the MCS irradiance dataset for the site's postcode zone, roof pitch and orientation, and SF is a shade factor between 0 and 1.

Supply the postcode and the array's capacity in kWp, plus the roof's pitch in degrees from horizontal and its orientation in degrees away from due south in either direction, so that south is 0, south-east and south-west are both 45, east and west are both 90, and north is 180.

The result carries the tabulated yield, the estimate, and what the same array would produce at the best pitch and orientation for that zone, so a roof that is merely good is not mistaken for a poor one. This covers the United Kingdom only; the dataset has no values for anywhere else.

Method from MIS 3002. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
zoneNoMCS postcode zone code, for example '5E'. An alternative to 'postcode' when the zone is already known.
postcodeNoUK postcode of the installation, for example 'BS1 5TR'. Only the outward code matters. Give this or 'zone'.
capacityKwpYesTotal installed capacity in kilowatts peak: the sum of the nameplate watts of every module, divided by 1000. Required.
inclinationYesPitch of the array in degrees from horizontal. A flat roof is 0 and a wall-mounted array is 90. Required.
orientationYesDegrees the array faces away from due south, in either direction, so due south is 0, south-east and south-west are 45, east and west are 90, and due north is 180. Required.
shadeFactorNoProportion of output left after shading, between 0.5 and 1. Use 1 for a clear horizon. Defaults to 1.

Output Schema

ParametersJSON Schema
NameRequiredDescription
zoneYes
notesYes
methodYes
referencesYes
capacityKwpYes
inclinationYesInclination after rounding to the nearest degree, as the method requires.
orientationYesOrientation after rounding to the nearest five degrees, as the method requires.
shadeFactorYes
postcodeUsedNoThe postcode the zone was resolved from, when one was given.
shadingLossKwhYes
annualOutputKwhYesThe estimate: capacity multiplied by Kk multiplied by the shade factor.
bestCaseAnnualKwhYesWhat this capacity would produce at the best pitch and orientation for the zone, unshaded. A yardstick, not a target: a roof faces where it faces.
percentOfBestCaseYesThe estimate as a percentage of that best case.
unshadedOutputKwhYesWhat the same array would produce with a clear horizon. Equals the estimate when the shade factor is 1.
bestCaseInclinationYesThe pitch that yields most at this zone when facing due south.
bestCaseOrientationYesThe orientation that yields most at this pitch and zone. Almost always due south.
specificYieldKwhPerKwpYesKk: the kWh a single kWp produces in a year at this zone, pitch and orientation, before shading.

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: the exact computation formula, the UK-only dataset limit ('no values for anywhere else'), and the disclaimer that results are for understanding/checking rather than design. It does not describe what happens on an out-of-UK postcode or other error paths.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and method are front-loaded in the first two paragraphs, and the closing caveat earns its place. The orientation convention sentence, however, is lifted straight from the schema and is pure duplication that could be cut.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a calculator whose output schema exists (so return values need no explanation), the description covers method, domain conventions, geographic limits and usage caveats. The one remaining gap is behavior on invalid or non-UK input, which is only implied by the 'no values for anywhere else' note.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and every parameter is already documented there, including the orientation convention and the postcode/zone alternative. The description restates the orientation convention almost verbatim and adds no new syntax or format detail, so it sits at the baseline for a fully documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with units: 'Estimate the annual AC electricity output of a UK solar photovoltaic system, in kWh.' It also pins the method (MIS 3002 / MCS) and the geographic scope. However it never names or contrasts against the obvious siblings solar_pv_system_size, solar_pv_shading, or solar_pv_self_consumption, so the agent must infer the boundary from the names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a usage context ('for understanding a system and checking a quotation') and a caveat that anything installed still needs a design and site survey from a certified installer. But it never says when to prefer this over the sibling PV calculators, nor what inputs make it inapplicable beyond the UK-only scope note.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

solar_pv_self_consumptionSolar PV self-consumptionA
Read-onlyIdempotent
Inspect

Estimate what proportion of a domestic solar PV system's annual output is consumed in the house and what proportion is exported, using the lookup tables in MGD 003.

The tables are not a model. They come from half-hourly monitoring of real British households by Loughborough University, with battery behaviour modelled on top, so they carry the real shape of domestic demand: a peak before the sun is up, another after it has gone, and a quiet middle of the day.

Three things index them. The annual generation, which comes from the MIS 3002 output estimate. The household's annual consumption from a bill based on actual meter readings, which defaults to the British average of 3,500 kWh where it is unknown. And the weekday occupancy pattern, which is 'home_all_day', 'in_half_the_day' or 'out_all_day'; where the pattern is unknown MGD 003 says to use the middle one, and that is what an omitted value resolves to.

Battery capacity is the USABLE capacity, which is smaller than the figure printed on the battery. Supplying import and export prices adds a value in pounds to the result.

Note that self-consumption is not the same as independence from the grid, and the result reports both.

Method from MGD 003. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
occupancyNoWeekday occupancy pattern: 'home_all_day', 'in_half_the_day' or 'out_all_day'. Defaults to 'in_half_the_day', which is what MGD 003 says to use when the pattern is unknown.
batteryKwhNoUsable capacity of any battery in kWh, which is smaller than the headline capacity. Omit or use 0 for no battery.
exportPricePerKwhNoWhat the household is paid for a unit exported, in pounds. Optional.
importPricePerKwhNoWhat the household pays for a unit of grid electricity, in pounds. Optional; supplying it adds a value to the result.
annualGenerationKwhYesExpected annual AC output of the PV system in kWh, as produced by the MIS 3002 estimation method. Required.
annualConsumptionKwhNoThe household's annual electricity consumption in kWh, from a bill based on actual meter readings. Defaults to 3500, which MGD 003 uses where the figure is unknown.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYes
methodYes
occupancyYes
batteryKwhYes
referencesYes
annualValueNoThe two added together.
exportedKwhYes
importedKwhYesUnits still bought from the grid over the year.
batteryGainKwhNoExtra units kept in the house each year because of the battery.
occupancyLabelYes
selfConsumedKwhYes
annualBillSavingNoValue of the units not bought, in pounds. Only present when an import price was given.
annualExportIncomeNoValue of the units exported, in pounds. Only present when an export price was given.
consumptionAssumedYesTrue when the 3500 kWh default stood in for a figure the caller did not give.
annualGenerationKwhYes
annualConsumptionKwhYes
withoutBatteryPercentYesWhat the same system would self-consume with no battery.
selfConsumptionPercentYesProportion of generation used in the home instead of exported.
gridIndependencePercentYesProportion of the household's own consumption met by the system instead of by the grid. Different from self-consumption, and usually smaller.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds substantial behavior beyond them: the provenance of the lookup tables (Loughborough half-hourly monitoring, modelled battery), the three indexing inputs, the documented defaults (3,500 kWh consumption, 'in_half_the_day' occupancy), the fact that supplying prices adds a pound value to the result, and that both self-consumption and grid independence are reported.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first sentence and the structure moves cleanly from what it does, to the data source, to the inputs, to caveats. It is a little long, with the monitoring-data flavor paragraph and the MCS/installer boilerplate doing less work than the parameter guidance, but nothing is confusing or misplaced.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description still tells the agent everything else it needs: defaults for omitted inputs, the units and meaning of battery capacity, the effect of supplying prices, and the distinction between the two reported metrics. For a six-parameter calculator this is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the prose adds genuine meaning: it explains why battery capacity must be usable (smaller than the headline figure), why generation should come from MIS 3002, and why consumption should come from a metered bill. It largely reinforces rather than extends the schema text, so it stops short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: estimating the proportion of a domestic PV system's annual output that is self-consumed versus exported. It even pre-empts a likely confusion by stating that self-consumption is not grid independence, which separates it from solar_pv_output (generation) and solar_pv_system_size (sizing) without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied rather than stated: the closing lines say these calculators are 'for understanding a system and checking a quotation.' There is no explicit when-to-use versus solar_pv_output or solar_pv_shading, no stated prerequisites (e.g. run solar_pv_output first), and no exclusions. The agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

solar_pv_shadingSolar PV shade factorA
Read-onlyIdempotent
Inspect

Convert a completed MCS sunpath shading assessment into a shade factor, using the procedure in MGD 005.

The MCS sunpath chart is divided into 84 segments, each worth one per cent of the year's useful irradiance. An assessor stands at the middle of where the array will go, plots what blocks the horizon onto the chart, and counts the segments covered. This tool takes that count and returns 1 minus the loss, which is the SF term in the MIS 3002 output estimate.

Objects within ten metres of the array are near shading and are assessed separately, from each affected part of the array, not from its middle. They can be listed here for the record, but MGD 005 is explicit that near shading has a considerable effect and should be avoided.

This tool does not perform the assessment. It does the arithmetic on an assessment somebody made.

Method from MGD 005. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
segmentsYesNumber of segments on the MCS sunpath chart that the obstruction touches, from 0 to 84. Each segment is worth one per cent of the year's irradiance.
nearObjectsNoObjects within ten metres of the middle of the array, each assessed from its own position on the array. Optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
notesYes
methodYes
verdictYes
segmentsYes
severityYesOne of 'none', 'slight', 'moderate' or 'severe'.
referencesYes
nearObjectsNo
shadeFactorYesThe multiplier to apply to an unshaded output estimate: 1 minus the loss.
shadingLossYesProportion of the year's irradiance blocked, as a decimal.
shadingLossPercentYes
totalModulesAffectedNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe, idempotent, closed-world read-only calculation, so the bar is lower. The description adds real context beyond them: it is a pure arithmetic step with no side effects, the method source is MGD 005, and nearObject entries are informational ('listed here for the record') rather than affecting the shade factor computation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded and clear, but the passage runs several paragraphs and includes assessor methodology and a trailing MCS-methods/certified-installer disclaimer that does not help an agent invoke the tool. Useful content is diluted by educational and legal padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and annotations cover the safety profile. For a two-parameter, domain-specific calculator the description supplies enough method and boundary context to call it correctly, with only minor gaps around how nearObjects influence the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters thoroughly, including the segment/1%-irradiance relationship. The description largely restates that domain fact rather than adding new parameter-level detail; the '1 minus the loss' framing ties to the result but not to specific arguments. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a precise verb and resource: converting a completed MCS sunpath shading assessment into a shade factor via the MGD 005 procedure. It explicitly clarifies the boundary ('This tool does not perform the assessment. It does the arithmetic on an assessment somebody made'), which cleanly separates it from the assessment and the other solar_pv calculators (output, self-consumption, size).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is clear: it applies only once an assessment has already been completed, and near-shading objects are assessed separately 'from each affected part of the array, not from its middle.' No sibling tool is named as an explicit alternative, so it stops short of full routing guidance, but the preconditions are well conveyed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

solar_pv_system_sizeWhat size solar system do I need?A
Read-onlyIdempotent
Inspect

Work out the solar PV system a UK home needs: the capacity in kWp, the number of panels, the battery to go with it, and what it would do to the electricity bill.

This runs the MCS arithmetic backwards. The other solar calculators here each answer one question about a system somebody has already specified. This one starts from what a household uses and arrives at the system that covers it, which is the question a householder actually has.

The chain is short and every link is published. Annual consumption sets the generation the array has to make. The MCS irradiance dataset behind MIS 3002 says what one kWp makes on that roof, which gives a capacity. Capacity divided by panel size gives a panel count, rounded up, because panels come whole. The MGD 003 tables then say how much of that generation the household will use and how much it will export.

Only the postcode and the roof direction are required. Direction is a compass point, not an angle: 'S', 'SE', 'SW', 'E', 'W', 'NE', 'NW' or 'N'. Give the annual consumption from a bill if it is known, since the 3,500 kWh default is only the British average. Shading can be described in words instead of measured, and a roof area caps the panel count where the roof is the constraint.

No cost is assumed. Installed prices vary far too much between houses to guess at, so a payback figure appears only when a cost from a real quotation is supplied.

Use this to size a system or to sanity-check a quotation. Use 'solar_pv_output' instead when the capacity is already known and the question is only what it will generate.

Method from MIS 3002. These calculators follow the published MCS methods, for understanding a system and checking a quotation. Anything that gets installed still needs a design and a site survey from a certified installer.

ParametersJSON Schema
NameRequiredDescriptionDefault
shadingNoHow much shading the roof has, in words: 'none', 'light', 'moderate' or 'heavy'. Defaults to 'none'. Use 'shadeFactor' instead if a proper MGD 005 assessment has been done.
postcodeYesUK postcode of the property, for example 'BS1 5TR'. Only the outward code matters. Required.
directionYesCompass point the roof faces: 'S', 'SE', 'SW', 'E', 'W', 'NE', 'NW' or 'N'. Required.
occupancyNoWeekday occupancy: 'home_all_day', 'in_half_the_day' or 'out_all_day'. Decides how much of the generation is used at home instead of exported. Defaults to 'in_half_the_day'.
panelWattsNoNameplate rating of a single panel in watts. Defaults to 440, which is typical of a current domestic module.
roofAreaM2NoShade-free roof area available for panels, in square metres. Optional; when given it caps the number of panels.
inclinationNoRoof pitch in degrees from horizontal. Defaults to 35, which is typical of a British pitched roof. A flat roof is 0.
shadeFactorNoA measured shade factor between 0.5 and 1 from an MGD 005 assessment. Overrides 'shading' when given.
installedCostNoThe installed cost of the system in pounds, from a quotation. Optional; supplying it gives a payback period. No cost is assumed if it is left out, because prices vary too much to guess at.
includeBatteryNoWhether to size a battery alongside the panels. Defaults to false.
batteryModuleKwhNoNominal capacity of one battery module in kWh. Batteries are sold in whole modules, so the answer rounds up to one. Defaults to 5.
exportPricePerKwhNoWhat the household is paid for a unit exported, in pounds. Optional.
annualConsumptionKwhNoThe household's electricity use in kWh a year, from a bill. Defaults to 3500, which is the British average and the figure MGD 003 falls back on, but a real bill sharpens the answer considerably.
electricityPricePerKwhNoWhat the household pays for a unit, in pounds. Optional; supplying it puts a value on the answer.

Output Schema

ParametersJSON Schema
NameRequiredDescription
zoneYes
notesYes
methodYes
panelsYes
batteryNo
shadingNoThe shading description used, when one was chosen in place of a measured factor.
directionYes
panelWattsYes
referencesYes
capacityKwpYesThe installed capacity: the panel count multiplied by the panel rating.
exportedKwhYes
importedKwhYesUnits still bought from the grid over a year.
inclinationYes
roofLimitedYesTrue when the roof area given, not consumption, set the size.
shadeFactorYes
paybackYearsNoInstalled cost divided by the annual benefit. Only present when a cost was supplied.
postcodeUsedYes
annualBenefitNoBill saving plus export income.
installedCostNo
newAnnualCostNo
occupancyLabelYes
selfConsumedKwhYes
annualBillSavingNo
idealCapacityKwpYesThe capacity that would exactly cover a year of consumption, before rounding up to whole panels.
roofAreaNeededM2Yes
currentAnnualCostNo
annualExportIncomeNo
consumptionAssumedYesTrue when the 3500 kWh default stood in for a figure the caller did not give.
annualGenerationKwhYes
annualConsumptionKwhYes
selfConsumptionPercentYes
specificYieldKwhPerKwpYesKk: the kWh a kWp produces in a year at this zone, pitch and orientation.
gridIndependencePercentYesThe share of the household's own use met by the system.
generationAsPercentOfUseYesAnnual generation as a percentage of annual consumption. Above 100 means the system makes more over a year than the house uses, though not at the same times.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (read-only, idempotent), yet the description adds substantial behavioral context: panels and battery modules round up because they are sold whole, no cost is assumed so payback appears only when a real quotation is supplied, defaults are the British averages, and the method provenance (MIS 3002, MGD 003, MGD 005) is disclosed. This is far beyond what the annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what the tool does and why it differs from siblings; the method paragraph and provenance are informative rather than filler. It is longer than strictly necessary ('The chain is short and every link is published' is flourish) but nothing is misleading or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 14-parameter, output-schema-backed calculator this is complete: required vs optional inputs, defaults, rounding behavior, the no-cost assumption, and the installer/survey caveat are all covered, and return values are left to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: direction is framed as a compass point rather than an angle, the 3,500 kWh default is tied to the British average/MGD 003 fallback, and installedCost is explained as the trigger for a payback figure. It stops short of adding syntax detail for every parameter, so not a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with scope: sizing a UK solar PV system (kWp capacity, panel count, battery, bill impact). It explicitly distinguishes itself from the other solar calculators as the one that works backwards from consumption rather than describing an already-specified system.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives both use cases ('size a system or sanity-check a quotation') and names the alternative with the condition that selects it: use 'solar_pv_output' when capacity is already known. No inference required.

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. 15 tool updates
    • First observedconnection_route
    • First observedget_document
    • First observedheat_pump_noise
    • First observedheat_pump_running_cost
    • First observedheat_pump_size
    • First observedhot_water_cylinder
    • First observedlist_calculators
    • First observedlist_documents
    • First observedradiator_flow_temperature
    • First observedroom_heat_loss
    • First observedsearch_documents
    • First observedsolar_pv_output
    • First observedsolar_pv_self_consumption
    • First observedsolar_pv_shading
    • First observedsolar_pv_system_size

Publisher details

Operator
Samyukti · Publisher source
Operator website
https://ampworth.com
Vendor relationship
Not applicable
Trust center
Not available
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    UK solar PV and heat pump calculators following the MCS standards, plus home energy guides, as a CLI and local MCP server.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server exposing UK financial adviser calculations (tax, IHT, pensions, portfolios) to any MCP-capable client.
    6
    MIT
  • A
    license
    C
    quality
    C
    maintenance
    27 deterministic engineering compliance and calculation tools for the built environment (data-centre PUE and EED, EPBD, NIS2, Eurocode, UAE compliance), callable by AI agents via MCP and REST API. Free tier; every result cites the governing standard.
    27
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources