
Mettler Toledo Balance
io.github.K-Dense-AIPublished by GitHub account K-Dense-AIv0.1.3Updated Oct 27, 2026
MCP server for Mettler Toledo laboratory balances (MT-SICS): weigh, tare, zero, log drift, adjust.
Overview
Local MCP server that drives Mettler Toledo laboratory balances over MT-SICS, letting an assistant weigh, tare, zero, log drift and run adjustments.
- What you can do
- Read weight, tare memory, internal temperature and draft-shield position, and log weight series with summary statistics for drift or evaporation.
- Tare, clear tare, preset a tare weight, zero the balance, and show or restore messages on the display.
- Open or close motorised draft-shield doors and run an internal adjustment with the built-in reference weight.
- Inspect connection details, review the raw command log, reconnect after a power cycle, and reset the balance to its power-on state.
- When to use it
- Useful in a lab where a Mettler Toledo balance is connected by serial, USB or Ethernet and you want an assistant to read weights, tare containers, monitor drift or evaporation, or run a calibration adjustment as part of a protocol.
- Requirements
- Runs locally as a Python package (uvx labmcp-mettler-toledo) over stdio; desktop only. Needs a balance set to MT-SICS mode and reachable via serial port or TCP address, given in LABMCP_ADDRESS. A built-in simulator (LABMCP_SIMULATE) allows testing without hardware. No authentication is declared.
Installation
In SourceWeft
- Open Mettler Toledo Balance in the dashboard and add it to a workspace.
- 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
Mettler Toledo Balance — MCP Server
Let an AI agent weigh samples, tare containers, log drift and evaporation, run internal adjustments and drive the draft shield on Mettler Toledo balances through the open MT-SICS interface command set.
Try it without hardware
Connect your balance
- Balance setup: in the balance menu, set the interface (RS232/USB/Ethernet) to MT-SICS (sometimes called "Host" or "Dialog"). Factory settings are 9600 baud, 8 data bits, no parity, 1 stop bit, Xon/Xoff.
- Find the port:
uvx labmcp ports - Test the connection:
Non-default settings go in the address:
serial://COM4?baudrate=19200&xonxoff=false.
Add to your MCP client
Claude Code
Claude Desktop / Cursor / Windsurf (claude_desktop_config.json, .cursor/mcp.json, …)
Add --read-only to allow weighing but block taring, zeroing and door movement. For other clients, generate the snippet with uvx labmcp config mettler-toledo --address /dev/ttyUSB0 --client vscode (also cursor, codex, claude-code).
Tools
get_connection_info, get_command_log and reconnect are built into every LabMCP server.
Safety limits
Override at launch: --limit max_series_duration_s=3600. Whatever the limit says, a single series is capped at one hour (the tool's time limit).
Example prompts
- "Tare the balance, then tell me when the reading is stable after I add the sample."
- "Log the weight every 10 s for 5 minutes and tell me the evaporation rate in mg/min."
- "Weigh out ~250 mg: tell me how much more to add, reading every few seconds, until I'm within ±2 mg."
- "Run an internal adjustment and confirm it succeeded before we start the calibration curve."
Notes
read_weight(stable=True)sendsS, which waits for stability. If the balance cannot settle (draughts, vibration), it returnsS I. The server reports this as an error, so retry or usestable=false.- Weights are in the balance's unit 1 (normally grams). Units shown on the display (unit 2) don't affect the interface.
- Draft-shield (
WS) and temperature (M28) commands exist only on balances with that hardware; other balances answerES/L, which the server reports clearly. run_internal_adjustmentwaits for the finalC3 Awithout blocking the connection:reset_balanceaborts a running adjustment, and other commands are refused until it ends (their replies would be mixed up with the result).- Before each command the server discards anything the balance sent unasked (e.g. a print-key transmission) and checks that the reply belongs to the command, so one late reply cannot shift every later reply by one.
show_messageaccepts printable ASCII only, andset_tare_presetonly a unit symbol: a line break would otherwise reach the balance as a second MT-SICS command.
Hardware verification
Source: servers/chemistry/mettler-toledo-balance/README.md at commit 46545ea
Tools
0Version history
2- v0.1.3LatestSep 27, 2026
- v0.1.1Sep 26, 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