Thermo Orbitrap (Instrument API) — Claude Code MCP server
Connects AI coding assistants to Thermo Fisher Orbitrap mass spectrometers via the official Instrument API. Enables live scan monitoring and acquisition control.
claude mcp add --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> --transport stdio thermo-iapi -- uvx labmcp-thermo-iapiWhat Thermo Orbitrap (Instrument API) does
This adapter lets an LLM agent interact directly with Orbitrap spectrometers across Tribrid, Exploris, and Q Exactive series. The agent can inspect instrument modes, monitor vacuum sensor metrics, stream MS scans, queue custom scan tasks, and control raw file acquisitions.
The server relies on Thermo's .NET Instrument API on a Windows workstation with Python 3.10+ and pythonnet. Proprietary assemblies are not distributed with this package due to licensing rules. You must provide your own licensed vendor DLL files from an instrument running Tune.
A critical point to remember: this package has only been verified against a software simulator, not physical hardware. You can evaluate workflows offline using the built-in Exploris 480 simulator. Note that Orbitrap Astral and Exploris 120 models do not support this API.
What it helps with
- monitor spectrometer status and vacuum readings in real time
- stream mass spectrometry scans and centroid data directly into an agent
- queue validated custom scan parameters and repeating acquisitions
- manage raw data recording on the instrument PC
- test lab automation pipelines via an offline Orbitrap simulator
Example prompts for the agent
- Check the current Orbitrap vacuum levels and operating status
- Start the instrument simulator for Exploris 480 and read recent survey scans
- Cancel all pending custom scan requests on the spectrometer
How to install Thermo Orbitrap (Instrument API)
Platform CLI
claude mcp add --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> --transport stdio thermo-iapi -- uvx labmcp-thermo-iapiReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-thermo-iapi <command>
Platform CLI
codex mcp add thermo-iapi --env LABMCP_ADDRESS=<LABMCP_ADDRESS> --env LABMCP_SIMULATE=<LABMCP_SIMULATE> --env LABMCP_READ_ONLY=<LABMCP_READ_ONLY> --env LABMCP_LIMITS=<LABMCP_LIMITS> -- uvx labmcp-thermo-iapiReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-thermo-iapi <command>
Config file
{
"mcpServers": {
"thermo-iapi": {
"command": "uvx",
"args": [
"labmcp-thermo-iapi"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-thermo-iapi <command>
Config file
{
"servers": {
"thermo-iapi": {
"type": "stdio",
"command": "uvx",
"args": [
"labmcp-thermo-iapi"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-thermo-iapi <command>
Platform CLI
gemini mcp add -e LABMCP_ADDRESS=<LABMCP_ADDRESS> -e LABMCP_SIMULATE=<LABMCP_SIMULATE> -e LABMCP_READ_ONLY=<LABMCP_READ_ONLY> -e LABMCP_LIMITS=<LABMCP_LIMITS> thermo-iapi uvx labmcp-thermo-iapiReplace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from labmcp-thermo-iapi <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Thermo Orbitrap (Instrument API)
How to install Thermo Orbitrap (Instrument API) in Claude Code?
Run this command in your terminal: claude mcp add labmcp-thermo-iapi -- uvx labmcp-thermo-iapi.
What is required to connect to real laboratory hardware?
You need a Windows host running Tune, Python 3.10+ with pythonnet, and a signed Thermo Fisher IAPI license. The proprietary .NET DLL assemblies must be placed into a local folder specified in the server options.
Can I test this MCP server without an actual instrument?
Yes, running the server with the --simulate flag starts an emulated Exploris 480 instance. It generates synthetic tryptic digest scans and periodic vacuum readbacks for testing.