# Sartorius Balance (pypi · labmcp-sartorius)

MCP server for Sartorius laboratory balances (SBI protocol).

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

## Components

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

## Channel facts

- Registry: `pypi`
- Package: `labmcp-sartorius`
- Version: `0.1.2`
- 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**: 99/100
  - No malware found by supply-chain analysis.
  - 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**: 79/100
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 973 tokens (~97/item across 10 items; 10 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 10 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 11 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 Sartorius Balance MCP server?

Sartorius Balance runs locally as a PyPI package, launched with uvx labmcp-sartorius. 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-sartorius -- uvx labmcp-sartorius
```

### Cursor

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

### VS Code

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

### Codex

```bash
codex mcp add k-dense-ai-labmcp-sartorius -- uvx labmcp-sartorius
```

### opencode

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

### OpenClaw

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

### Hermes

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

### Netclaw

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

### Vellum

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

### Other

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

## 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 83, +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 82, +43)

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

### 2026-09-27 (score 39, 0)

- [functional] Package version: 0.1.1 → 0.1.2

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

First indexed and scored.

## MCP tools (10)

### `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` (~95 tokens)

Read Weight

Read the current net weight from the balance (ESC P). With stable=True the server polls
until the balance reports a stable value; if it cannot settle (draughts, vibration,
evaporation) you get an error; retry, or use stable=false for the current value.

Input parameters:

- `stable` (boolean): Wait for a stable reading (recommended)
- `timeout_s` (number): Max. seconds to wait for stability

Output parameters:

- `id_code` (string): SBI 22-character-format ID code (e.g. 'N' = net); '' in 16-character format
- `stable` (boolean): True if the balance marked the reading as stable
- `timestamp` (string): UTC time the reading was taken (ISO 8601)
- `unit`: Unit sent by the balance (e.g. 'g'). SBI omits it for unstable readings; then this is the last unit seen, or None
- `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`

### `tare` (~74 tokens)

Tare

Tare the balance (ESC U, or ESC T on legacy balances): the current load (e.g. an empty
container) becomes the tare. Then waits for a stable reading and checks that it is ~0;
returns that reading.

Input parameters:

- `timeout_s` (number): Max. seconds to wait for the tared reading

Output parameters:

- `id_code` (string): SBI 22-character-format ID code (e.g. 'N' = net); '' in 16-character format
- `stable` (boolean): True if the balance marked the reading as stable
- `timestamp` (string): UTC time the reading was taken (ISO 8601)
- `unit`: Unit sent by the balance (e.g. 'g'). SBI omits it for unstable readings; then this is the last unit seen, or None
- `value` (number): Net weight value

### `zero` (~64 tokens)

Zero

Zero the balance (ESC V). Only works with the pan (nearly) empty, within the balance's
zero-setting range; clears the tare. Confirms by reading ~0 afterwards.

Input parameters:

- `timeout_s` (number): Max. seconds to wait for the zeroed reading

Output parameters:

- `id_code` (string): SBI 22-character-format ID code (e.g. 'N' = net); '' in 16-character format
- `stable` (boolean): True if the balance marked the reading as stable
- `timestamp` (string): UTC time the reading was taken (ISO 8601)
- `unit`: Unit sent by the balance (e.g. 'g'). SBI omits it for unstable readings; then this is the last unit seen, or None
- `value` (number): Net weight value

### `run_internal_adjustment` (~101 tokens)

Run Internal Adjustment

Adjust (calibrate) the balance with its built-in weight (ESC Z; isoCAL models only).
The pan must be empty and the balance undisturbed. SBI sends no completion message, so the
server watches for the adjustment status and waits until the balance weighs again; check
\`observed_adjustment` and the balance display or GLP printout for the result.

Input parameters:

- `timeout_s` (number): Max. seconds for the adjustment

Output parameters:

- `duration_s` (number)
- `final_reading`
- `message` (string)
- `observed_adjustment` (boolean): True if the balance reported an adjustment in progress (Cal.* status or busy)

### `set_ambient_conditions` (~60 tokens)

Set Ambient Conditions

Adapt the balance's filter to the ambient conditions (ESC K/L/M/N). Use 'unstable' or
'very_unstable' for draughty or vibrating benches (slower but steadier readings).

Input parameters:

- `conditions` (string, required)

Output parameters:

- `result` (string)

### `lock_keypad` (~53 tokens)

Lock Keypad

Block or unblock the balance keys, e.g. so nobody tares by accident during a long logging run.

Input parameters:

- `locked` (boolean, required): True blocks the balance keys (ESC O), False unblocks (ESC R)

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-sartorius/labmcp-sartorius#diagnostics

## Score history

- 2026-09-30: 83
- 2026-09-29: 83
- 2026-09-28: 82
- 2026-09-27: 39
- 2026-09-26: 39

## Common questions

### What is the Sartorius Balance MCP server?

Sartorius Balance is an MCP server listed in the public MCP registry as io.github.K-Dense-AI/labmcp-sartorius. MCP server for Sartorius laboratory balances (SBI protocol). This page covers its PyPI package (labmcp-sartorius).

### Is the Sartorius Balance MCP server safe to use?

Sartorius Balance scores 83 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 Sartorius Balance MCP server expose?

Sartorius Balance exposes 10 tools: get_connection_info, get_command_log, reconnect, read_weight, log_weight_series, and 5 more. Their descriptions and schemas cost roughly 629 tokens of context every time the server is loaded.

### Is the Sartorius Balance MCP server still maintained?

Sartorius 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 Sartorius Balance MCP server under?

Sartorius 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-sartorius/
- Socket report: https://socket.dev/pypi/package/labmcp-sartorius
- Repository: https://github.com/K-Dense-AI/lab-instrument-mcps
- Website: https://github.com/K-Dense-AI/lab-instrument-mcps/tree/main/servers/chemistry/sartorius-balance
- Changelog RSS feed: https://verifymcp.io/servers/k-dense-ai-labmcp-sartorius/labmcp-sartorius.xml
- Changelog JSON feed: https://verifymcp.io/servers/k-dense-ai-labmcp-sartorius/labmcp-sartorius.json
- HTML version of this page: https://verifymcp.io/servers/k-dense-ai-labmcp-sartorius/labmcp-sartorius
