Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

The New Engineer — HVAC

REMOTE · THENEWENGINEER.COM

IFC models: duct networks, circuits, pressure drop. EN 12828 vessels, EN 378, Swiss refrigerants.

0 this week 77 Trust /100

Last scanned (22 hours ago)

Scores higher than 69% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Cloud Infrastructure

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Endpoint Security74
Transport & Reachability100
Schema Quality & AI Usability32
  • 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Fail
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 12926 tokens (~994/item across 13 items; 11 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (27% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
  • Supports UI / widget rendering.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 0
    • Tool “apply_ifc_rules” rewrote its description, which is the text the model reads security
    • Tool “read_ifc_overview” rewrote its description, which is the text the model reads security
    • Tool “trace_duct_circuits” rewrote its description, which is the text the model reads security
  • 3 Nov 26 0
    • Tool “trace_duct_circuits” rewrote its description, which is the text the model reads security
  • 2 Nov 26 0
    • Tool “read_ifc_overview” rewrote its description, which is the text the model reads security
    • Tool “trace_duct_circuits” rewrote its description, which is the text the model reads security
  • 31 Oct 26 0
    • Tool “apply_ifc_rules” rewrote its description, which is the text the model reads security
  • 30 Oct 26 0
    • Tool “apply_ifc_rules” rewrote its description, which is the text the model reads security
    • Tool “read_ifc_overview” rewrote its description, which is the text the model reads security
    • “read_ifc_overview” added an optional parameter “families” cosmetic
    • “read_ifc_overview” added an optional parameter “property_catalogue” cosmetic
  • 24 Oct 26 0
    • Tool “apply_ifc_rules” rewrote its description, which is the text the model reads security
    • Tool “read_ifc_overview” rewrote its description, which is the text the model reads security
    • Tool “trace_duct_circuits” rewrote its description, which is the text the model reads security
  • 23 Oct 26 0
    • Stability: 0.97 → pass security
    • Tool “apply_ifc_rules” rewrote its description, which is the text the model reads security
    • Tool “read_ifc_overview” rewrote its description, which is the text the model reads security
    • Tool “trace_duct_circuits” rewrote its description, which is the text the model reads security
  • 22 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Probed https://thenewengineer.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=thenewengineer.com CN=YE2,O=Let's Encrypt,C=US 23 Sept 2026 22 Dec 2026 ECDSA 256 ECDSA-SHA384 678d05911f35cdd01dd4cbdbc8bf9dc9940
SANs: *.thenewengineer.com, thenewengineer.com
CN=YE2,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 4df3b15dd6c0784c507cd37b58e6f115
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of thenewengineer.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
thenewengineer.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://thenewengineer.com/mcp Verified 200
http (plaintext) http://thenewengineer.com/mcp HTTPS enforced 301 https://thenewengineer.com/mcp
MCP tools · 11 exposed · ~12,745 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
apply_ifc_rules ~1,518

Turn what you read in the overview into rules the tool replays on EVERY piece of the model, including the ones you were never shown. NOT NEEDED ON A MODEL ALREADY TREATED: when read_ifc_overview returns 'designation_existante', the units and fans are already designated - reuse them. Posting rules REPLACES that designation entirely: do it only when the user asks to start again, or when the designation plainly contradicts what they say. THIS IS HOW THE TOOL LEARNS A MODEL. read_ifc_overview gives you one line per family of types, not one per piece. You answer with RULES on those groups, and this tool applies them to the three thousand pieces. You never give a verdict piece by piece: the result stays deterministic because a program, not you, does the matching. THEN READ THE ANSWER BACK, AND EXPECT TO POST AGAIN. The answer gives every group with the role your rules gave it and how many pieces that is. A rule that is too wide shows up on one line — « Gaine rectangulaire cadree, 471 pieces, centrale_de_traitement_d_air » is a rule that turned every duct into an air handling unit. Narrow it and post again. Calling this tool costs nothing and may be repeated as often as you need. WHAT NEEDS A ROLE, AND WHAT DOES NOT. Plain ducts and fittings need none: they are network by nature, and the answer marks them segment_ou_raccord so you can see at a glance whether a rule caught them by mistake. What needs a role is everything else — air handling units, fans, fire dampers, balancing dampers, silencers, louvres, diffusers — plus whatever must be kept OUT of the network, such as access zones, equipment plinths or damper motors. THREE ROLE NAMES ARE FIXED, because circuits start from them: give air handling units, monoblocs and ventilation casings the role centrale_de_traitement_d_air, fans the role ventilateur, and SMOKE EXHAUST fans - including fans that bring compensation air for smoke exhaust - the role ventilateur_desenfumage - exactly these words. A smoke fan runs only i…

NameTypeReqDescription
rulesobjectyesYour rules, as a JSON object. The only required key is roles.liste: an ORDERED list, FIRST MATCH WINS, most specific first. Each entry is {"role": "a_name", "si_un_de": [conditions]} and may also car…
tokenstringyesThe model token, from ifc_upload_result or from the link the user pasted.

No output schema declared.

No examples provided.

check_en378_zones ~1,066

DETERMINISTIC: the same inputs always give the same result — from any AI, on any day. Figures come from the standard's tables and formulas, never from a language model's estimate. Every step is auditable. EN 378 applied to BUILDING projects, volume by volume. An installation does not occupy one room but several: the machine, the rooms crossed by refrigerant lines, the rooms served by indoor units. Each volume is classified on its own — access category (a/b/c) and location class (I–IV) — and each classification calls for its own measures. The tool answers per volume, never as a single verdict. It returns, for every volume: its classification and why, the charge limit from Tables C.1 and C.2 of EN 378-1 (with the C.2 formula computed when the table calls for it), whether the charge exceeds it, the EN 378-3 measures that follow, the applicable texts (EN 378-1 to -4, EN IEC 60079-10-1, SUVA 66139 and 2153) and the ventilation flow rates. FOUR CONFIGURATIONS COVER ALMOST EVERY BUILDING PROJECT. Bring the user's case back to one of them wherever possible: machine_en_local_technique chiller or heat pump, all refrigerant inside the machine, standing in a plant room -> c III enceinte_accessible_fermee all refrigerant inside a walk-in ventilated enclosure that stays closed even for maintenance -> the enclosure is c III, the room around it carries no requirement enceintes_inaccessibles one or more units, each in a manufacturer's non-accessible ventilated enclosure -> TWO analyses: the enclosure in operation (class IV, the manufacturer sizes and justifies it, ask him for the enclosure ventilation), and the plant room with the enclosure OPEN for maintenan…

NameTypeReqDescription
acces_local––Access category of the plant room. Omit: 'c', authorised persons only.
acces_locaux_desservis––Access category of the rooms crossed or served: 'b' for offices, laboratories, workplaces; 'a' for hotels, schools, shops, hospitals, homes.
charge_kg––Refrigerant charge of the largest circuit, in kg.
configuration––How the installation is laid out. Omit if unknown: the tool returns the question to ask.
languagestring–The user's language. Texts are in French: translate them.
pose––How the indoor unit is mounted: on the floor, wall, window or ceiling. Formula C.2 depends on it.
refrigerantstringyesRefrigerant as the user wrote it: 'R-32', 'R410A', 'R290', 'R717', 'propane'…
surface_local_desservi_m2––Floor area of that room, in m². Formula C.2 needs it; without it the tool returns the minimum area required instead.
volume_enceinte_m3––Volume of the ventilated enclosure, in m³.
volume_local_desservi_m3––Volume of the smallest room crossed or served by an indoor unit, in m³.
volume_local_m3––Volume of the plant room, in m³.

Structured output declared, but exposes no named fields.

No examples provided.

check_refrigerant_switzerland ~1,321

DETERMINISTIC: the same inputs always give the same result — from any AI, on any day. Figures come from the regulation's annexes and thresholds, never from a language model's estimate. Every step is auditable. Swiss refrigerant regulation check (ORRChim / ChemRRV annex 2.10, OFEV synthesis of May 2026, rules adopted 29.10.2025) plus refrigerant data from EN 378-1 Annex E: GWP (AR4, the ORRChim basis), ODP, LFL, safety class, practical limit. Returns, for a given refrigerant and installation: the date from which machines using it can no longer be placed on the Swiss market (import from 01.01.2027, sale to third parties from 01.07.2027), the date from which filling with virgin refrigerant is banned, the period when only reclaimed refrigerant may be used, and the date from which all filling is banned. SCOPE: heating, air conditioning, building cooling and process cooling, data centres included. NOT food refrigeration, cold rooms or deep freezing: those are a different trade, and the tool declines them instead of answering. Use it whenever the user asks about a refrigerant in Switzerland — its GWP / PRG, flammability, whether a chiller, heat pump, split, VRF or cold room using it may still be sold or refilled — in any language: fluide frigorigène, Kältemittel, refrigerante, refrigerant, R-32, R-410A, R-290, CO2, NH3... The answer depends on the installation. The regulation distinguishes: use (building cooling, food refrigeration medium / low temperature / combined / deep freezing, process cooling, heat pump mainly for heating, ice rink), cooling capacity Q0K or heating capacity Q0H, self-contained (factory-built packaged unit) or not, split, direct expansion (incl. VRF), secondary coolant loop (chilled water / brine), air-cooled condenser and refrigerant charge. THIS TOOL ANSWERS ONE QUESTION ONLY: may the refrigerant still be sold and refilled in Switzerland, and until when. It says NOTHING about safety in the room - charge limits, machine room, detection, ventil…

NameTypeReqDescription
air_cooled_condenser––True if heat is rejected through an air-cooled condenser (heat pump: its air heat exchanger). Omit if unknown.
application––Use of the installation: 'climatisation_batiment' (building cooling, incl. reversible heat pump used mainly for cooling), 'froid_alimentaire_positif' (food/perishables, use temp ≥ 0 °C), 'froid_alime…
cooling_capacity_kw––Peak useful cooling capacity Q0K, kW. Omit if unknown.
direct_expansion––True if the refrigerant evaporates directly in the room units / evaporators (DX, incl. VRF); False if it cools a water or brine loop. Omit if unknown.
evaporator_count––Number of evaporators.
family_if_unlisted––ONLY with gwp_if_unlisted: 'naturel' (natural), 'stable' (contains any HFC/PFC — e.g. R-454B, R-454C, R-455A), 'hfo' (only HFO and/or natural components).
gwp_if_unlisted––ONLY if a previous call said the refrigerant is not in the database: its GWP (AR4) from the manufacturer's datasheet, given by the user.
heat_recovery––True if rejected heat is recovered.
heating_capacity_kw––Peak useful heating capacity Q0H, kW (heat pumps). Omit if unknown.
languagestring–The user's language, for labels. French or English text; translate for de/it/es.
odp_if_unlisted––ONLY with gwp_if_unlisted: its ODP (0 for HFC/HFO).
refrigerantstringyesRefrigerant designation as the user wrote it: 'R-32', 'R410A', 'R1234ze', 'CO2', 'propane'…
refrigerant_charge_kg––Total refrigerant charge, kg. Omit if unknown.
refrigerant_circuit_count––Number of refrigerant circuits.
secondary_circuit––True if cold is distributed through a secondary coolant loop (chilled water, glycol, brine). Omit if unknown.
self_contained––True if 'autonome': factory-built circuits in a frame/casing and no gas-carrying part connected on site (packaged chiller, monobloc heat pump, rooftop). Omit if unknown.
simultaneous_heating_cooling––True for simultaneous heating and cooling with at least 2 air heat exchangers.
split––True for a split system (indoor/outdoor units linked by refrigerant lines laid on site). Omit if unknown.

Structured output declared, but exposes no named fields.

No examples provided.

ifc_upload_result ~57

Where the upload stands. When `state` is `depose`, `token` is the token to pass to read_ifc_networks.

NameTypeReqDescription
upload_tokenstringyesThe upload_token returned by open_ifc_upload.

No output schema declared.

No examples provided.

name_ifc_networks ~331

Apply the names you propose, and get back the updated report. THE NAMES ARE YOURS, THE NETWORKS ARE NOT. You are naming what the tool measured; you are not changing what it measured. Nothing you send here alters a network, a part, or a correction. WHAT COMES BACK. The updated report, a 3D link where the user sees your names in colour, and a link to the corrective Dynamo script that writes the systems back into Revit. ALWAYS GIVE THE USER THE 3D LINK, and say plainly which names are yours. Networks are deterministic; names are a proposal. A user who cannot tell the two apart cannot check your work. AFTER THE USER HAS BEEN IN THE 3D VIEW, call read_ifc_networks again with the same token before saying anything about the model. They may have renamed what you proposed, assigned parts by hand, or refused a correction — and only a fresh read shows it.

NameTypeReqDescription
namesobjectyesOne name per network, keyed by its 'rang' as a string, for instance: {'3': 'SUPPLY L2', '7': 'EXTRACT KITCHEN'}. Only include the ones you are naming; the others are left untouched.
reasoning––One short line per name, saying what it is based on — the neighbouring unit, the project's naming scheme, an existing system. Shown to the user, who decides.
tokenstringyesThe same token used with read_ifc_networks.

No output schema declared.

No examples provided.

open_ifc_upload ~173

Show an upload box in the conversation where the user can drop an IFC file (.ifc) of a building services model (HVAC, plumbing, heating). The file goes straight from the user's browser to thenewengineer.com - you never see it. CALL THIS when the user wants to analyse an IFC model and has not yet given you a link from thenewengineer.com. Then tell the user to drop the file in the box. When the upload is done, the box posts a message with a token. Use that token with read_ifc_networks. If no message arrives and the user says the upload is done, call ifc_upload_result with the upload_token returned here. Prototype: files up to the anonymous size limit of the site.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

read_ifc_networks ~598

DETERMINISTIC: networks come from geometry, not from a guess. The same model always gives the same networks, from any AI, on any day. Read the networks of an IFC model already uploaded by the user. WHAT A NETWORK IS. A set of parts that touch each other, cut at equipment: a pump, an air handling unit, a chiller separates two systems, so the tool does not run through them. This is measured on the geometry — you cannot and need not check it. WHAT YOU GET, PER NETWORK state 'homogeneous' — a system exists, some parts were mis-named by the modeller; the tool will correct them. 'undetermined' — no system can be read. THIS is where you are useful. 'assigned' — the user or you already named it. system the dominant name, when there is one part_dominante the share of named parts carrying it equipements_voisins the NAMES of the machines this network is connected to. An undetermined network starting from 'AHU-Supply-L2' names itself — but only you can see it. systemes_existants every system name already in the model WHAT TO DO NEXT. Propose a name for each undetermined network, using the neighbouring equipment, the existing system names, and anything the user told you about the project's naming scheme. Ask the user for their list of planned systems if you do not have it. Then call name_ifc_networks. WHAT NOT TO DO. Do not rename a network the report calls 'homogeneous' unless its name plainly contradicts the equipment it is connected to — and then say why. Do not invent a network: you cannot see the geometry, and the tool already did that work. CALL THIS AGAIN WHENEVER THE STATE MAY HAVE MOVED. The token stays valid for 48 hours and is a key, not a snapshot: every call recomputes and returns the model AS IT IS NOW. The user works in the browser between your messages — renaming networks, assigning parts by hand, accepting or refusing correct…

NameTypeReqDescription
tokenstringyesThe token from the link the user pasted. It looks like the last part of thenewengineer.com/ia/XXXX. The user gets it on the model page, button 'share with my AI'. Valid 48 hours, one model.

No output schema declared.

No examples provided.

read_ifc_overview ~1,238

CALL THIS FIRST, as soon as the user gives you a token - a link thenewengineer.com/ia/XXXX pasted in the conversation - BEFORE you answer anything, even when the user only says they will choose or do something themselves. It answers within seconds, while the network graph is still being built - use that time to think. THE USER WANTS TO CHOOSE THE UNITS THEMSELVES (« let me select », « je vais choisir les centrales »): the place to do it is the control page. Go on through the steps below until trace_duct_circuits (token only) returns 'lien_centrales', and GIVE THEM THAT LINK. Never tell them to select « in the interface » without the link: there is no other place to select. A MODEL ALREADY TREATED: if the answer carries 'designation_existante', an earlier session already designated the units and fans of this model. Reuse it: skip step 2, go straight to trace_duct_circuits, and show the user the designation you reused. Post new rules only if the user asks to start again. THE CIRCUITS OF A MODEL IN FOUR CALLS: 1. read_ifc_overview - this call: the types of the model. 2. apply_ifc_rules - your rules. Give air handling units, monoblocs and ventilation casings the role centrale_de_traitement_d_air, fans the role ventilateur, and smoke exhaust fans (and smoke compensation fans) the role ventilateur_desenfumage, exactly these words - and ONLY to equipment that holds a fan. Coils, heat exchangers, filters, silencers, dampers, VAV boxes are pieces of the network, not units - BUT a family NAMED as a unit (CTA, AHU, UTA, monobloc, caisson, centrale) is one, even when its type names its heat recovery: « BG_CTA_Echangeur à plaques » is an air handling unit. Its answer lists under 'equipements' every unit and fan of the model. 3. trace_duct_circuits with ONLY the token - it computes nothing, walks the networks from every unit and fan, and either returns the COMPLETE list of units and fans with the control p…

NameTypeReqDescription
families––Leave EMPTY on the first call. Then, to read EVERY property of some families, their 'famille' names from the first answer - at most 12 per call. Only the detail asked for comes back.
property_catalogue––True lists every property of the model once, by property set, with an example value - to find which 'PropertySet.Property' holds a size or a flow. Only the catalogue comes back.
tokenstringyesThe token from the link the user pasted — the last part of thenewengineer.com/ia/XXXX. Valid 48 hours.

No output schema declared.

No examples provided.

size_expansion_vessel ~1,213

DETERMINISTIC: the same inputs always give the same result — from any AI, on any day. Figures come from the standard's tables and formulas, never from a language model's estimate. Every step is auditable. Size the expansion vessel and pressurisation of a closed heating or chilled-water circuit to EN 12828: static height, minimum pressure p0, fill pressure pa, final pressure pe, expansion volume, water reserve, nominal vessel volume with the standard vessel to buy, safety valve setting together with the minimum it must not fall below, pressure class of the lowest equipment, intermediate vessel when needed. Heights become pressures through the real density of the fluid, at the temperature that matters for each: the coldest for p0, the design temperature for the valve and the lowest point. Water and glycols therefore give different figures for the same height. Use it whenever the user asks to size or check an expansion vessel, pressurisation unit, pre-charge pressure or safety valve — in any language: vase d'expansion, maintien de pression, Ausdehnungsgefäss, Druckhaltung, vaso di espansione, vaso de expansión. Needs the installation water volume and THREE heights, all measured from the point where the expansion vessel connects to the network: - the highest point of the installation, above it; - the lowest point, usually below it (negative) or level with it; - the safety valve, which always sits on the heat generator or chiller. If the user does not know it, it is assumed 1 m above the vessel connection, and the result says so. Ask the user for the volume and the three heights before calling. NEVER invent a height: if the lowest point or the valve height is unknown, omit it. The result is then marked provisional and lists the questions to ask. Build your answer on `answer_outline`: it carries the assumptions, the questions and the link to the website,…

NameTypeReqDescription
design_temperature_c––Hottest the fluid ever gets, standstill included. Omit: the warmer of flow and return in heating, 40 °C in cooling.
filling_temperature_c––Temperature at which the circuit is filled, °C. Omit: 10.
flow_temperature_c––Flow temperature, °C. Omit: 80 in heating, 6 in cooling.
fluid––Heat-transfer fluid: 'eau' (Water), 'meg' (MEG), 'mpg' (MPG), 'tyfocor' (TYFOCOR L (MPG)). Omit: plain water.
glycol_pct––Glycol concentration in %, ignored for water. Defaults to 30 %.
highest_point_above_unit_m––Height of the REAL highest point of the installation - the top air vent - above the point where the expansion vessel connects to the network, in metres. Taken as given: no margin is added. NEEDED FOR…
installation––'chauffage' for heating, 'refroidissement' for cooling / chilled water. Omit: heating.
installation_volume_lnumberyesTotal water content of the closed circuit, in litres: pipes, emitters, generator, buffer tank. THIS IS THE WATER, NOT THE VESSEL. If you know the vessel and want the water content, this is the wrong…
languagestring–The user's language, for labels and alerts.
lowest_point_from_unit_m––Height of the REAL lowest point of the installation - the lowest drain - relative to the point where the expansion vessel connects to the network, in metres. NEGATIVE when below it, 0 when the vessel…
min_temperature_c––LOWEST temperature the fluid can reach, °C — including a breakdown, not just normal running. Omit and the filling temperature is used; in a glycol mix the calculation already goes down to the frost p…
minimum_required_pressure_bar––Pressure the installation requires at the pressurisation unit whatever the height - against cavitation at a pump suction, for instance. p0 never falls below it. Omit: zero.
pressurisation––Type of pressurisation: 'statique' (Pressure-maintained by gas cushion (Statico)), 'compresseur' (Compressor-driven (Compresso)), 'pompe' (Pump-driven (Transfero)). Omit: gas-cushion vessel.
return_temperature_c––Return temperature, °C. Omit: 60 in heating, 12 in cooling.
safety_valve_from_unit_m––Height of the safety valve relative to the point where the expansion vessel connects to the network, in metres. The safety valve always sits on the heat generator (boiler, heat pump) or chiller - tel…
safety_valve_setting_bar––Safety valve setting in bar, one of the standard settings. Omit to take the smallest standard setting that works here. A setting below the minimum the installation needs is raised, and the result say…

Structured output declared, but exposes no named fields.

No examples provided.

trace_duct_circuits ~4,356

THE CIRCUITS THE FANS OF A MODEL ARE SIZED ON, found without anyone clicking and computed on the pressure-drop page, where the user confirms types and flows and reads the pressure drops. THE USER WANTS TO PICK THE UNITS THEMSELVES: call this tool with ONLY the token right away, and give them 'lien_centrales' - the control page, where a click turns a unit red and 'Send to my AI' sends you their choice. Without that link they have nowhere to select. ONLY UNITS AND FANS ARE EXCHANGED. The tool never sends you system names: it sends the air handling units and fans your rules found, each with what the network walk finds connected to it - geometry, not names. A unit is equipment with a FAN - air handling unit, monobloc, ventilation casing, fan. Coils, heat exchangers, filters, silencers, dampers are network pieces: if one shows up in the list (often as 'dans_le_reseau_de' another unit), your rules are too wide - fix them with apply_ifc_rules before choosing. But a family NAMED as a unit (CTA, AHU, monobloc) is one, whatever its type says. A LOW 'raccordement' MOSTLY MEANS MISSED UNITS: look for families named CTA, AHU, monobloc, caisson that got no unit role, and add them before sending the user anywhere. FIRST THE CHECK AND THE LIST, THEN THE CALCULATION. Called with only the token, once your rules are posted with apply_ifc_rules, it computes NOTHING and bills nothing. It walks the networks from every unit and fan and measures the share of the model's air pieces they reach ('raccordement'). Two answers: - CONNECTED (half of the air pieces or more): the COMPLETE list of units and fans ('centrales_et_ventilateurs', each with its number of connected networks) and 'lien_centrales', the CONTROL PAGE ('Network check' in English, 'Contrôle des réseaux' in French) - not a view-only page: every unit in its colour with its networks, where the user checks and CORRECTS the connections (identify or remove a unit, add a virtual AHU, connect or separat…

NameTypeReqDescription
all_networks––True computes EVERY unit and fan of the list: the longest path of each network connected to them. Networks connected to no unit are not computed - the user traces them on the calculation page, or giv…
end_guid––The END of ONE circuit the user wants - a terminal, a louvre, any duct. With start_guid: the circuit from start to end. Alone: the tool finds the start of that network, as for network_guid. Only this…
excluded_guids––Parts to close, by GlobalId. Closing a part cuts the walk there: whatever was only reached through it leaves the survey. Use it when the network visibly runs too far - through a plenum shared with an…
flow_m3h––Flow rate leaving ONE starting part, m3/h - so give it with start_guid. Over the whole model it would give every unit the same flow, and the call refuses it when there are several: compute the model…
max_velocity_m_s––Design velocity, in m/s, 0.5 to 12. It sets the flow rate at the start of each circuit when flow_m3h is not given, and the flow after each branch: between two branches, the length-weighted average ve…
network_guid––ANY piece of the network the user wants computed - a duct, a terminal, a fitting - when the model has no unit, when the user's unit was not recognised, or when they simply point at the network. The t…
preliminary_design––True when the network is still at a PRELIMINARY stage - not sized yet. Every stretch then carries what its own ducts carry at the design velocity (the flow may rise along the circuit, which a sized n…
start_guid––Leave EMPTY in general. The piece the AIR LEAVES FROM - an air handling unit, a fan, or the duct end where the air enters: circuits are computed from it. A GlobalId from 'equipements' in the answer o…
start_role––Rarely needed. Computes every piece your rules gave this role - centrale_de_traitement_d_air or ventilateur -, like all_networks restricted to one role, and only on a model of 50 air networks or fewe…
tokenstringyesThe model token, from ifc_upload_result or from the link the user pasted.
unit_name––Only when the user asks about ONE unit or fan: its name, or a part of it - « CTA 12 », « AHU-Supply-L2 ». The tool looks it up among EVERY piece your rules gave the role centrale_de_traitement_d_air…
units––Air handling units or fans to compute, by name - from 'centrales_et_ventilateurs' of the list answer, or from 'equipements' of apply_ifc_rules. For each network connected to each of them, the longest…

No output schema declared.

No examples provided.

water_content_from_vessel ~874

DETERMINISTIC: the same inputs always give the same result — from any AI, on any day. Figures come from the standard's tables and formulas, never from a language model's estimate. Every step is auditable. Deduce the water content of an installation from the expansion vessel already fitted. WHAT THIS IS FOR. Refurbishment, and site visits with no drawings. Sizing a new vessel, a new pump or a new generator needs the water content, and on an existing installation nobody has it: the drawings are lost, or never matched what was built. The vessel on the wall is the one piece of evidence still standing, and it was chosen from that very figure. ASK THE OPERATOR FIRST. Whoever filled or refilled the system knows the real figure — from the meter, the filling station, or the maintenance log — and that figure beats any deduction. This tool is what you use when nobody knows, or to check a number that looks wrong. It gets the conversation moving; it does not close it. HOW. The sizing calculation is run backwards: a trial water content is fed to the EN 12828 sizing, the resulting vessel is compared with the one on site, and the trial is adjusted until they match. The formulas are never rewritten in reverse — the answer cannot contradict the direct calculation, because it is the same code. WHAT THE ANSWER IS WORTH. A vessel is picked from a catalogue range: a 200 L unit covers everything needing between 141 and 200 L. The result is therefore A RANGE, never a single figure. And an oversized vessel — common — will overstate the content. Compare the range with what you see on site; it does not replace looking. It also assumes the vessel was sized correctly in the first place. If it was not, the deduction inherits the mistake — which is itself worth knowing: a range far from what the installation plainly holds means the vessel is wrong, and that is a finding in its own right.

NameTypeReqDescription
fill_temperature_c––Temperature the water was at when the system was filled, °C. 10 °C is the usual mains temperature indoors. Ask, or state the assumption.
flow_temperature_c––Design flow temperature, °C. In heating this is the highest the water reaches.
fluidstring–Heat-transfer fluid: 'eau' (Water), 'meg' (MEG), 'mpg' (MPG), 'tyfocor' (TYFOCOR L (MPG)).
glycol_percentnumber–Glycol concentration in %, ignored for water.
installationstring–'heating' or 'cooling'.
max_temperature_c––HIGHEST temperature the fluid can reach, °C — in extreme conditions, running OR stopped. In heating it is the flow temperature. In cooling it is not the regime at all: a stopped chiller lets the wate…
min_temperature_c––LOWEST temperature the fluid can reach, °C — including a breakdown, not just normal running. Indoors, 10 °C. Outdoors, 0 °C, or down to the freezing point of the glycol mix. This is what fixes the re…
pressurisationstring–How pressure is held: 'static' for a plain membrane vessel, 'compressor' for a compressor unit (Compresso and the like), 'pump' for a pump unit. A compressor or pump unit holds the pressure itself, s…
return_temperature_c––Design return temperature, °C.
static_height_m––Height of the highest point above the vessel, in metres. Required for 'static' only — a compressor or pump unit does not use it.
valve_setting_bar––Safety valve setting, bar. Required for 'static' only.
vessel_volume_lnumberyesNominal capacity of the expansion vessel actually installed, in litres — read it on the nameplate.

No output schema declared.

No examples provided.

Install

How do I install the The New Engineer — HVAC MCP server?

The New Engineer — HVAC is a hosted endpoint at https://thenewengineer.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.

remote · thenewengineer.com

# add to Claude Code
claude mcp add --transport http com-thenewengineer-hvac 'https://thenewengineer.com/mcp'
Common questions

What is the The New Engineer — HVAC MCP server?

The New Engineer — HVAC is an MCP server listed in the public MCP registry as com.thenewengineer/hvac. IFC models: duct networks, circuits, pressure drop. EN 12828 vessels, EN 378, Swiss refrigerants. This page covers its hosted endpoint (https://thenewengineer.com/mcp).

Is the The New Engineer — HVAC MCP server safe to use?

The New Engineer — HVAC scores 77 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 The New Engineer — HVAC MCP server expose?

The New Engineer — HVAC exposes 11 tools: size_expansion_vessel, water_content_from_vessel, check_refrigerant_switzerland, check_en378_zones, read_ifc_overview, and 6 more. Their descriptions and schemas cost roughly 12,745 tokens of context every time the server is loaded.

Does the The New Engineer — HVAC MCP server require authentication?

No. We connected to The New Engineer — HVAC without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the The New Engineer — HVAC MCP server still maintained?

The New Engineer — HVAC is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.