metrology-toolbox-mcp
v0.6.1
Published
MCP server for Metrology Bench: RTD, thermocouple, pressure and torque calculations with every equation and source shown, plus NCSLI MII measurand taxonomy lookup. Run it locally or use the hosted server at metrologybench.com.
Maintainers
Readme
metrology-toolbox-mcp
An MCP server that gives your AI assistant Metrology Bench's calibration calculators. Every result comes back with its equation, its source and its version, and inputs outside an equation's valid range are refused rather than extrapolated.
Results are calculated values, not certified results.
Tools
| Tool | What it does |
|---|---|
| evaluate_test_point | One call for a whole test point. UUT spec (typed terms) or limits → tolerance → TUR with target check → acceptance limits under the decision rule → conforms / does not conform per rule X with the specific risk → optional global PFA/PFR from EOPR → certificate-ready value and U with a CMC floor. Every step carries its equation, source and version. Use it instead of chaining the tools below; missing inputs are refused with the argument named and a corrected example call |
| rtd_resistance_from_temperature | Pt100/Pt1000 resistance from temperature (Callendar–Van Dusen) |
| rtd_temperature_from_resistance | Temperature from RTD resistance |
| thermocouple_emf_from_temperature | Types B, E, J, K, N, R, S, T: mV from temperature (NIST ITS-90), reference junction at 0 °C |
| thermocouple_temperature_from_emf | Temperature from mV for any of those types, with NIST's error band |
| thermocouple_cold_junction_compensation | Hot-junction temperature from a meter reading and the reference-junction temperature, or the reverse; adds EMFs, never temperatures |
| convert_pressure | 13 pressure units, factors from SI definitions |
| convert_torque | 9 torque units |
| torque_extension_setting | Wrench setting for an inline extension |
| spec_to_tolerance | Accuracy spec (% of reading/range, counts, ppm, % FS, floors) → limits, half-width and standard uncertainty, with each term echoed; refuses ambiguous specs with a corrected example call |
| tur_check | TUR per ANSI/NCSL Z540.3 §3.11 (withdrawn 2020, still used in contracts), symmetric, asymmetric or one-sided; back-solves U95; TAR shown separately |
| round_value | Decimal rounding: half up or half to even, decimals or significant figures |
| taxonomy_search | Find NCSLI MII measurand taxa by words, discipline or Measure/Source |
| taxonomy_get_taxon | Full taxon record: result quantity, parameters, references, deprecation, neighbours |
| taxonomy_list_disciplines | Disciplines in the taxonomy with taxon counts |
Taxonomy results come from the NCSLI MII Measurand Taxonomy Catalog, synced nightly, and carry NCSL International's notice, CC BY-SA 4.0 license, disclaimer and the upstream commit they came from.
| conformity_decision | Conformity of one measured value per a named decision rule (simple acceptance, w = r × U, or a target specific risk), with the specific risk for that reading and certificate wording |
| guard_band_global_risk | Global PFA and PFR from TUR and EOPR for any guard band, or the guard band that brings PFA to 2 % |
| round_for_certificate | U to 2 (or 1) significant figures, result rounded to match, copy-ready statement with k and coverage probability, optional scope CMC check |
| uncertainty_budget | GUM budget (JCGM 100): Type A rows from readings, Type B rows from a half-width and distribution, with sensitivity coefficients; u_c, ν_eff (Welch–Satterthwaite), Student-t k and U, each row's share; warns when a non-normal input dominates |
| monte_carlo_uncertainty | Monte Carlo evaluation (JCGM 101, GUM Supplement 1) of the same rows: y, u(y), symmetric and shortest coverage intervals, adaptive trials, and whether the GUM interval is validated (8.1.3). Seeded, so repeatable |
| budget_templates | Starting uncertainty budgets for common calibrations (Pt100, thermocouple, DMM DC voltage, torque wrench, gauge block, weight by substitution, pressure gauge, humidity probe): the list, or one template’s rows in the uncertainty_budget format with the principle behind each row. Illustrative values, to be replaced by the lab’s own |
| length_to_20c | Length corrected to the 20 °C reference temperature, L₂₀ = L_t/(1 + α(t − 20)); α in × 10⁻⁶ /K or a preset; u(α) (default 10 %) and u(t) rows in the uncertainty_budget format; 0 to 40 °C |
| differential_expansion | Differential expansion between a unit under test and its standard, separate α and t for each (JCGM 100 H.1); independent or difference (δα, δθ) model; corrected UUT length from a comparator reading; budget rows |
| weight_tolerance_check | A weight's error E = m_c − m₀ against the ± MPE you enter for its class (no E617 or R 111 table is built in), per a named decision rule, with the specific risk |
| local_gravity | GRS80 normal gravity from latitude (Moritz), labelled an estimate: on the ellipsoid, not corrected for height. Use a surveyed or NOAA NGS / PTB SIS predicted g for calibration work |
| liquid_head_correction | Head Δp = (ρ_f − ρ_a)·g·Δh (absolute: ρ_f·g·Δh), EURAMET cg-3 eqs. 3.6 and 3.7; water by temperature (Tanaka 2001) or any fluid by density; air 1.2 kg/m³ by default (OIML D 28); gas media noted as usually negligible |
| deadweight_tester_pressure | Pressure balance / piston gauge pressure from the masses (EURAMET cg-3 v2.1 clause 3): true or conventional mass with the matching buoyancy term, thermal and λ distortion terms (solved by iteration), surface tension, head, gauge or absolute |
| deadweight_tester_mass | Total mass to load for a target pressure, in any of the 13 pressure units; the exact inverse of deadweight_tester_pressure |
| humidity_convert | One humidity quantity to all the others at a stated temperature and total pressure: RH, dew point, frost point, vapour pressure, mixing ratio, absolute humidity, Assmann wet bulb. Hardy 1998 (ITS-90) by default, WMO Magnus as an approximate option; RH below 0 °C with respect to water (WMO) or ice; optional enhancement factor (0.1 to 2 MPa) |
| saturation_vapour_pressure | Saturation vapour pressure over water or ice (Hardy 1998 or WMO Magnus), and with a pressure the enhancement factor f(p, t); refuses outside each formula's range |
| air_density | Moist-air density by the full CIPM-2007 equation (Picard et al. 2008) from pressure, temperature, RH or dew point and x_CO2, with xv, Z, psv and f shown, and the OIML R 111-1 Annex E approximation as a labelled secondary check |
| conventional_mass | Conventional mass from true mass and density, or the reverse, per OIML D 28 (8000 kg/m³, 1.2 kg/m³, 20 °C) |
| buoyancy_correction | Buoyancy correction of a weight comparison, m_ct = m_cr(1 + C) + Δm_w (OIML D 28, exact and first-order C, with the |C| ≤ U/(3m0) neglect test), or the mass of a sample from a balance reading (NIST SOP 2) |
| usp41_repeatability | USP <41> repeatability: s (or ≥ 10 readings) with the 0.41d floor, pass/fail of 2s/m ≤ 0.10 %, minimum weight 2000·s, d taken from the range the test load is in on a dual-range balance. Built from balance-maker summaries of the December 2013 revision; check against the current USP–NF |
Two ways to use it
Hosted (nothing to install): add https://metrologybench.com/mcp as a custom connector in your AI app.
Local (runs on your computer, nothing leaves it): add this to your MCP client config, for example Claude Desktop:
{
"mcpServers": {
"metrology-toolbox": { "command": "npx", "args": ["-y", "metrology-toolbox-mcp"] }
}
}No sign-up, no account, no API key. License: Apache 2.0.
