Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "apply_ifc_rules", "read_ifc_overview" and "trace_duct_circuits"
⟨280 unchanged words⟩ piece of the model that got one ofthem;them:trace_duct_circuitsthatcanlistthenis whatstarttrace_duct_circuitsfromcomputesawhenrolecalledinsteadwithofonlyatheGUID.token. Everyother role name is yoursto choose. ORDER THE LIST YOURSELF, most specific ⟨64 unchanged words⟩ the 3D view, not on a coverage report. NEXT: once 'equipements' lists the air handling units and fans you expect, call trace_duct_circuits with only the token. It computes the circuits of every one of them - the whole model, which is what the user wants unless they named a single unit. If they did, pass that unit's name as unit_name instead: the tool finds it among all the pieces of the model. 'equipements' counts every piece ('pieces') but lists at most thirty names: the count, not the list, is the model.
⟨22 unchanged words⟩ being built - use that time to think. THE WHOLE MODEL IN THREE CALLS. When the user asks for the circuits, the pressure drops or the fans of a model, they mean ALL of them: 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, and fans the role ventilateur, exactly these words. Its answer lists under 'equipements' every unit and fan of the model. 3. trace_duct_circuits with ONLY the token - every circuit of every unit and fan, computed. Starting trace_duct_circuits from one GUID computes that one network and nothing else: do it only when the user names one unit. The answer of this call repeats these steps under 'marche_a_suivre'. YOU SEE A SAMPLE, THE TOOL SEES EVERYTHING. This overview shows one example per type, not every piece: you cannot count the units, the fans or the networks of the model from it, and you must not believe you have seen them all. The tool applies your rules to every piece and walks every network. So never pick the networks to compute yourself: ask for the whole model, which is the default - or, if the user asked about ONE unit, name it with unit_name in trace_duct_circuits; the tool finds it among all the pieces. WHAT YOU GET. Not 3 000 parts: the ⟨160 unchanged words⟩
THE CIRCUITS THE FANS OF AFANMODELISARE SIZED ON, AND THEIR PRESSUREDROP, withoutanyone clicking.GiveBYONEDEFAULT,partTHE-WHOLEanMODEL.airCallhandlingitunitwith only the token,a
Changed the definition of "apply_ifc_rules" and "trace_duct_circuits"
⟨234 unchanged words⟩ access zones, equipment plinths or damper motors. TWO ROLE NAMES ARE FIXED, because circuits start from them: give air handling units, monoblocs and ventilation casings the role centrale_de_traitement_d_air, and fans the role ventilateur - exactly these words. The answer lists, under 'equipements', the GUIDs of every piece of the model that got one of them; trace_duct_circuits can then start from a role instead of a GUID. Every other role name is yours to choose. ORDER THE LIST YOURSELF, most specific first, ⟨71 unchanged words⟩
⟨28 unchanged words⟩ this walks the whole network it belongs to. Or give a ROLE - start_role "centrale_de_traitement_d_air", "ventilateur" or "all" - once your rules are posted with apply_ifc_rules: it then starts from every piece of that role, each explored on its own, and returns them under 'departs'.
Added "apply_ifc_rules" (10 tools before, 11 now)
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. THIS IS HOW THE TOOL LEARNS A MODEL. read_ifc_overview gives you some fifty groups — one per object type, 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 m…
Added "trace_duct_circuits" (9 tools before, 10 now)
THE CIRCUITS A FAN IS SIZED ON, AND THEIR PRESSURE DROP, without anyone clicking. Give ONE part - an air handling unit, a fan, a duct - and this walks the whole network it belongs to. It then keeps ONE CIRCUIT PER BRANCH leaving that part: the longest path in metres of each branch. From an air handling unit, that is one circuit per network connected to it - supply, return, intake, exhaust. EACH OF THESE CIRCUITS IS COMPUTED, and becomes a circuit of the model: it has a name, a COLOUR, and a tab on the website. WHAT YOU GET circuits one per branch: name, colour, length, and - once …
Changed the definition of "water_content_from_vessel"
⟨39 unchanged words⟩ :"Fill Temperature C"},"flow_temperature_c":{"anyOf":[{"maximum":200,"minimum":-50,"type":"number"},{"type":"null"}],"default":null,"description":"Design flow temperature, °C. In heating this is the highest the water reaches.","maximum":200,"minimum":-50,"title":"Flow Temperature C","type":"number"},"fluid":{"default":"water"," ⟨224 unchanged words⟩ ,"type":"string"},"return_temperature_c":{"descriptionanyOf":"Design return temperature, °C.",[{"maximum":200,"minimum":-50,"titletype":"Returnnumber"},{"type":"null"}],"default":null,"description":"DesignTemperaturereturn
Added "read_ifc_overview" (8 tools before, 9 now)
CALL THIS FIRST, as soon as the user gives you a token. It answers within seconds, while the network graph is still being built - use that time to think. WHAT YOU GET. Not 3 000 parts: the 20 to 50 distinct TYPES of the model (duct types, fittings, dampers, terminals, equipment, proxies), each with its IFC class, predefined type, type name, one example part with ALL its properties, and a catalogue of every property present. WHAT TO DO WITH IT. Write RULES, not verdicts. For roles: which words, in which field, identify a fire damper, a silencer, a balancing damper, an air terminal, an air ha…
Added "ifc_upload_result" and "open_ifc_upload" (6 tools before, 8 now)
Where the upload stands. When `state` is `depose`, `token` is the token to pass to read_ifc_networks.
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 ret…
Added "name_ifc_networks", "read_ifc_networks" and "water_content_from_vessel"; changed the definition of "size_expansion_vessel" (3 tools before, 6 now)
⟨148 unchanged words⟩ title":"Glycol Pct"},"highest_point_above_unit_m":{"anyOf":[{"maximum":300,"minimum":-50,"type":"number"},{"type":"null"}],"default":null,"description":"Height of the REAL highest point ⟨21 unchanged words⟩ metres. Taken as given: no margin is added.","maximum"NEEDED FOR A STATIC VESSEL ONLY:300a compressor or pump unit holds the pressure itself,"minimumand heights play no part in its sizing — do not ask for them.":-50,"title":"Highest Point Above Unit M","type":"number"},"installation":{"anyOf":[{"enum" ⟨32 unchanged words⟩ 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 tool: call water_content_from_vessel.
Changed the definition of "check_en378_zones", "check_refrigerant_switzerland" and "size_expansion_vessel"
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 ⟨462 unchanged words⟩
⟨11 unchanged words⟩ safety check, volume by volume (building projects) — deterministic"}
Certificate recorded, valid to 2026-12-22
Authorization not required
Unknown → Live
First tool surface recorded: 3 tools (server version 1.1.0)
https://thenewengineer.com/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 14 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨64 unchanged words⟩ default":null,"description":"Flow rate leavingtheONE starting part,m3/h.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 without it, then call once per unit whose flow you know - its circuits are reused, only their flows change. Every circuit leaving that part carries it on ⟨231 unchanged words⟩ null"}],"default":null,"description":"Leave EMPTY to compute the whole model. Give a GlobalIdofonly when thepartusertoasksstartaboutfromONE unit or one network: an air handling unit, a fan, or any duct oftheitnetwork.-Takefromit'equipements'frominread_ifc_overviewthe(guid_exemple)answer of apply_ifc_rules, from read_ifc_networks, or from'equipements'read_ifc_overviewin(guid_exemple). Only that part's network is then computed, and the answeroflistsapply_ifc_rules.theGiveunitsthisandORfans left out. Not together with start_role.","title":"Start Guid"},"start_role ⟨4 unchanged words⟩ null"}],"default":null,"description":"StartWhich pieces to start from,EVERYbypiecethe role your rules gavethis role, instead ofthem.oneDefaultGUIDall: every centrale_de_traitement_d_air (air handling units, monoblocs, ventilation casings),and every ventilateur (fans),or allunits(bothfirst,unitsthenfirst).a supposed start for each network none of them serves - the whole model. Give one of these two names to keep only that role. Needs apply_ifc_rulesfirst.first; without rules the call says what to post. A fan that lies in a unit's network is not explored twice.GiveNotthistogetherORwith start_guid.","title":"Start Role"}," ⟨14 unchanged words⟩ ","title":"Token","type":"string"},"unit_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"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 or ventilateur, case and accents ignored, all words required. Several matches: all are computed. No match: the WHOLE model is computed instead, and the answer says why and lists the known names. Leave it empty for the whole model. Not with start_guid.","title":"Unit Name"}},"required":["token"],"title ⟨3 unchanged words⟩
⟨4 unchanged words⟩ openWorldHint":true,"readOnlyHint":false,"title":"Trace ductDuct circuitsfromof the whole model, or of onepartunit, andcomputetheir pressure drop"}
⟨64 unchanged words⟩ ,"default":null,"description":"Flow rateatleaving the starting part, m3/h.ItEveryCAPScircuit leaving that part carries it on its first stretch, and theflowflowsoffurthereveryoncircuitareleavingscaledthatfrompart;it - itdoessetsnotthesetrealit.velocity. BEFORE GUESSING, LOOK FOR IT: run read_ifc_overview ⟨77 unchanged words⟩ flow is then derived from the design velocityand: thesectionaverage velocity of thefirststraightduct.ducts between two branches equals it, none exceeds it by 20 %.","title":"Flow M3H"},"max_velocity_m_s" ⟨27 unchanged words⟩ of each circuit when flow_m3h is not given,(velocityandxthesectionflowofafter each branch: between two branches, thefirstlength-weighted average velocity of the straightduct)ducts equals it, andthenoflowductafterexceedseachitbranch.by more than 20 %. Ventilation: 4 to 6 in main ducts, ⟨19 unchanged words⟩ Max Velocity M S"},"start_guid":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"GlobalId of the part to start ⟨11 unchanged words⟩ the network. Take it from read_ifc_overview (guid_exemple), from read_ifc_networks, or fromread_ifc_networks.'equipements' in the answer of apply_ifc_rules. Give this OR start_role.","title":"Start Guid"},"start_role":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Start from EVERY piece your rules gave this role, instead of one GUID: centrale_de_traitement_d_air (air handling units, monoblocs, ventilation casings), ventilateur (fans), or all (both, units first). Needs apply_ifc_rules first. A fan that lies in a unit's network is not explored twice. Give this OR start_guid.","title":"Start Role"},"token":{"description":"The model token, ⟨11 unchanged words⟩ type":"string"}},"required":["token","start_guid"],"title":"trace_duct_circuitsArguments","type":"object"}
⟨6 unchanged words⟩ ,"readOnlyHint":true,"title":"Expansion vessel&SIZEpressurisationfromsizingthe water content (EN 12828) — deterministic"}
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 yo…
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 co…
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 st…
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 ⟨371 unchanged words⟩
⟨9 unchanged words⟩ "Swiss refrigerant regulation check (ORRChim annex 2.10) — deterministic"}
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 orchilled-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 valvesetting together with the minimum it must not fall below, pressureclass of the lowest equipment, intermediate vessel when needed.Heights become pressures through the real density of the fluid, at thetemperature that matters for each: the coldest for p0, the designtemperature for the valve and the lowest point. Water and glycolstherefore 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 anylanguage: 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 measuredfrom 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 orchiller. If the user does not know it, it is assumed 1 m abovethe 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 isunknown, omit it. The result is then marked provisional and liststhe questions to ask. Build your answer on `answer_outline`: itcarries the assumptions, the questions and the link to the website,which measures all of these on the user's IFC model.
⟨9 unchanged words⟩ "Expansion vessel & pressurisation sizing (EN 12828) — deterministic"}