IKA Hotplate & Overhead Stirrer

io.github.K-Dense-AI由 GitHub 帳號 K-Dense-AI 發布v0.1.1更新於 Oct 24, 2026

MCP server for IKA hotplate stirrers and overhead stirrers (NAMUR commands).

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

一個 MCP 伺服器,讓助理透過序列埠或 TCP 的 NAMUR 連線控制 IKA 加熱磁力攪拌器與頂置攪拌器:讀取溫度、轉速與扭矩,設定並啟停加熱與攪拌。

可以做什麼
讀取儀器身分、連線方式、生效的安全限制與原始命令日誌,並讀取盤面、探針與介質溫度、轉速、扭矩與設定值,還可輪詢直到溫度穩定在目標值。
適用情境
當助理需要在實驗室操作 IKA 加熱磁力攪拌器或頂置攪拌器時使用,例如把燒瓶加熱到設定溫度、以指定轉速攪拌、記錄降溫過程,或在緊急情況下停止一切。
執行需求
透過 uvx 在本機執行的 Python 套件,需以 LABMCP_ADDRESS 提供序列埠或 TCP 位址。儀器須以 USB 虛擬序列埠或 RS-232 線連接,並使用固定的 NAMUR 序列埠參數。設定 LABMCP_SIMULATE=1 可在無硬體時使用內建模擬器。
安裝前請注意
此伺服器可以啟動加熱與攪拌並修改設定值,存在人身與設備風險;請保留預設安全限制,僅需監控時設定 LABMCP_READ_ONLY=1。伺服器停止或重新連線後需重新啟用看門狗,且模式 1 無法透過介面取消。此驅動僅在模擬器上測試,尚未在真實硬體驗證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 IKA Hotplate & Overhead Stirrer,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

IKA Hotplate & Overhead Stirrer — MCP Server

Let an AI agent heat and stir with IKA hotplate stirrers (C-MAG HS control, IKA Plate / RCT digital) and drive IKA overhead stirrers (EUROSTAR control) through IKA's documented NAMUR interface commands: read plate, probe and medium temperatures, speed and torque; set and start heating and stirring; wait for a temperature; and arm the hotplate's hardware watchdog so it switches itself off if the computer stops talking to it.

Packagelabmcp-ika
InstrumentsHotplate stirrers: C-MAG HS 7 control, IKA Plate (RCT digital). Overhead stirrers (--option device=overhead): EUROSTAR 60 control, EUROSTAR 100 control. Other IKA devices with the same NAMUR set are likely to work but are unverified
InterfacesRS-232 (9-pin, PC 1.1 cable), USB (virtual COM port)
ProtocolIKA NAMUR commands, "Interfaces and outputs" section of the operating instructions: IKA Plate (RCT digital) (11/2018), C-MAG HS 7 control (11/2018), EUROSTAR 60/100 control (20000003965c). Official downloads: ika.com
Status🧪 simulated: tested against a wire-level NAMUR simulator, not yet verified on hardware. Report a hardware test

Try it without hardware

bash
uvx labmcp-ika --simulate --checkuvx labmcp-ika --simulate --option device=overhead --check   # EUROSTAR simulator

Connect your stirrer

  1. Cable: USB A–B (the stirrer appears as a virtual COM port; on Windows install IKA's USB driver, linked in the manual) or the 9-pin RS-232 PC 1.1 cable. No setting on the device is needed. The interface is fixed at 9600 baud, 7 data bits, even parity, 1 stop bit, no flow control, and every command ends with a blank + CR LF.
  2. Find the port: uvx labmcp ports
  3. Test the connection:
    bash
    uvx labmcp-ika --address /dev/ttyACM0 --check                          # Linux, hotplateuvx labmcp-ika --address /dev/tty.usbmodem14101 --check                # macOSuvx labmcp-ika --address COM5 --check                                  # Windowsuvx labmcp-ika --address COM6 --option device=overhead --check         # EUROSTAR
    --check prints the name the device reports (IN_NAME).

Add to your MCP client

Claude Code

bash
claude mcp add ika -- uvx labmcp-ika --address /dev/ttyACM0 --limit max_temperature_c=120

Claude Desktop / Cursor / Windsurf (claude_desktop_config.json, .cursor/mcp.json, …)

json
{  "mcpServers": {    "ika": {      "command": "uvx",      "args": ["labmcp-ika", "--address", "/dev/ttyACM0", "--limit", "max_temperature_c=120"]    }  }}

Add --read-only to allow monitoring only (the stop tools stay available). For other clients: uvx labmcp config ika-stirrer --address /dev/ttyACM0 --client vscode.

Tools

ToolKindDescription
disable_watchdog🎛 controlCancel watchdog mode 2 (OUT_WD2@0) and stop the background refresh. Watchdog mode 1 has no cancel command; this tool reports an error for it.
enable_watchdog🎛 controlArm the hotplate's communication watchdog (OUT_WD1@m / OUT_WD2@m). The server then re-sends the watchdog command in the background; if the computer, this server or the cable fails, the hotplate switches heating and stirring off (mode 1) or falls back to the given safety values (mode 2) after timeout_s. Note: stopping or reconnecting the server also stops the refresh, so the watchdog trips unless you enable it again. Mode 1 cannot be cancelled over the interface.
get_command_log👁 readReturn the most recent raw commands sent to / replies received from the instrument (newest last). Useful for debugging and for recording what was done.
get_connection_info👁 readReport which instrument is connected (identity, address, simulated or real), whether the server is read-only, and the active safety limits. Call this first.
get_status👁 readRead temperatures, stirring speed and setpoints. On hotplates: plate and external-probe temperature, temperature setpoint and the device's safety-circuit temperature. On overhead stirrers: PT1000 probe temperature, torque and the speed/torque limits set on the device.
reconnect🛑 safetyClose and re-open the connection to the instrument (e.g. after it was power cycled or a cable was re-plugged).
set_speed⚠️ hazardSet the stirring speed setpoint (OUT_SP_4). Does not start the motor; if it is already running, the speed changes immediately. Refused above max_speed_rpm (and, on overhead stirrers, above the speed limit set on the device).
set_temperature⚠️ hazardSet the hotplate temperature setpoint (OUT_SP_1). With an external probe connected this is the target temperature of the medium. Does not start heating; if heating is already on, the plate starts moving to the new setpoint immediately. Refused above max_temperature_c or above the device's own safety-circuit temperature.
start_heating⚠️ hazardSwitch the hotplate heater on (START_1). It heats towards the current setpoint, which is checked against max_temperature_c first. Make sure the vessel and its contents can take the setpoint temperature and that nothing flammable is near the plate.
start_stirring⚠️ hazardStart the stirring motor (START_4) at the current speed setpoint, which is checked against max_speed_rpm first. Make sure the stir bar or impeller is in place and the vessel is secured (a decoupled stir bar or an unclamped vessel can splash).
stop_all🛑 safetyEmergency stop: switch the heater off (hotplates) and stop the motor. Every stop command is sent even if one of them fails. Also ends a running wait_for_temperature.
stop_heating🛑 safetySwitch the hotplate heater off (STOP_1). Stirring continues. The plate stays hot for a long time after switching off.
stop_stirring🛑 safetyStop the stirring motor (STOP_4). Heating (if on) continues.
wait_for_temperature👁 readPoll a temperature until it is within tolerance_c of the target for stable_for_s seconds, or until timeout_s passes. Does not change anything on the device (start heating first). Returns whether the target was reached plus a short temperature trace. A stop command ends the wait early.

Safety limits

LimitDefaultMeaning
max_temperature_c150 °CHighest hotplate setpoint an agent may set (also checked before start_heating, and for the watchdog fallback temperature)
max_speed_rpm1000 rpmHighest stirring speed an agent may set (also checked before start_stirring)
max_wait_s3600 sLongest wait_for_temperature

Override at launch, e.g. --limit max_temperature_c=250 --limit max_speed_rpm=1500. On top of these, the hotplate refuses setpoints above its own safety-circuit temperature (set with the screwdriver dial on the device, read with IN_SP_3), and overhead stirrers refuse speeds above the speed limit set in the device menu (IN_SP_6); the server checks both before sending.

Example prompts

  • "Heat the round-bottom flask to 65 °C using the external probe, stir at 400 rpm, and tell me when it has been stable for a minute."
  • "Arm the watchdog with 60 s, then start heating to 80 °C. I'm leaving it running overnight."
  • "Log the medium temperature every 30 s while it cools down and tell me when it is below 30 °C."
  • "Ramp the EUROSTAR up to 300 rpm and report the torque; the mixture is getting viscous."
  • "Something smells wrong, stop everything now."

Notes

  • Two device types. The default is --option device=hotplate. Overhead stirrers need --option device=overhead; they have no heater, report their PT1000 probe on IN_PV_3 and torque on IN_PV_5. Tools that don't apply to the configured type return a clear error and send nothing.
  • No state query for the heater. The NAMUR set has no "is the heater on?" command, so get_status reports the last start/stop this server sent (heating_commanded, stirring_commanded) and None when unknown. The front-panel buttons can change it without the server knowing.
  • Setpoints are read back after set_temperature / set_speed (IN_SP_1 / IN_SP_4), and a warning is returned if the device reports a different value.
  • Watchdog (hotplates, OUT_WD1@m / OUT_WD2@m, 20–1500 s): enable_watchdog arms it and the server re-sends the command in the background every quarter of the watchdog time. If the server or the computer dies or the cable is pulled, the hotplate switches heating and stirring off (mode 1) or falls back to the safety temperature and speed (mode 2). Stopping or reconnecting the server also stops the refresh, so the watchdog trips. Mode 1 has no documented cancel command; mode 2 is cancelled with OUT_WD2@0. The manual's watchdog error codes differ between sections (ER 2 vs Err. 1/Err. 2); a trip is visible on the display, not over the interface.
  • Unverified reply layout. The IKA manuals document the commands but not the exact reply line. The driver takes the first number on the line (devices are reported to append the channel, e.g. 25.3 2), so both forms work. The value reported by IN_PV_1 when no external probe is plugged in is not documented; ignore external_temperature_c if you have no probe.
  • The IKA manuals print the terminator as "Blank CR LF (hex 0x20 0x0d 0x20 0x0A)"; the extra 0x20 contradicts the text ("Blank CR LF") and is treated as a typo, so the server sends 0x20 0x0D 0x0A.
  • Not implemented: SET_MODE_n (changes the power-on operating mode A/B/D, a persistent setting) and RESET; overhead-stirrer torque/speed-limit writes (OUT_SP_5/6/8) and direction change (OUT_MODE_n).

Hardware verification

ModelFirmwareInterfaceVerified byDate
none yet: be the first

來源:servers/chemistry/ika-stirrer/README.md,提交 46545ea

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.1.1最新Sep 27, 2026
  2. v0.1.0Sep 26, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分