# Ampworth calculators

> UK solar PV and heat pump calculators that follow the published MCS methods. Open, no key.

- name: com.ampworth/calculators
- version: 1.0.20261016
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 87/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/com.ampworth%2Fcalculators
- tools: https://api.protogrid.dev/v1/servers/com.ampworth%2Fcalculators/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "calculators": {
      "type": "http",
      "url": "https://ampworth.com/mcp/calculators"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-4d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 87/100 (new)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 11 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 12 of 12 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- warn `tools.token_cost`: about 9,649 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history recorded for 3 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 12, about 9,649 tokens to load them all
- tool set hash: 500bba9b6f9668ea7496e51d55455f2f
- tools last changed: 2026-10-17T11:11:45.647Z
- badge: [![protogrid quality](https://protogrid.dev/badge/com.ampworth/calculators.svg)](https://protogrid.dev/servers/com.ampworth/calculators)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-17 `solar_pv_system_size` changed (annotations)
- 2026-10-17 `solar_pv_shading` changed (annotations)
- 2026-10-17 `solar_pv_self_consumption` changed (annotations)
- 2026-10-17 `solar_pv_output` changed (annotations)
- 2026-10-17 `room_heat_loss` changed (annotations)
- 2026-10-17 `radiator_flow_temperature` changed (annotations)
- 2026-10-17 `list_calculators` changed (annotations)
- 2026-10-17 `hot_water_cylinder` changed (annotations)
- 2026-10-17 `heat_pump_size` changed (annotations)
- 2026-10-17 `heat_pump_running_cost` changed (annotations)

Full history: https://api.protogrid.dev/v1/servers/com.ampworth%2Fcalculators/changes

## Remotes

- https://ampworth.com/mcp/calculators (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (12)

- `connection_route`: 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.
- `heat_pump_noise`: 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.
- `heat_pump_running_cost`: 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.
- `heat_pump_size`: 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.
- `hot_water_cylinder`: 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.
- `list_calculators`: 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.
- `radiator_flow_temperature`: 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.
- `room_heat_loss`: 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.
- `solar_pv_output`: 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.
- `solar_pv_self_consumption`: 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.
- `solar_pv_shading`: 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.
- `solar_pv_system_size`: 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.
