# Mettler Toledo Balance (pypi · labmcp-mettler-toledo)

MCP server for Mettler Toledo laboratory balances (MT-SICS): weigh, tare, zero, log drift, adjust.

- Trust score: 68/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-30

## Components

- pypi · `labmcp-mettler-toledo`: 68/100 (this document), [markdown](https://verifymcp.io/servers/k-dense-ai-labmcp-mettler-toledo/labmcp-mettler-toledo.md), [page](https://verifymcp.io/servers/k-dense-ai-labmcp-mettler-toledo/labmcp-mettler-toledo)

## Channel facts

- Registry: `pypi`
- Package: `labmcp-mettler-toledo`
- Version: `0.1.3`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-30.

- **Supply Chain Security**: 49/100
  - Malware scan not yet available for this package.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs hatchling.build at install time, a recognised build step with no custom scripting around it.
  - 2 of 17 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 100/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to K-Dense-AI/lab-instrument-mcps).
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 3 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 78/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 992 tokens (~58/item across 17 items; 17 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 13/100
  - Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 94/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 80% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 17 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the Mettler Toledo Balance MCP server?

Mettler Toledo Balance runs locally as a PyPI package, launched with uvx labmcp-mettler-toledo. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add k-dense-ai-labmcp-mettler-toledo -- uvx labmcp-mettler-toledo
```

### Cursor

```json
{
  "mcpServers": {
    "k-dense-ai-labmcp-mettler-toledo": {
      "command": "uvx",
      "args": [
        "labmcp-mettler-toledo"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "k-dense-ai-labmcp-mettler-toledo": {
      "command": "uvx",
      "args": [
        "labmcp-mettler-toledo"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add k-dense-ai-labmcp-mettler-toledo -- uvx labmcp-mettler-toledo
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "k-dense-ai-labmcp-mettler-toledo": {
      "type": "local",
      "command": [
        "uvx",
        "labmcp-mettler-toledo"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add k-dense-ai-labmcp-mettler-toledo --command uvx --arg labmcp-mettler-toledo
```

### Hermes

```yaml
mcp_servers:
  k-dense-ai-labmcp-mettler-toledo:
    command: "uvx"
    args: ["labmcp-mettler-toledo"]
```

### Netclaw

```json
{
  "McpServers": {
    "k-dense-ai-labmcp-mettler-toledo": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "labmcp-mettler-toledo"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add k-dense-ai-labmcp-mettler-toledo -t stdio -c uvx -a labmcp-mettler-toledo
```

### Other

```json
{
  "mcpServers": {
    "k-dense-ai-labmcp-mettler-toledo": {
      "command": "uvx",
      "args": [
        "labmcp-mettler-toledo"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-29 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-28 (score 67, −4)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-27 (score 71, +32)

- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.03
- [functional] First check of Schema quality: fail
- [functional] First check of Schema quality: excellent
- [functional] First check of Destructive annotations: pass
- [functional] First check of Schema quality: pass
- [functional] First check of Tool coverage: 80
- [functional] First check of Tool coverage: 100
- [functional] Package version: 0.1.2 → 0.1.3

### 2026-09-26 (score 39)

First indexed and scored.

## MCP tools (17)

### `get_connection_info` (~40 tokens)

Get Connection Info

Report which instrument is connected (identity, address, simulated or real),
whether the server is read-only, and the active safety limits. Call this first.

### `get_command_log` (~46 tokens)

Get Command Log

Return the most recent raw commands sent to / replies received from the
instrument (newest last). Useful for debugging and for recording what was done.

Input parameters:

- `limit` (integer)

Output parameters:

- `result` (array)

### `reconnect` (~35 tokens)

Reconnect

Close and re-open the connection to the instrument (e.g. after it was power
cycled or a cable was re-plugged).

### `read_weight` (~31 tokens)

Read Weight

Read the current net weight from the balance.

Input parameters:

- `stable` (boolean): Wait for a stable reading (recommended)

Output parameters:

- `stable` (boolean): True if the balance reported a stable reading
- `timestamp` (string): UTC time the reading was taken (ISO 8601)
- `unit` (string): Unit reported by the balance, e.g. 'g' or 'mg'
- `value` (number): Net weight value

### `log_weight_series` (~61 tokens)

Log Weight Series

Record a series of immediate (unfiltered) readings to monitor drift, evaporation,
moisture uptake or stabilisation. Returns every reading plus summary statistics.

Input parameters:

- `count` (integer): Number of readings
- `interval_s` (number): Seconds between readings

Output parameters:

- `count` (integer)
- `drift_per_min` (number): Least-squares slope of weight vs time, in unit/min
- `maximum` (number)
- `mean` (number)
- `minimum` (number)
- `readings` (array)
- `stdev` (number)
- `unit` (string)

### `get_tare` (~19 tokens)

Get Tare

Return the weight currently stored in the tare memory.

Output parameters:

- `stable` (boolean): True if the balance reported a stable reading
- `timestamp` (string): UTC time the reading was taken (ISO 8601)
- `unit` (string): Unit reported by the balance, e.g. 'g' or 'mg'
- `value` (number): Net weight value

### `tare` (~56 tokens)

Tare

Tare the balance: store the current load (e.g. an empty container) as the tare weight.
Returns the stored tare weight.

Input parameters:

- `immediately` (boolean): Tare now even if unstable (less accurate). Default waits for stability.

Output parameters:

- `stable` (boolean): True if the balance reported a stable reading
- `timestamp` (string): UTC time the reading was taken (ISO 8601)
- `unit` (string): Unit reported by the balance, e.g. 'g' or 'mg'
- `value` (number): Net weight value

### `set_tare_preset` (~57 tokens)

Set Tare Preset

Preset a known tare weight (e.g. a container weighed earlier).

Input parameters:

- `unit` (string): Must be the balance's unit 1, usually 'g'
- `value` (number, required): Tare weight to preset

Output parameters:

- `stable` (boolean): True if the balance reported a stable reading
- `timestamp` (string): UTC time the reading was taken (ISO 8601)
- `unit` (string): Unit reported by the balance, e.g. 'g' or 'mg'
- `value` (number): Net weight value

### `clear_tare` (~19 tokens)

Clear Tare

Clear the tare memory (tare = 0).

Output parameters:

- `result` (string)

### `zero` (~36 tokens)

Zero

Zero the balance with the current load. Also clears the tare memory.

Input parameters:

- `immediately` (boolean): Zero now even if the reading is unstable

Output parameters:

- `result` (string)

### `run_internal_adjustment` (~50 tokens)

Run Internal Adjustment

Adjust (calibrate) the balance with its built-in reference weight (MT-SICS C3).
The pan must be empty and the balance undisturbed. Takes roughly 1-3 minutes.

Output parameters:

- `result` (string)

### `show_message` (~57 tokens)

Show Message

Show a short message on the balance display (e.g. 'Add sample 3'). Use
\`show_weight_display` to return to the normal weight display.

Input parameters:

- `text` (string, required): Text for the balance display; '' clears it

Output parameters:

- `result` (string)

### `show_weight_display` (~19 tokens)

Show Weight Display

Switch the balance display back to showing the weight.

Output parameters:

- `result` (string)

### `get_draft_shield` (~30 tokens)

Get Draft Shield

Report the position of the motorised draft-shield doors (Excellence/XPR balances only).

Output parameters:

- `result` (string)

### `set_draft_shield` (~48 tokens)

Set Draft Shield

Open or close the motorised draft-shield doors. Make sure nothing (and no one's
fingers) is in the way of the doors.

Input parameters:

- `position` (string, required)

Output parameters:

- `result` (string)

### `read_temperature` (~30 tokens)

Read Temperature

Read the balance's internal temperature probe(s) in °C (MT-SICS M28, if supported).

Output parameters:

- `result` (array)

### `reset_balance` (~65 tokens)

Reset Balance

Abort whatever the balance is doing (an adjustment, a repeating weight stream, a pending
command) and reset it to its power-on state without zeroing (MT-SICS @). Clears the tare.
Motorised draft-shield doors have their own obstruction detection and reverse if blocked.

Output parameters:

- `result` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/k-dense-ai-labmcp-mettler-toledo/labmcp-mettler-toledo#diagnostics

## Score history

- 2026-09-30: 68
- 2026-09-29: 68
- 2026-09-28: 67
- 2026-09-27: 71
- 2026-09-26: 39

## Common questions

### What is the Mettler Toledo Balance MCP server?

Mettler Toledo Balance is an MCP server listed in the public MCP registry as io.github.K-Dense-AI/labmcp-mettler-toledo. MCP server for Mettler Toledo laboratory balances (MT-SICS): weigh, tare, zero, log drift, adjust. This page covers its PyPI package (labmcp-mettler-toledo).

### Is the Mettler Toledo Balance MCP server safe to use?

Mettler Toledo Balance scores 68 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 30 September 2026. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Mettler Toledo Balance MCP server expose?

Mettler Toledo Balance exposes 17 tools: get_connection_info, get_command_log, reconnect, read_weight, log_weight_series, and 12 more. Their descriptions and schemas cost roughly 699 tokens of context every time the server is loaded.

### Is the Mettler Toledo Balance MCP server still maintained?

Mettler Toledo Balance is still listed as active in the MCP registry. We last reached this channel on 30 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Mettler Toledo Balance MCP server under?

Mettler Toledo Balance declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- PyPI project: https://pypi.org/project/labmcp-mettler-toledo/
- Socket report: https://socket.dev/pypi/package/labmcp-mettler-toledo
- Repository: https://github.com/K-Dense-AI/lab-instrument-mcps
- Website: https://github.com/K-Dense-AI/lab-instrument-mcps/tree/main/servers/chemistry/mettler-toledo-balance
- Changelog RSS feed: https://verifymcp.io/servers/k-dense-ai-labmcp-mettler-toledo/labmcp-mettler-toledo.xml
- Changelog JSON feed: https://verifymcp.io/servers/k-dense-ai-labmcp-mettler-toledo/labmcp-mettler-toledo.json
- HTML version of this page: https://verifymcp.io/servers/k-dense-ai-labmcp-mettler-toledo/labmcp-mettler-toledo
