Skip to main content
Glama

EngScript Engineering MCP

HEXRF

Heat exchanger fouling resistance back-calculation from shell/tube-side operating conditions using Kern + Dittus-Boelter.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "Unknown": "<Unknown>",
      "D_shll": "<D_shll>",
      "D_tube": "<D_tube>",
      "D_wall": "<D_wall>",
      "P_tube": "<P_tube>",
      "S_baffle": "<S_baffle>",
      "N_tube": "<N_tube>",
      "L_tube": "<L_tube>",
      "N_shllseri": "<N_shllseri>",
      "N_shllpara": "<N_shllpara>",
      "N_shllpass": "<N_shllpass>",
      "N_tubepass": "<N_tubepass>",
      "A_hex": "<A_hex>",
      "R_shll": "<R_shll>",
      "R_tube": "<R_tube>",
      "F": "<F>",
      "k_hex": "<k_hex>",
      "T_shll": "<T_shll>",
      "rho_shll": "<rho_shll>",
      "Cp_shll": "<Cp_shll>",
      "mu_shll": "<mu_shll>",
      "k_shll": "<k_shll>",
      "T_tube": "<T_tube>",
      "rho_tube": "<rho_tube>",
      "Cp_tube": "<Cp_tube>",
      "mu_tube": "<mu_tube>",
      "k_tube": "<k_tube>",
      "V_shll": "<V_shll>",
      "T1_shll": "<T1_shll>",
      "T2_shll": "<T2_shll>",
      "V_tube": "<V_tube>",
      "T1_tube": "<T1_tube>",
      "T2_tube": "<T2_tube>"
    },
    "name": "HEXRF"
  }
}

Input Schema

NameRequiredDescriptionDefault
FYesCorrection factor (dimensionless)
A_hexYesTotal heat transfer area
k_hexYesTube wall thermal conductivity
D_shllYesShell inside diameter
D_tubeYesTube outside diameter
D_wallYesTube wall thickness
L_tubeYesTube length
N_tubeYesNumber of tubes
P_tubeYesTube pitch
Q_unitNoOutput heat duty unitMBtu/hr
R_shllYesShell-side fouling resistance
R_tubeYesTube-side fouling resistance
T_shllYesShell-side fluid temperature range
T_tubeYesTube-side fluid temperature range
V_shllYesShell-side volumetric flow rate
V_tubeYesTube-side volumetric flow rate
k_shllYesShell-side fluid thermal conductivity list
k_tubeYesTube-side fluid thermal conductivity list
Cp_shllYesShell-side fluid heat capacity list
Cp_tubeYesTube-side fluid heat capacity list
Rf_unitNoOutput fouling resistance unithr-ft2-F/Btu
T1_shllYesShell-side inlet temperature
T1_tubeYesTube-side inlet temperature
T2_shllYesShell-side outlet temperature
T2_tubeYesTube-side outlet temperature
UnknownYesWhich unknown is being solved for.
mu_shllYesShell-side fluid viscosity list
mu_tubeYesTube-side fluid viscosity list
S_baffleYesBaffle spacing
rho_shllYesShell-side fluid density list
rho_tubeYesTube-side fluid density list
N_shllparaYesNumber of shells in parallel
N_shllpassYesNumber of shell-side passes
N_shllseriYesNumber of shells in series
N_tubepassYesNumber of tube-side passes
U_act_unitNoOutput actual (fouled) overall heat transfer coefficient unitBtu/hr-ft2-F
U_cln_unitNoOutput clean overall heat transfer coefficient unitBtu/hr-ft2-F
h_shll_unitNoOutput shell-side film heat transfer coefficient unitBtu/hr-ft2-F
h_tube_unitNoOutput tube-side film heat transfer coefficient unitBtu/hr-ft2-F
u_shll_unitNoOutput shell-side velocity unitft/sec
u_tube_unitNoOutput tube-side velocity unitft/sec

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • changedInput schema / properties / F / properties / unit / enum
      Previous value: -[
      -  "cm",
      -  "ft",
      -  "in",
      -  "m",
      -  "micron",
      -  "miles",
      -  "mm"
      -]New value: +[
      +  ""
      +]
    • changedInput schema / properties / F / required
      Previous value: -[
      -  "value",
      -  "unit"
      -]New value: +[
      +  "value"
      +]
    • changedInput schema / properties / N_shllpara / properties / unit / enum
      Previous value: -[
      -  "cm",
      -  "ft",
      -  "in",
      -  "m",
      -  "micron",
      -  "miles",
      -  "mm"
      -]New value: +[
      +  "EA",
      +  "ea"
      +]
    • changedInput schema / properties / N_shllpass / properties / unit / enum
      Previous value: -[
      -  "cm",
      -  "ft",
      -  "in",
      -  "m",
      -  "micron",
      -  "miles",
      -  "mm"
      -]New value: +[
      +  "EA",
      +  "ea"
      +]
    • changedInput schema / properties / N_shllseri / properties / unit / enum
      Previous value: -[
      -  "cm",
      -  "ft",
      -  "in",
      -  "m",
      -  "micron",
      -  "miles",
      -  "mm"
      -]New value: +[
      +  "EA",
      +  "ea"
      +]
    • changedInput schema / properties / N_tubepass / properties / unit / enum
      Previous value: -[
      -  "cm",
      -  "ft",
      -  "in",
      -  "m",
      -  "micron",
      -  "miles",
      -  "mm"
      -]New value: +[
      +  "EA",
      +  "ea"
      +]
    • changedInput schema / properties / T_shll / description
      Previous value: -"Shell-side temperature range [T1, T2] used for property evaluation"New value: +"Shell-side fluid temperature range"
    • changedInput schema / properties / T_tube / description
      Previous value: -"Tube-side temperature range [T1, T2] used for property evaluation"New value: +"Tube-side fluid temperature range"
    • changedInput schema / properties / h_shll_unit / default
      Previous value: -"Btu/hr-ft2"New value: +"Btu/hr-ft2-F"
    • changedInput schema / properties / h_shll_unit / enum
      Previous value: -[
      -  "Btu/hr-ft2",
      -  "W/m2",
      -  "kJ/h-m2",
      -  "kJ/s-m2",
      -  "kcal/h-m2"
      -]New value: +[
      +  "Btu/hr-ft2-F",
      +  "W/m2-C",
      +  "kJ/h-m2-C",
      +  "kJ/s-m2-C",
      +  "kcal/h-m2-C"
      +]
    • changedInput schema / properties / h_tube_unit / default
      Previous value: -"Btu/hr-ft2"New value: +"Btu/hr-ft2-F"
    • changedInput schema / properties / h_tube_unit / enum
      Previous value: -[
      -  "Btu/hr-ft2",
      -  "W/m2",
      -  "kJ/h-m2",
      -  "kJ/s-m2",
      -  "kcal/h-m2"
      -]New value: +[
      +  "Btu/hr-ft2-F",
      +  "W/m2-C",
      +  "kJ/h-m2-C",
      +  "kJ/s-m2-C",
      +  "kcal/h-m2-C"
      +]
  2. First observed

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden and does not meet it. It never explains the central behavioral quirk in the schema: the tool can also solve for an unknown operating variable (tube-V, tube-T2, shll-V, shll-T2) via the required 'Unknown' parameter, and it never clarifies how required R_shll/R_tube inputs coexist with a 'fouling resistance back-calculation', nor what is returned (Rf, U_act, U_cln, h_shll, h_tube, u_shll, u_tube) or in which units.

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

Conciseness4/5

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

It is a single front-loaded sentence naming the calculation, the inputs it consumes, and the correlations used, with no filler. Its brevity is efficient, though in this case the brevity shades into under-specification rather than economy.

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

Completeness2/5

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

For a 41-parameter, 33-required tool with nested objects, no annotations, and no output schema, one sentence is far too thin. The description never covers the required 'Unknown' selector, the meaning of the many array-valued property lists, the output set implied only by *_unit parameters, or how this differs from HEXRF_DG/HEXRF_KD, leaving the agent without what it needs to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter already carries its own description and unit enum, making 3 the baseline. The description adds no meaning beyond that: it does not explain the 'Unknown' enum values, the array-valued fluid property lists paired with temperature ranges, or the output unit parameters, all of which are non-obvious for a 41-parameter tool.

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

Purpose4/5

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

The description names a specific verb and resource: back-calculating heat exchanger fouling resistance from shell/tube-side operating conditions, and it even names the correlations used (Kern for shell side, Dittus-Boelter for tube side). What it does not do is distinguish this from the close siblings HEXRF_DG and HEXRF_KD, which from their names appear to be method variants of the same calculation.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all: no statement of the conditions that select this Kern/Dittus-Boelter variant over HEXRF_DG or HEXRF_KD, no prerequisites (e.g. that geometry and fluid property lists must be consistent), and no note about when the 'Unknown' solve mode applies. The agent is left to infer everything from the name and the sibling list.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources