
Opentrons OT-2 / Flex
io.github.K-Dense-AI由 GitHub 账号 K-Dense-AI 发布v0.1.3更新于 Oct 25, 2026
MCP server for Opentrons OT-2 and Flex liquid-handling robots (HTTP API).
概览
该 MCP 服务器让 AI 助手通过机器人 HTTP API,在 Opentrons OT-2 和 Flex 液体处理机器人上上传、审查并运行实验方案。
- 可以做什么
- 上传实验方案,并在运行前读取分析结果、甲板布局、耗材、移液器和液体信息,其中甲板布局需要用户确认。启动、暂停、恢复和停止运行,并跟踪运行状态、进度、最近步骤和错误。查看机器人信息:名称、型号、软件和固件版本、灯光、舱门和急停状态。列出已安装的移液器、夹爪和模块,含实时温度、目标值和振荡速度。关闭模块、归位机器人、开关甲板灯、重新连接,并读取原始命令日志。
- 适用场景
- 适合让助手协助准备和监控 Opentrons 机器人上的液体处理运行:检查方案分析是否通过、确认甲板、启动或暂停运行、排查错误。内置模拟器可在没有硬件时试用。
- 运行要求
- 通过 uvx 运行的本地 Python 包(stdio)。机器人须与运行服务器的电脑在同一网络,地址由 LABMCP_ADDRESS(串口或 tcp 形式)或 address 选项提供;机器人软件需 5.1 或更新。Flex 启用访问控制时可能需要访问令牌选项。设置 LABMCP_SIMULATE=1 可改用内存模拟器而非硬件。
安装
在 SourceWeft 中
- 打开 控制台中的 Opentrons OT-2 / Flex,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Opentrons OT-2 / Flex — MCP Server
Let an AI agent upload and check protocols, review the deck layout with you, start, pause, stop and resume runs, follow their progress, and read pipettes and modules on Opentrons Flex and OT-2 liquid-handling robots through the robot's documented HTTP API.
Why this server rather than a generic HTTP wrapper: it refuses to start a run unless the robot's own protocol analysis passed, the user has confirmed the deck, the door is closed, the E-stop is released and module setpoints are within your limits. It exposes no single-move pipetting commands, keeps pause and stop available even in read-only mode, and records every HTTP request in the command log.
Try it without hardware
The simulator runs protocols in memory: Python protocols are compiled and scanned for labware, pipettes, modules and steps, runs go through the real status lifecycle, and module temperatures respond to the protocol.
Connect your robot
- Find the IP address: Opentrons App > Devices > your robot > Robot settings > Networking (or on the Flex touchscreen: Settings > Network). The robot must be on the same network as the computer running the MCP server. USB-connected robots also get an IP address (OT-2:
169.254.x.x). - Test the connection:
--checkprints the robot's name, model, software and firmware versions. - Access control (Flex only, rarely needed): if your Flex has access control enabled and requests fail with HTTP 401, pass a token with
--option access_token=<token>.
Add to your MCP client
Claude Code
Claude Desktop / Cursor / Windsurf (claude_desktop_config.json, .cursor/mcp.json, …)
Add --read-only to let the agent monitor the robot (status, runs, protocols, modules) while blocking uploads, runs, homing and lights. pause_run, stop_run and deactivate_modules stay available. For other clients, generate the snippet with uvx labmcp config opentrons --address 192.168.1.20 --client vscode (also cursor, codex, claude-code).
Tools
get_connection_info, get_command_log and reconnect are built into every LabMCP server. get_command_log shows every HTTP request sent to the robot and its reply.
Safety limits
The defaults are the hardware maxima. Tighten them for heat-sensitive plastics or samples: --limit max_module_temperature_c=70 --limit max_shake_speed_rpm=1500. The check reads the setpoints from the robot's analysis of the protocol (every celsius and rpm value in module commands, including thermocycler profiles).
Other safety interlocks built into start_run:
- the robot's analysis must have completed with result
ok(pending, failed or parameter-required analyses are refused, and the errors are shown); deck_confirmed=trueis required, which the agent should only pass after you confirmed the deck matches the layout fromget_protocol;- no other run may be active, the Flex door must be closed and the E-stop released.
Example prompts
- "Upload
~/protocols/serial_dilution.pyto the Flex and tell me whether the analysis passed. What labware do I need where?" - "The deck is set up as you listed. Start the serial dilution run and tell me when it's halfway."
- "What is the robot doing right now? How many steps are left?"
- "Pause the run — I need to top up the reservoir." … "OK, resume."
- "The run says a tip is missing. I've refilled the tip rack in slot C2; continue the run."
- "The PCR finished. Turn off the thermocycler and the heater-shaker, then switch the lights off."
Notes
- Protocols, not single moves. This server runs complete protocols that the robot has analyzed. It deliberately has no tools for individual pipetting or gantry moves (
POST /runs/{id}/commands), because without full deck state these can crash pipettes into labware. That may come later behind stricter checks. - Labware Position Check offsets are not applied. Runs created through the HTTP API do not include the offsets the Opentrons App applies from Labware Position Check. If your setup depends on them, start the run from the App, or set offsets in the protocol (
labware.set_offset(...)). - Run-time parameters use their default values. Protocols that need a value this server cannot give (e.g. a CSV file parameter) are reported as not ready.
- Stopping a run is final: the robot homes and drops tips in the trash. Pausing waits for the current step to finish.
- Error recovery (recent robot software, mainly Flex): when a step fails (e.g. no tip detected), the run waits in
awaiting-recovery.resume_run(error_recovery="continue")continues from the robot's actual state and skips the failed step;"assume_false_positive"treats the failure as a false alarm. Only use either after someone has checked the robot. - Modules stay on after a protocol ends unless the protocol switches them off.
deactivate_modulessends the robot's stateless deactivate commands (POST /commands), which the robot only accepts when no run is in progress. list_instrumentsusesGET /instruments, which the robot fully supports on Flex; on an OT-2 it returns pipettes with less detail (no calibration data).- The HTTP API version is pinned with the
Opentrons-Version: 3header, as in Opentrons' integration examples. Override with--option api_version=4if needed.
Hardware verification
来源:servers/biology/opentrons/README.md,提交 46545ea
工具
0版本历史
3- v0.1.3最新Sep 27, 2026
- v0.1.1Sep 26, 2026
- v0.1.0Sep 26, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分