Skip to main content
Glama
sinagilassi

PyThermoCalcDB-NASA-MCP

by sinagilassi

๐Ÿงช PyThermoCalcDB-NASA-MCP

PyPI Downloads PyPI Python Version License MCP

PyThermoCalcDB-NASA-MCP is a Model Context Protocol server for running selected pythermocalcdb-nasa thermodynamic calculations from agents and MCP-compatible clients.

๐ŸŒ Overview

The MCP package is an interface and orchestration layer. It validates structured requests, builds a ModelSource, calls deterministic pythermocalcdb-nasa functions, and returns JSON-safe results. It does not implement the scientific calculation itself.

The default source workflow uses the embedded NASA-9 SQLite database included by pythermocalcdb-nasa. If a component is unavailable locally, the MCP server returns a structured failure. External data search is not this MCP server's responsibility; another agent or caller should prepare complete pyThermoDB REFERENCE content and call the tool with source: "reference".

Use this package to:

  • Calculate H_T, S_T, G_T, and Cp_T for one component.

  • Calculate dH_rxn_STD, dS_rxn_STD, dG_rxn_STD, Keq, and Keq_vh_shortcut for reactions.

  • Validate externally prepared pyThermoDB YAML reference content.

Related MCP server: MoziChem-MCP

๐Ÿ“ฆ Installation

pip install pythermocalcdb-nasa-mcp

For local development:

uv sync

โ–ถ๏ธ Running

STDIO is the default transport:

pythermocalcdb-nasa-mcp --mode stdio

HTTP transport is also supported:

pythermocalcdb-nasa-mcp --mode http --host 127.0.0.1 --port 8000 --path /mcp

From a local checkout:

uv run pythermocalcdb-nasa-mcp --mode stdio

๐Ÿ”Œ MCP Client Configuration

๐Ÿงต STDIO:

{
  "mcpServers": {
    "pythermocalcdb-nasa": {
      "command": "pythermocalcdb-nasa-mcp",
      "args": ["--mode", "stdio"]
    }
  }
}

๐ŸŒ HTTP:

{
  "mcpServers": {
    "pythermocalcdb-nasa": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

๐Ÿ•ต๏ธ MCP Inspector

You can test the server with the official MCP Inspector.

For direct STDIO testing from a local checkout:

npx @modelcontextprotocol/inspector uv run pythermocalcdb-nasa-mcp --mode stdio

For HTTP testing, start the server first:

uv run pythermocalcdb-nasa-mcp --mode http --host 127.0.0.1 --port 8000 --path /mcp

Then connect Inspector to:

http://127.0.0.1:8000/mcp

๐Ÿ“š MCP Resources

  • pythermocalcdb-nasa://references/nasa-requirements

    • Source policy, NASA symbols, units, temperature ranges, and agent boundaries.

  • pythermocalcdb-nasa://workflows/species-properties

    • Workflow for H_T, S_T, G_T, and Cp_T.

  • pythermocalcdb-nasa://workflows/reaction-properties

    • Workflow for dH_rxn_STD, dS_rxn_STD, dG_rxn_STD, Keq, and Keq_vh_shortcut.

  • pythermocalcdb-nasa://guidance/agent-checklist

    • Checklist for reliable database-first and reference-backed calls.

๐Ÿงฐ MCP Tools

๐Ÿ”ฅ Species tools:

  • calc_H_T

  • calc_S_T

  • calc_G_T

  • calc_Cp_T

โš—๏ธ Reaction tools:

  • calc_dH_rxn_STD

  • calc_dS_rxn_STD

  • calc_dG_rxn_STD

  • calc_Keq

  • calc_Keq_vh_shortcut

๐Ÿ› ๏ธ Utility tool:

  • check_yaml_reference

๐Ÿ“ Input Model Notes

Calculation tools receive one Pydantic argument named request. They use shared domain models from pythermodb_settings, including Component, Temperature, and ComponentKey.

๐Ÿ—„๏ธ Database-backed species request:

{
  "request": {
    "component": {
      "name": "carbon dioxide",
      "formula": "CO2",
      "state": "g"
    },
    "temperature": {
      "value": 300.0,
      "unit": "K"
    },
    "source": "database",
    "component_key": "Name-Formula",
    "nasa_type": "nasa9",
    "basis": "molar"
  }
}

๐Ÿ“„ Reference-backed species request:

{
  "request": {
    "component": {
      "name": "component name from prepared reference",
      "formula": "Formula",
      "state": "g"
    },
    "temperature": {
      "value": 300.0,
      "unit": "K"
    },
    "source": "reference",
    "reference_content": "REFERENCES:\n  ...",
    "component_key": "Name-Formula",
    "nasa_type": "nasa9",
    "basis": "molar"
  }
}

๐Ÿ—„๏ธ Database-backed reaction request:

{
  "request": {
    "name": "Water-Gas Shift Reaction",
    "reaction": "CO(g) + H2O(g) => CO2(g) + H2(g)",
    "components": [
      {"name": "carbon monoxide", "formula": "CO", "state": "g"},
      {"name": "dihydrogen monoxide", "formula": "H2O", "state": "g"},
      {"name": "carbon dioxide", "formula": "CO2", "state": "g"},
      {"name": "dihydrogen", "formula": "H2", "state": "g"}
    ],
    "temperature": {
      "value": 398.15,
      "unit": "K"
    },
    "source": "database",
    "component_key": "Name-Formula",
    "nasa_type": "nasa9"
  }
}

Use the same reaction request shape with calc_Keq_vh_shortcut when a van't Hoff shortcut estimate is requested. It returns a dimensionless equilibrium constant.

Responses follow this contract:

{
  "success": true,
  "message": "H_T completed successfully.",
  "results": {
    "operation": "H_T",
    "value": 0.0,
    "unit": "J/mol"
  },
  "analysis": {
    "source": "database"
  },
  "warnings": []
}

โœ… Best Practices

  • Use source: "database" first for NASA-9 data in supported g, l, and s phases.

  • Use source: "reference" only with complete externally prepared reference_content.

  • Do not ask this MCP server to search external scientific data.

  • Keep temperature inputs in Kelvin.

  • Make sure every reaction species appears in both the reaction equation and components.

  • Use nasa_type: "nasa9" with the database source.

  • Check success, message, and warnings before reporting results.

๐Ÿงช Development Quick Check

python -m py_compile pythermocalcdb_nasa_mcp/server.py
python -m py_compile pythermocalcdb_nasa_mcp/interface/core.py
python -m py_compile pythermocalcdb_nasa_mcp/models/nasa.py
python -m unittest discover tests

๐Ÿš€ Examples

Example payload shapes are available in examples/request_payloads.py.

๐Ÿ“„ License

This project is licensed under the Apache License 2.0. See LICENSE.

๐Ÿ‘ค Author

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to perform complex chemical engineering calculations including thermodynamic modeling, equation of state calculations, phase equilibrium computations, and vapor-liquid equilibrium analysis. Built on the MoziChem framework to bridge AI language models with specialized chemical engineering tools.
    6
    4
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    A 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.
    MIT

View all related MCP servers

Related MCP Connectors

  • Science MCP โ€” free science data APIs

  • Materials MCP โ€” computed (DFT) materials structures & thermodynamic properties.

  • AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sinagilassi/PyThermoCalcDB-NASA-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server