
Product
PHP and Composer Support Is Now in Beta
Socket’s PHP and Composer support is now in Beta for all customers, with PHP reachability analysis generally available.
thermocouple-its90
Advanced tools
NIST ITS-90 thermocouple conversion (types B, E, J, K, N, R, S, T): mV to temperature and back, with cold-junction compensation, verified against all 12,026 NIST reference table points
NIST ITS-90 thermocouple conversion for Python: voltage to temperature and temperature to voltage for all eight letter-designated types (B, E, J, K, N, R, S, T), with cold-junction compensation and Seebeck coefficients. The test suite verifies every one of the 12,026 tabulated points of the NIST reference tables on every run.
Pure standard library, no dependencies, fully typed. A browser version of this engine runs as a free online thermocouple calculator, vendored from this repository on every release.
pip install thermocouple-its90
from thermocouple_its90 import TypeK
TypeK.emf(300.0) # 12.209 (mV at 300 C, 0 C reference: the table value)
TypeK.temperature(12.209) # 300.0 (C, ice-bath reference)
TypeK.seebeck(300.0) # 0.0416 (mV per C)
TypeK.range # (-270.0, 1372.0)
A thermocouple measures the difference between its junctions, and the reference tables assume the cold junction sits at 0 C. If your meter's terminals are at room temperature, a direct table lookup is wrong:
from thermocouple_its90 import TypeK
# Meter reads 4.096 mV, terminals at 25 C:
TypeK.temperature(4.096) # 100.0 C <- naive lookup, wrong
TypeK.temperature(4.096, reference=25.0) # 124.3 C <- the actual answer
All eight types work the same way:
from thermocouple_its90 import get, letters
letters() # ['B', 'E', 'J', 'K', 'N', 'R', 'S', 'T']
get("s").emf(1400.0) # 14.373 mV
get("t").temperature(-4.648) # -149.98 C (cryogenic ranges included)
tests/test_full_tables.py).
Language models mis-remember thermocouple polynomials. The package ships a Model Context Protocol server so agents call the verified implementation instead:
pip install "thermocouple-its90[mcp]"
claude mcp add thermocouple -- thermocouple-its90-mcp
Tools: thermocouple_to_temperature, thermocouple_to_emf,
thermocouple_types. All three are annotated read-only and idempotent with
no outside effects, so a host can tell a user what a call will do before it
runs.
The extra needs Python 3.10 or newer and works with either line of the MCP SDK, 1.7 and later or 2.x. CI builds the server against both on every push.
Coefficients were machine-parsed, never hand-typed, from the NIST ITS-90
Thermocouple Database (SRD 60, https://its90.nist.gov/). The database reproduces
NIST Monograph 175 (Burns, Scroger, Strouse, Croarkin, and Guthrie, 1993),
a United States government publication not subject to copyright. The
canonical dataset lives in data/its90.json; _data.py is generated from
it and CI fails if they drift. Code is MIT licensed.
If this library is useful in published work, please cite it via the
concept DOI https://doi.org/10.5281/zenodo.22036393, which always resolves to
the latest release (see CITATION.cff). Please also cite the underlying reference: Burns, G. W., Scroger, M. G., Strouse, G. F.,
Croarkin, M. C., & Guthrie, W. F. (1993). Temperature-electromotive force
reference functions and tables for the letter-designated thermocouple types
based on the ITS-90 (NIST Monograph 175). NIST.
FAQs
NIST ITS-90 thermocouple conversion (types B, E, J, K, N, R, S, T): mV to temperature and back, with cold-junction compensation, verified against all 12,026 NIST reference table points
We found that thermocouple-its90 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket’s PHP and Composer support is now in Beta for all customers, with PHP reachability analysis generally available.

Product
Socket is bringing experimental protection to Firefox, scanning 97,000+ extensions in Mozilla's official directory for malware and risky updates.

Research
/Security News
Three compromised Rust crates pulled in a malicious dependency that downloaded and executed cross-platform malware during Cargo builds.