# Ampworth (remote · ampworth.com)

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

- Trust score: 71/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- remote · `ampworth.com`: 71/100 (this document), [markdown](https://verifymcp.io/servers/com-ampworth-ampworth/ampworth.md), [page](https://verifymcp.io/servers/com-ampworth-ampworth/ampworth)

## Channel facts

- Endpoint: `https://ampworth.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.20261017`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 58/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 8052 tokens (~536/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 3/100
  - Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Ampworth MCP server?

Ampworth is a hosted endpoint at https://ampworth.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-ampworth-ampworth 'https://ampworth.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-ampworth-ampworth": {
      "url": "https://ampworth.com/mcp"
    }
  }
}
```

### VS Code

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

### Codex

```toml
[mcp_servers.com-ampworth-ampworth]
url = "https://ampworth.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-ampworth-ampworth": {
      "type": "remote",
      "url": "https://ampworth.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-ampworth-ampworth --url 'https://ampworth.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-ampworth-ampworth:
    url: "https://ampworth.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-ampworth-ampworth": {
      "Transport": "http",
      "Url": "https://ampworth.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-ampworth-ampworth -t streamable-http -u 'https://ampworth.com/mcp'
```

### Other

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

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-18 (score 71, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-10-17 (score 70)

First indexed and scored.

## MCP tools (15)

### `connection_route` (~647 tokens)

Network 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.

Input parameters:

- `devices` (null|array, required): Every 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.
- `exportLimitKw` (number): The 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 w…
- `otherInstallationsNearby` (boolean): True 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 appl…
- `phases` (integer): The supply: 1 for single phase, which is almost every British house, or 3 for three phase. Defaults to 1.

Output parameters:

- `alternatives` (null|array): Changes that would put the installation on an easier route, and what each would cost.
- `devices` (null|array)
- `exportLimitA` (number): The proposed export limit converted to amps per phase.
- `g98LimitKw` (number): 16 A per phase at 230 V: 3.68 kW on a single phase supply, 11.04 kW on three phase.
- `method` (string)
- `notes` (null|array)
- `phases` (null|array): Registered capacity on each phase, in kW and in amps at the nominal 230 V the recommendations use.
- `references` (null|array)
- `route` (object)
- `totalKw` (number): Registered capacity of every device added together.
- `verdict` (string)
- `warning` (string): Which route applies is arithmetic; what the network operator decides is not. Always present.
- `worstPhaseA` (number): Current on the most heavily loaded phase. This is the figure the thresholds are tested against.

### `get_document` (~133 tokens)

Read one document in full

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.

Input parameters:

- `slug` (string, required): The document's slug, from search_documents or list_documents. Required.

Output parameters:

- `apiUrl` (string): The same document as JSON.
- `calculators` (null|array): Ids of calculators on this site that do the arithmetic described here.
- `category` (string): The subject key: 'basics', 'heat-pumps', 'solar-pv', 'batteries', 'standards' or 'paperwork'.
- `categoryLabel` (string)
- `featured` (boolean)
- `headings` (null|array): The in-page sections.
- `kind` (string): 'guide', 'article' or 'faq'.
- `level` (string): Articles only: beginner, intermediate or advanced.
- `levelLabel` (string)
- `perspective` (string): Guides only: who the guide is written for.
- `perspectiveLabel` (string)
- `questions` (null|array): For a set of questions, each question with its answer as Markdown.
- `readingMinutes` (integer)
- `related` (null|array): Documents worth reading next.
- `slug` (string)
- `sources` (null|array): The MCS documents this draws on. Cite these, not this site, when the point is a requirement of a standard.
- `summary` (string)
- `tags` (null|array)
- `text` (string): The 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.
- `title` (string)
- `updated` (string): The date of the last change, as YYYY-MM-DD.
- `url` (string): The page, which is the address to cite.

### `heat_pump_noise` (~403 tokens)

Heat pump noise assessment

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.

Input parameters:

- `units` (null|array, required): The heat pump or heat pumps being assessed, each with its own distance and barrier to this assessment position. At least one is required.

Output parameters:

- `compliant` (boolean): True when the level is at or below the limit.
- `headroom` (number): Decibels below the limit. Negative when the limit is exceeded.
- `limit` (number): The permitted development noise limit, 37.0 dB(A).
- `method` (string)
- `notes` (null|array)
- `references` (null|array)
- `remedies` (null|array): What would bring a failing position within the limit.
- `soundPressureLevel` (number): Combined A-weighted sound pressure level at the assessment position, in dB(A), rounded to one decimal place as MCS 020 requires.
- `units` (null|array)
- `verdict` (string)

### `heat_pump_running_cost` (~645 tokens)

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.

Input parameters:

- `annualFuelUse` (number, required): How 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.
- `applianceEfficiency` (number): Seasonal efficiency of the existing appliance, as a decimal. Defaults to the typical figure for the fuel.
- `electricityPricePerKwh` (number, required): Price of a unit of electricity, in pounds. Required.
- `electricityStandingChargePerDay` (number): Daily electricity standing charge in pounds. It is paid either way, so it only changes the answer if the tariff changes with the heat pump.
- `fuel` (string): The fuel being replaced: 'mains_gas', 'oil', 'lpg', 'electricity' or 'coal'. Defaults to 'mains_gas'.
- `fuelPricePerUnit` (number, required): Price of one unit of that fuel, in pounds. Required.
- `fuelStandingChargePerDay` (number): Daily standing charge for that fuel in pounds, if it has one. A house that removes its gas boiler can usually stop paying this.
- `nonHeatingFraction` (number): Share 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.
- `scop` (number, required): Seasonal 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.

Output parameters:

- `annualDifference` (number): Positive when the heat pump costs less.
- `annualHeatDemandKwh` (number): Useful heat the house actually needs in a year, after the existing appliance's losses are taken off its fuel input.
- `applianceEfficiency` (number)
- `breakEvenPriceRatio` (number): How 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.
- `breakEvenScop` (number): The seasonal efficiency at which the heat pump costs exactly what the current system costs. Below this it costs more.
- `costPerKwhHeatHeatPump` (number): What a unit of delivered heat would cost from the heat pump.
- `costPerKwhHeatNow` (number): What a unit of delivered heat costs today, in pounds.
- `currentAnnualCost` (number)
- `fuel` (object)
- `heatPumpAnnualCost` (number)
- `heatPumpElectricityKwh` (number): Units of electricity the heat pump would use in a year.
- `method` (string)
- `notes` (null|array)
- `percentDifference` (number)
- `references` (null|array)
- `scop` (number)
- `verdict` (string)

### `heat_pump_size` (~1200 tokens)

What size heat pump do I need?

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. Any…

Input parameters:

- `annualFuelUse` (number): How 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…
- `applianceEfficiency` (number): Seasonal efficiency of the existing boiler as a decimal. Defaults to a realistic figure for the fuel instead of the one on the badge.
- `bedrooms` (integer): Number of bedrooms, for the hot water demand. Defaults to 3.
- `designBasis` (string): 'a' for the 99% outside design temperature or 'b' for the colder 99.6% one. Defaults to 'a'.
- `electricityPricePerKwh` (number): Price of a unit of electricity, in pounds. Optional.
- `floorAreaM2` (number): Total heated floor area in square metres, over all storeys. Used only when no fuel figure is given.
- `flowTemperature` (number): The 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.
- `fuel` (string): The fuel the house is heated with now: 'mains_gas', 'oil', 'lpg', 'electricity' or 'coal'. Defaults to 'mains_gas'.
- `fuelPricePerUnit` (number): Price of one unit of the current fuel, in pounds. Optional; supplying it and the electricity price gives a running cost comparison.
- `insulation` (string): How well insulated the building is: 'solid', 'cavity_unfilled', 'insulated', 'modern' or 'very_efficient'. Used only with floorAreaM2.
- `internalTemp` (number): Whole-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.
- `location` (string, required): Nearest of the eight tabulated locations: 'belfast', 'birmingham', 'cardiff', 'edinburgh', 'glasgow', 'london', 'manchester' or 'plymouth'. Required.
- `nonHeatingFraction` (number): Share 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.
- `occupants` (integer): Number of people living there, if known. MIS 3005-D takes the greater of this and bedrooms plus one.
- `propertyType` (string): 'detached', 'semi', 'end_terrace', 'mid_terrace', 'flat' or 'bungalow'. Used only with floorAreaM2. Defaults to 'semi'.
- `quotedHeatPumpKw` (number): The output of a heat pump somebody has quoted, in kW. Optional; supplying it says whether that size looks plausible against this estimate.
- `scop` (number): Seasonal 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.
- `summerMonthFuelUse` (number): Fuel 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 re…

Output parameters:

- `annualDifference` (number): Positive when the heat pump costs less.
- `annualHeatDemandKwh` (number)
- `annualHotWaterKwh` (number)
- `annualSpaceHeatingKwh` (number)
- `basis` (string)
- `basisNote` (string)
- `breakEvenScop` (number): The seasonal efficiency at which the two cost the same.
- `currentAnnualCost` (number)
- `dailyHotWaterLitres` (number)
- `designBasis` (string)
- `externalDesignTemp` (number)
- `flowTemperature` (number)
- `flowTemperatureCosts` (null|array)
- `heatLossCoefficientWPerK` (number): How many watts the building loses for every degree between inside and outside. The figure everything else follows from.
- `heatPumpAnnualCost` (number)
- `heatPumpElectricityKwh` (number)
- `heatingDegreeDays` (number)
- `hotWaterFromSummerUse` (boolean): True when a summer month's fuel separated hot water from space heating, instead of an allowance standing in for it.
- `internalTemp` (number)
- `location` (object)
- `method` (string)
- `notes` (null|array)
- `peakHeatLossKw` (number): The 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.
- `quotedSizeCheck` (null|object)
- `references` (null|array)
- `scop` (number)
- `scopAssumed` (boolean): True when an indicative figure stood in for a real one from the product directory.
- `temperatureDifference` (number)
- `warning` (string)
- `wattsPerSquareMetre` (number): Peak load per square metre of floor, where a floor area was given. A useful sanity check.

### `hot_water_cylinder` (~489 tokens)

Hot water demand and cylinder size

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.

Input parameters:

- `bathrooms` (integer): Number of bathrooms with a bath. Defaults to 1.
- `bedrooms` (integer, required): Number of bedrooms in the property. Required.
- `coldWaterTemp` (number): Incoming mains temperature in Celsius. Defaults to 10.
- `heatPumpOutputKw` (number): Heat 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.
- `occupants` (integer): Number 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.
- `storageTemp` (number): Temperature 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.

Output parameters:

- `bathrooms` (integer)
- `bedrooms` (integer)
- `coldWaterTemp` (number)
- `dailyDemandLitres` (number): Average daily hot water demand: 45 litres for each of N.
- `designOccupancy` (integer): N in the MIS 3005-D formula: the greater of bedrooms plus one and the known occupants.
- `energyPerDayKwh` (number): Heat needed each day to raise the daily demand from mains temperature to storage temperature.
- `heatPumpOutputKw` (number)
- `method` (string)
- `minimumCylinderLitres` (integer): The BS 6700 minimum for this number of bathrooms and this heat pump output, before the allowance MGD 007 adds for extra bathing capacity.
- `notes` (null|array)
- `occupancyBasis` (string): Which of the two gave the larger figure.
- `occupants` (integer)
- `recommendedCylinderLitres` (integer): Cylinder volume from the BS 6700 guidance in MGD 007, given the number of baths and the heat pump output.
- `references` (null|array)
- `reheatMinutes` (number): Roughly how long the heat pump takes to bring the whole cylinder up from cold, ignoring standing losses.
- `storageTemp` (number)

### `list_calculators` (~127 tokens)

List the calculators and their reference data

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.

Output parameters:

- `calculators` (null|array)
- `notice` (string)
- `reference` (object)

### `list_documents` (~312 tokens)

List what the documents cover

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.

Input parameters:

- `category` (string): Filter by category: 'heat-pumps', 'solar-pv', 'batteries', 'standards' or 'paperwork'. Optional.
- `kind` (string): Filter by kind: 'guide', 'article' or 'faq'. Optional.
- `level` (string): Articles 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.
- `perspective` (string): Guides 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 tec…

Output parameters:

- `categories` (null|array)
- `count` (integer)
- `documents` (null|array)
- `levels` (null|array): How much articles assume of the reader. Match it to the person asking.
- `note` (string)
- `perspectives` (null|array): Who the guides are written for. Match the reader before quoting one at them.

### `radiator_flow_temperature` (~486 tokens)

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.

Input parameters:

- `radiatorOutputW` (number, required): Rated output of the radiator or radiators in that room, in watts, at the catalogue temperature. Required.
- `ratedAtDeltaT` (number): The 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.
- `roomHeatLossW` (number, required): The room's design heat loss in watts, from a room-by-room heat loss calculation. Required.
- `roomTemp` (number): Internal design temperature of the room in Celsius. Defaults to 21.
- `systemDeltaT` (number): Designed 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.

Output parameters:

- `flowTemperature` (number): The flow temperature the heat pump must produce, in Celsius.
- `meanWaterTemp` (number): Average of flow and return temperature needed to deliver the room's heat loss through this radiator.
- `method` (string)
- `notes` (null|array)
- `outputAtDeltaT50` (number): The radiator's output restated at a mean-water-to-air difference of 50 K, so oversize factors are comparable between catalogues.
- `outputAtDesignFlowW` (number): What this radiator actually gives at the flow temperature worked out here.
- `oversizeFactor` (number): Radiator output at 50 K divided by the room's heat loss. The single number the Heat Emitter Guide turns into a star rating.
- `radiatorOutputForFiveStarsW` (number): The radiator output at 50 K that would reach a five star rating, meaning a 40 degree flow temperature.
- `radiatorOutputW` (number)
- `ratedAtDeltaT` (number)
- `references` (null|array)
- `returnTemperature` (number)
- `roomHeatLossW` (number)
- `starRating` (integer): Temperature star rating from the MCS Heat Emitter Guide, 0 to 6. More stars mean a lower flow temperature and a more efficient system.
- `starRatingLabel` (string)
- `verdict` (string)

### `room_heat_loss` (~731 tokens)

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.

Input parameters:

- `airChangesPerHour` (number): How 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.
- `ceilingHeightM` (number): Floor to ceiling height in metres. Defaults to 2.4.
- `designBasis` (string): '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'.
- `elements` (null|array, required): Every surface through which the room loses heat. At least one is required.
- `floorAreaM2` (number, required): Floor area of the room in square metres. Required, and used with the ceiling height to work out the ventilation loss.
- `internalTemp` (number): Internal 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 an…
- `location` (string, required): Which of the eight tabulated locations the property is nearest: 'belfast', 'birmingham', 'cardiff', 'edinburgh', 'glasgow', 'london', 'manchester' or 'plymouth'. Required.
- `roomName` (string): A name for the room.
- `roomType` (string): Which 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 'li…

Output parameters:

- `designBasis` (string)
- `elements` (null|array)
- `externalDesignTemp` (number)
- `fabricLossW` (number)
- `fabricSharePercent` (number)
- `internalTemp` (number)
- `largestLoss` (string): Which single element loses most, which is where insulating first pays best.
- `location` (object)
- `method` (string)
- `notes` (null|array)
- `references` (null|array)
- `roomName` (string)
- `roomType` (string)
- `roomVolumeM3` (number)
- `temperatureDifference` (number): Internal minus external design temperature, in kelvin. The figure most of the fabric loss is worked out against.
- `totalHeatLossW` (number): The room's design heat loss in watts. This is what the emitter in the room has to deliver on the coldest day.
- `ventilationLossW` (number)
- `ventilationSharePercent` (number)
- `wattsPerSquareMetre` (number): Heat loss divided by floor area. A useful sanity check: a well insulated room lands near 40, a poor one well over 100.

### `search_documents` (~236 tokens)

Search the documents

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.

Input parameters:

- `limit` (integer): How many results to return, 1 to 25. Defaults to 8.
- `query` (string, required): What 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 parameters:

- `count` (integer)
- `note` (string)
- `query` (string)
- `results` (null|array)

### `solar_pv_output` (~487 tokens)

Solar PV annual 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.

Input parameters:

- `capacityKwp` (number, required): Total installed capacity in kilowatts peak: the sum of the nameplate watts of every module, divided by 1000. Required.
- `inclination` (number, required): Pitch of the array in degrees from horizontal. A flat roof is 0 and a wall-mounted array is 90. Required.
- `orientation` (number, required): Degrees 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.
- `postcode` (string): UK postcode of the installation, for example 'BS1 5TR'. Only the outward code matters. Give this or 'zone'.
- `shadeFactor` (number): Proportion of output left after shading, between 0.5 and 1. Use 1 for a clear horizon. Defaults to 1.
- `zone` (string): MCS postcode zone code, for example '5E'. An alternative to 'postcode' when the zone is already known.

Output parameters:

- `annualOutputKwh` (number): The estimate: capacity multiplied by Kk multiplied by the shade factor.
- `bestCaseAnnualKwh` (number): What 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.
- `bestCaseInclination` (number): The pitch that yields most at this zone when facing due south.
- `bestCaseOrientation` (number): The orientation that yields most at this pitch and zone. Almost always due south.
- `capacityKwp` (number)
- `inclination` (number): Inclination after rounding to the nearest degree, as the method requires.
- `method` (string)
- `notes` (null|array)
- `orientation` (number): Orientation after rounding to the nearest five degrees, as the method requires.
- `percentOfBestCase` (number): The estimate as a percentage of that best case.
- `postcodeUsed` (string): The postcode the zone was resolved from, when one was given.
- `references` (null|array)
- `shadeFactor` (number)
- `shadingLossKwh` (number)
- `specificYieldKwhPerKwp` (number): Kk: the kWh a single kWp produces in a year at this zone, pitch and orientation, before shading.
- `unshadedOutputKwh` (number): What the same array would produce with a clear horizon. Equals the estimate when the shade factor is 1.
- `zone` (object)

### `solar_pv_self_consumption` (~546 tokens)

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.

Input parameters:

- `annualConsumptionKwh` (number): The 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.
- `annualGenerationKwh` (number, required): Expected annual AC output of the PV system in kWh, as produced by the MIS 3002 estimation method. Required.
- `batteryKwh` (number): Usable capacity of any battery in kWh, which is smaller than the headline capacity. Omit or use 0 for no battery.
- `exportPricePerKwh` (number): What the household is paid for a unit exported, in pounds. Optional.
- `importPricePerKwh` (number): What the household pays for a unit of grid electricity, in pounds. Optional; supplying it adds a value to the result.
- `occupancy` (string): Weekday 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.

Output parameters:

- `annualBillSaving` (number): Value of the units not bought, in pounds. Only present when an import price was given.
- `annualConsumptionKwh` (number)
- `annualExportIncome` (number): Value of the units exported, in pounds. Only present when an export price was given.
- `annualGenerationKwh` (number)
- `annualValue` (number): The two added together.
- `batteryGainKwh` (number): Extra units kept in the house each year because of the battery.
- `batteryKwh` (number)
- `consumptionAssumed` (boolean): True when the 3500 kWh default stood in for a figure the caller did not give.
- `exportedKwh` (number)
- `gridIndependencePercent` (number): Proportion of the household's own consumption met by the system instead of by the grid. Different from self-consumption, and usually smaller.
- `importedKwh` (number): Units still bought from the grid over the year.
- `method` (string)
- `notes` (null|array)
- `occupancy` (string)
- `occupancyLabel` (string)
- `references` (null|array)
- `selfConsumedKwh` (number)
- `selfConsumptionPercent` (number): Proportion of generation used in the home instead of exported.
- `withoutBatteryPercent` (number): What the same system would self-consume with no battery.

### `solar_pv_shading` (~310 tokens)

Solar PV shade factor

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.

Input parameters:

- `nearObjects` (null|array): Objects within ten metres of the middle of the array, each assessed from its own position on the array. Optional.
- `segments` (integer, required): Number 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.

Output parameters:

- `method` (string)
- `nearObjects` (null|array)
- `notes` (null|array)
- `references` (null|array)
- `segments` (integer)
- `severity` (string): One of 'none', 'slight', 'moderate' or 'severe'.
- `shadeFactor` (number): The multiplier to apply to an unshaded output estimate: 1 minus the loss.
- `shadingLoss` (number): Proportion of the year's irradiance blocked, as a decimal.
- `shadingLossPercent` (number)
- `totalModulesAffected` (integer)
- `verdict` (string)

### `solar_pv_system_size` (~939 tokens)

What size solar system do I need?

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.

Input parameters:

- `annualConsumptionKwh` (number): The 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.
- `batteryModuleKwh` (number): Nominal capacity of one battery module in kWh. Batteries are sold in whole modules, so the answer rounds up to one. Defaults to 5.
- `direction` (string, required): Compass point the roof faces: 'S', 'SE', 'SW', 'E', 'W', 'NE', 'NW' or 'N'. Required.
- `electricityPricePerKwh` (number): What the household pays for a unit, in pounds. Optional; supplying it puts a value on the answer.
- `exportPricePerKwh` (number): What the household is paid for a unit exported, in pounds. Optional.
- `inclination` (number): Roof pitch in degrees from horizontal. Defaults to 35, which is typical of a British pitched roof. A flat roof is 0.
- `includeBattery` (boolean): Whether to size a battery alongside the panels. Defaults to false.
- `installedCost` (number): The 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.
- `occupancy` (string): Weekday 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'.
- `panelWatts` (number): Nameplate rating of a single panel in watts. Defaults to 440, which is typical of a current domestic module.
- `postcode` (string, required): UK postcode of the property, for example 'BS1 5TR'. Only the outward code matters. Required.
- `roofAreaM2` (number): Shade-free roof area available for panels, in square metres. Optional; when given it caps the number of panels.
- `shadeFactor` (number): A measured shade factor between 0.5 and 1 from an MGD 005 assessment. Overrides 'shading' when given.
- `shading` (string): How 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.

Output parameters:

- `annualBenefit` (number): Bill saving plus export income.
- `annualBillSaving` (number)
- `annualConsumptionKwh` (number)
- `annualExportIncome` (number)
- `annualGenerationKwh` (number)
- `battery` (null|object)
- `capacityKwp` (number): The installed capacity: the panel count multiplied by the panel rating.
- `consumptionAssumed` (boolean): True when the 3500 kWh default stood in for a figure the caller did not give.
- `currentAnnualCost` (number)
- `direction` (object)
- `exportedKwh` (number)
- `generationAsPercentOfUse` (number): Annual 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.
- `gridIndependencePercent` (number): The share of the household's own use met by the system.
- `idealCapacityKwp` (number): The capacity that would exactly cover a year of consumption, before rounding up to whole panels.
- `importedKwh` (number): Units still bought from the grid over a year.
- `inclination` (number)
- `installedCost` (number)
- `method` (string)
- `newAnnualCost` (number)
- `notes` (null|array)
- `occupancyLabel` (string)
- `panelWatts` (number)
- `panels` (integer)
- `paybackYears` (number): Installed cost divided by the annual benefit. Only present when a cost was supplied.
- `postcodeUsed` (string)
- `references` (null|array)
- `roofAreaNeededM2` (number)
- `roofLimited` (boolean): True when the roof area given, not consumption, set the size.
- `selfConsumedKwh` (number)
- `selfConsumptionPercent` (number)
- `shadeFactor` (number)
- `shading` (null|object): The shading description used, when one was chosen in place of a measured factor.
- `specificYieldKwhPerKwp` (number): Kk: the kWh a kWp produces in a year at this zone, pitch and orientation.
- `zone` (object)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-ampworth-ampworth/ampworth#diagnostics

## Score history

- 2026-10-18: 71
- 2026-10-17: 70

## Common questions

### What is the Ampworth MCP server?

Ampworth is an MCP server listed in the public MCP registry as com.ampworth/ampworth. UK solar PV and heat pump calculators, with guides, on one server. Follows the MCS methods. No key. This page covers its hosted endpoint (https://ampworth.com/mcp).

### Is the Ampworth MCP server safe to use?

Ampworth scores 71 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Ampworth MCP server expose?

Ampworth exposes 15 tools: connection_route, get_document, heat_pump_noise, heat_pump_running_cost, heat_pump_size, and 10 more. Their descriptions and schemas cost roughly 7,691 tokens of context every time the server is loaded.

### Does the Ampworth MCP server require authentication?

No. We connected to Ampworth without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Ampworth MCP server still maintained?

Ampworth is still listed as active in the MCP registry. We last reached this channel on 18 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://ampworth.com/mcp
- Website: https://ampworth.com/developers
- Changelog RSS feed: https://verifymcp.io/servers/com-ampworth-ampworth/ampworth.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-ampworth-ampworth/ampworth.json
- HTML version of this page: https://verifymcp.io/servers/com-ampworth-ampworth/ampworth
