vle-mcp
vle-mcp provides 14 read-only, deterministic thermodynamics tools backed by the vle-thermo scientific library.
Calculate water and steam properties using IAPWS-IF97: saturation temperature and full saturation tables, plus density, enthalpy, entropy, heat capacities, speed of sound, and transport properties from several state specifications.
Look up supported pure components by name, formula, or CAS number and retrieve molar mass, critical properties, acentric factor, and normal boiling point.
Analyze 1–10-component mixtures with cubic equations of state: PT flash, bubble/dew points, critical point, phase envelope, and phase properties including Z, density, enthalpy, entropy, Cp, and fugacity coefficients.
Characterize petroleum fractions, estimate critical and physical properties, convert boiling points between pressures, and derive atmospheric-equivalent temperatures from vacuum distillation data.
Accept common temperature and absolute-pressure units and return structured, unit-labelled results with calculation-method and library provenance.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vle-mcp calculate boiling point of water at 2 bar"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
vle-mcp

Hero image generated with ChatGPT Images via OpenAI Codex (GPT-5.6 Sol).
An educational Model Context Protocol server for the
vle scientific library (published on PyPI
as vle-thermo).
It exposes 14 read-only tools: water and steam properties (IAPWS-IF97), a bundled pure-component database, multicomponent vapor-liquid equilibrium with cubic equations of state, and petroleum-fraction characterization. The chatbot interprets and explains the request; tested scientific software supplies the number.
Development: this repository is currently being developed using Claude Code, under Miguel Jackson's direction. See Authorship.
Status
M0 through M3 are implemented and locally verified. The tool catalogue exposes
a reviewed selection of the vle-thermo 0.18 public API (see Tools).
The project supports local stdio and an OAuth-protected Streamable HTTP ASGI
application factory for remote deployment. Verification includes protocol round trips over both
transports, a real stdio subprocess handshake, RFC 9728 metadata, bearer scope
and resource binding, and remote resource limits. See PLAN.md,
TODO.md, the M2 verification record,
and the M3 remote guide.
Related MCP server: Agentic-AI-Planning-And-Reasoning-MCP
Why MCP?
MCP gives AI clients a standard way to discover and call typed tools. It separates natural-language reasoning from authoritative programs and data:
the model determines intent;
the MCP client controls connections and tool use;
this server validates a typed request;
vleperforms the scientific calculation.
See docs/mcp-primer.md for the protocol path and docs/architecture.md for the component architecture. PLAN.md records the Python and API-granularity decisions.
Development setup
Python 3.11 or newer is required.
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -e '.[dev]'
.venv/bin/vle-mcpThe last command starts a stdio MCP server and waits for a client. It is not an interactive shell; use an MCP client or the protocol tests.
For development against a local vle checkout, install its Python package into
the virtual environment according to that repository's build instructions.
Do not commit a machine-specific path.
For remote clients, integrate the ASGI factory with a maintained OAuth token verifier and HTTPS ingress. The remote endpoint deliberately cannot start without those operator-owned security inputs. See docs/remote-http.md.
Tools
Every tool is read-only, deterministic, and annotated as such. Pressures are
always absolute. Temperatures accept K, degC, degF, or degR; pressures
accept Pa, kPa, MPa, bar, or atm. Every result carries its units and
a calculation block naming the library, method, and installed vle-thermo
version.
Tool | Answers | Backed by |
| Boiling temperature of water at a pressure |
|
| Saturation-table row at T or P: vapor pressure, h/s/v/u of both phases, latent heat, viscosity, conductivity, surface tension |
|
| Full state from T+P, T+quality, P+quality, P+h, or P+s: density, h, s, cp, cv, speed of sound, transport properties |
|
| Names, formulas, and CAS numbers the mixture tools accept |
|
| Molar mass, critical point, acentric factor, normal boiling point |
|
| Isothermal (PT) flash: vapor fraction, phase compositions, K-values |
|
| Bubble temperature at P, or bubble pressure at T, and the first vapor |
|
| Dew temperature at P, or dew pressure at T, and the first liquid |
|
| Mixture Tc, Pc, Vc (Heidemann-Khalil) |
|
| P-T phase envelope points |
|
| Z, density, H, S, Cp, and fugacity coefficients of one phase |
|
| Watson K, molar mass, critical properties, and acentric factor from boiling point and gravity |
|
| Boiling point of a fraction at another pressure (Maxwell-Bonnell) |
|
| Atmospheric equivalent temperature from vacuum distillation data |
|
Mixture tools take 1 to 10 components from list_components, with mole
fractions greater than zero that sum to one (within 0.001; the normalized
composition is echoed back). The model is one cubic equation of state for both
phases (PR, SRK, RK, PRSV, VdW, Schmidt-Wenzel, or Patel-Teja)
with classical mixing and zero binary interaction parameters. Solver
iterations are capped. The architecture guide
records which parts of the vle API are deliberately not exposed and why.
Example: boiling point of water at one atmosphere.
{"pressure": 101.325, "pressure_unit": "kPa"}water_saturation_temperature returns approximately 373.1243 K or
99.9743 °C.
Example: flash of a light-hydrocarbon mixture at 250 K and 20 bar.
{
"component_names": ["methane", "ethane", "propane", "n-butane"],
"mole_fractions": [0.4, 0.3, 0.2, 0.1],
"temperature": 250,
"pressure": 20,
"pressure_unit": "bar"
}With the default Peng-Robinson model, mixture_flash reports a two-phase split
with a vapor fraction of about 0.486.
Verification
.venv/bin/python scripts/check_public_data.py
.venv/bin/ruff check .
.venv/bin/ruff format --check .
.venv/bin/pytest
.venv/bin/python scripts/verify_stdio_client.py --command .venv/bin/vle-mcpSecurity
The tools remain read-only and deterministic. Stdio requires no credentials;
Streamable HTTP requires a resource-bound bearer token with vle:read. Read
SECURITY.md, docs/security-model.md,
and docs/remote-http.md before deployment or extension.
Authorship
Miguel Jackson owns and directs the project. M0 through M3 were implemented
collaboratively by OpenAI Codex using the GPT-5.6 Sol model, following Miguel's
instructions and approved plan. Development now continues with
Claude Code (Claude Opus 5.5), which scoped
the project to vle alone and built the vle-thermo 0.18 tool catalogue. See
AUTHORS.md for the precise human/AI attribution and limitations.
License
MIT
Available Tools
1 toolwater_saturation_temperatureA
Calculate water's boiling/saturation temperature at an absolute pressure.
Use this for questions such as “What is the boiling temperature of water at atmospheric pressure?” One standard atmosphere is 1 atm or 101.325 kPa absolute. Do not use gauge pressure.
Inputs: pressure (required), pressure_unit. Returns: Structured result for a water saturation-temperature query.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion or overlap.
The single tool uses a clear lowercase_with_underscores naming convention, consistent with common practices.
The server has only one tool, which is minimal. While it may serve a specific narrow purpose, it lacks the typical breadth expected of a functional server.
The tool covers a single calculation function. For a dedicated water properties server, this might be sufficient, but it offers no related utilities or additional thermodynamic properties, leaving likely gaps.
Related MCP Connectors
MCP server for aerospace calculations: orbital mechanics, ephemeris, DSN operations, ...
Hosted MCP server for live public-data APIs and Skills for AI agents.
Engineering calculation MCP server for oil and gas engineering applications.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
AlicenseBqualityBmaintenanceMCP server enabling AI assistants to access the Axiomatic_AI Platform for scientific computing, document processing, and photonic circuit design.57448 PyPI24MIT- AlicenseNot gradedqualityDmaintenanceMCP server for step-by-step mathematical reasoning and planning, enabling AI agents to execute calculations and perform GUI actions like opening PowerPoint.1Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables to perform mathematical calculations, retrieve weather information, and manage files through a standardized MCP interface, showcasing best practices for building MCP servers.1MIT
- AlicenseAqualityDmaintenanceA collection of MCP servers for chemical engineering and chemistry applications, enabling AI assistants to perform thermodynamic calculations, equation of state modeling, and phase equilibrium computations.5MIT