
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 分