PHM Physics Check

io.github.PHM-AuditPublished by GitHub account PHM-Auditv1.0.1Updated Nov 6, 2026

Deterministic physics plausibility checks for LLM outputs and robotics data. Offline, stdlib-only.

The publisher's own server: check.tattoo: tattoo size and placement guide

VerifiedSTDIODesktop onlyDeveloper ToolsAI & ML

Overview

AI-generated overview

Local MCP server that runs deterministic physics plausibility checks on LLM text, single quantities and robotics records, returning PASS/WARN/FAIL verdicts.

What you can do
  • Check free text with quantities for unit consistency, speed-of-light and temperature limits, non-negativity and probability range
  • Check a single value and unit against physical law
  • Validate robotics records for quaternion normalization, timestamp sanity, NaN/Inf values and missing unit annotations
  • Return structured PASS/WARN/FAIL verdicts with violation records, reproducibly and offline
When to use it
Useful when an assistant produces or reviews physics-flavoured numbers, engineering text or robotics/embodied-AI datasets and you want a deterministic sanity gate rather than another model's opinion. It is a lightweight offline subset, not a full physics engine.
Requirements
Runs as a local stdio process started with python3 -m phm_lite_check.mcp_server; Python 3.8 or newer with no third-party dependencies. Installed from the GitHub repository or a release wheel; no API keys, accounts or network access needed.
Before you install
It only covers the deterministic offline subset; proprietary deep checks are excluded and a separate remote engine endpoint is mentioned but not included. Verdicts are heuristic plausibility flags, so treat WARN/FAIL as signals to review, not authoritative physics validation. The package is community-provided and not affiliated with the frameworks it offers adapters for.

Installation

In SourceWeft

  1. Open PHM Physics Check in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

phm-lite-check

Deterministic physics plausibility checking for LLM outputs and robotics / embodied-AI datasets. Zero dependencies, pure standard library, Python >= 3.8.

This package is an independent, community-provided library: it is the offline subset of the PHM physical-judgment engine (proprietary core methods are intentionally excluded). A companion plugin (phm-physics-check) is listed on the Dify Marketplace.

Not affiliated with, endorsed by, or sponsored by LangChain, AutoGen, or Dify. Integration adapters are community-provided.

MCP server

This package doubles as a local MCP server (stdio transport). After installing, point your MCP client at:

python3 -m phm_lite_check.mcp_server

Exposing three tools: physics_text_check, physics_quantity_check, robotics_data_check.

What it checks

Text / quantities (check_text, full_check)

  • Dimensional / unit consistency (SI + common units)
  • Universal speed limit (c)
  • Absolute temperature floor (0 K)
  • Non-negativity of mass / length / energy
  • Probability range [0, 1]
  • Kinematic relations (free-fall family, tolerance-checked)
  • Conservation checks (energy / momentum, tolerance-checked)

Robotics records (check_robotics_record)

  • Quaternion normalization (|q| within tolerance of 1.0)
  • Timestamp sanity: monotonicity, duplicates, NaN/Inf, outlier gaps (possible frame loss)
  • NaN / Inf scan over numeric arrays
  • Unit annotation presence for common motion fields

Design guarantees

  • Deterministic: same input -> same output, always reproducible.
  • Zero dependencies: pure standard library; framework adapters import their host lazily.
  • Verdicts: PASS / WARN / FAIL with structured violation records.
  • No network calls: everything runs offline in-process.

NOTE: this package contains only the deterministic offline subset of the PHM physical-judgment engine. Proprietary core methods are intentionally excluded. (Deployment-specific deep checks are available separately via a configurable remote engine endpoint, not included in this package.)

Install

Option A — from the GitHub repo (no package index needed):

bash
pip install git+https://github.com/PHM-Audit/phm-lite-check

Option B — from a Release wheel (faster, no git clone):

bash
pip install https://github.com/PHM-Audit/phm-lite-check/releases/download/v1.0.0/phm_lite_check-1.0.0-py3-none-any.whl

Optional extras (once installed):

bash
pip install "phm-lite-check[langchain]"   # + langchain-core (adapter tests)pip install "phm-lite-check[autogen]"     # + autogen-agentchat

PyPI listing is planned; both options above work today.

Quickstart — library

python
from phm_lite_check import check_text, check_robotics_record
check_text("The drone descends at 450 km/h and confidence is 1.8.")# {"verdict": "FAIL", "violations": [...], ...}
check_robotics_record({    "quaternion": [1.395, 0.0, 0.0, 0.0],   # |q| >> 1 -> FAIL    "timestamps": [0.0, 0.1, 0.05],          # not monotonic -> FAIL    "position": [1.0, 2.0],                  # no unit annotated -> WARN})

Quickstart — LangChain

python
from phm_lite_check.integrations import langchain_tool
tools = langchain_tool.get_langchain_tools()   # 3 @tool callablesagent = create_react_agent(llm, tools)         # your usual wiring

Quickstart — AutoGen (v0.4+)

python
from autogen_agentchat.agents import AssistantAgentfrom phm_lite_check.integrations import autogen_tool
assistant = AssistantAgent(    name="checked_assistant",    model_client=...,                    # your model client    tools=autogen_tool.get_autogen_tools(),)

Tools exposed by both adapters

ToolInputChecks
physics_text_checkfree text with quantitiesunit consistency, limits, probabilities
physics_quantity_checkvalue + unitone quantity against physical law
robotics_data_checkJSON recordquaternions, timestamps, NaN/Inf, units

Tests

bash
pip install -e ".[dev]"pytest tests/ -q

License

MIT

Source: README.md at commit 5e32d2f

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

1
  1. v1.0.1LatestNov 6, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Check integrations