mcpField
J
JULABO Circulator

JULABO Circulator

本地服务
github.com科研与教育235 周前更新

关于 JULABO Circulator

JULABO Circulator 是面向 JULABO 加热和制冷循环器的 MCP 服务,可读取温度与状态、控制设定温度和循环,并等待温度稳定。支持 CORIO、MAGIO、DYNEO 系列;目前仅经模拟器测试,尚未在硬件上验证。

主要功能

  1. 01读取浴槽及外部温度
  2. 02设置温度并启停控制
  3. 03解码状态与报警
  4. 04等待温度稳定
  5. 05通过 USB 或 RS-232 连接

适用场景

  1. 01监测浴槽温度和加热/制冷功率
  2. 02将浴槽设为目标温度并确认稳定
  3. 03查询循环器报警并解释状态
  4. 04停止循环器控制与泵

MCP 相关

作为 MCP 服务,它向客户端提供温度、状态和连接信息读取工具,以及设定温度、启停循环和等待温度稳定的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"k-dense-ai-labmcp-julabo": {
"command": "uvx",
"args": [
"labmcp-julabo"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}
启动命令uvx labmcp-julabo
需要配置的环境变量
LABMCP_ADDRESSInstrument address, e.g. serial:///dev/ttyUSB0 or tcp://192.168.1.50:5025
LABMCP_SIMULATESet to 1 to use the built-in simulator (no hardware)
LABMCP_READ_ONLYSet to 1 to disable all state-changing tools
LABMCP_LIMITSSafety limit overrides, e.g. max_temperature_c=80

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypilabmcp-julabo0.1.2

工具

10

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

JULABO 循环器 — MCP 服务

让 AI Agent 通过 JULABO 记录在文档中的接口命令控制 JULABO 加热和制冷循环器:读取浴槽温度和外部温度以及加热/制冷功率,设置设定温度,启动和停止温度控制,解读状态和报警消息,并等待浴槽温度稳定。

软件包labmcp-julabo
仪器CORIO CD、CORIO CP、MAGIO MS(及 MX)、DYNEO DD 循环器。PRESTO 和较早的 JULABO 型号使用类似的命令集,但尚未验证
接口USB(虚拟 COM 端口)、RS-232(CORIO CP、MAGIO、DYNEO)
协议JULABO 接口命令,原版操作手册附录“接口命令”:CORIO CD(1.950.0800.us.V10)、CORIO CP(1.950.0900.us.V04)、MAGIO MS(1.950.1700.us.V05)、DYNEO DD(1.950.1300.us.V03)。官方手册下载:julabo.com
状态🧪 模拟:已通过线路级模拟器测试,尚未在硬件上验证。报告硬件测试结果

无需硬件即可试用

uvx labmcp-julabo --simulate --check

连接循环器

  1. 在循环器上启用远程控制。 未启用时,循环器会响应查询,但忽略所有设置命令。
    • CORIO CD/CP:MENU → IntE → rEM → USb(RS-232 则选择 232)。待机时会显示 rOFF。
    • MAGIO / DYNEO:主菜单 → Connect unit → Remote control → USB 或 RS232。状态栏会显示“R”。
  2. 线缆: USB-B(循环器会显示为虚拟 COM 端口;在 Windows 上需安装 JULABO 的 USB 驱动程序),或 零调制解调器 RS-232 线缆。RS-232 出厂设置:4800 波特、7 个数据位、偶校验、1 个停止位、硬件握手(RTS/CTS)。只能在关闭远程控制时更改接口参数。服务使用这些设置,但默认不强制执行握手(它会保持 RTS 置位以允许循环器传输数据,而 USB 虚拟 COM 端口通常不会置位 CTS);在地址后添加 ?rtscts=true 可强制执行握手。
  3. 查找端口: uvx labmcp ports
  4. 测试连接:
    uvx labmcp-julabo --address /dev/ttyACM0 --check                  # Linux (USB)
    uvx labmcp-julabo --address /dev/tty.usbmodem1101 --check         # macOS
    uvx labmcp-julabo --address COM3 --check                          # Windows
    uvx labmcp-julabo --address "serial://COM3?baudrate=9600" --check # RS-232, non-default baud rate
    
    --check 会显示固件字符串(version)和当前状态,例如 02 REMOTE STOP。

添加到 MCP 客户端

Claude Code

claude mcp add julabo -- uvx labmcp-julabo --address /dev/ttyACM0

Claude Desktop / Cursor / Windsurf(claude_desktop_config.json、.cursor/mcp.json 等)

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

添加 --read-only 以仅允许监控(stop_circulation 仍可用)。其他客户端可使用:uvx labmcp config julabo-circulator --address /dev/ttyACM0 --client vscode。

工具

工具类型描述
get_command_log👁 读取返回最近发送给仪器的原始命令及收到的回复(最新记录在最后)。适用于调试和记录操作。
get_connection_info👁 读取报告当前连接的仪器(身份、地址、模拟或真实)、服务是否为只读,以及当前启用的安全限值。请先调用此工具。
get_setpoint👁 读取读取当前温度设定值,以及温度控制是否正在运行。
get_status👁 读取报告循环器的状态消息(已解码:运行状态、被拒绝的命令或报警)、温度控制是否正在运行、设定值、设备自身的超温保护设置和警告限值,以及固件版本。
read_temperatures👁 读取读取浴槽温度、加热/冷却功率百分比和安全传感器温度,并可选择读取外部 Pt100 传感器。
reconnect🛑 安全关闭并重新打开与仪器的连接(例如,仪器断电重启或重新插拔线缆后)。
set_setpoint⚠️ 危险设置循环器的温度设定值(out_sp_00)。如果温度控制正在运行,循环器会立即开始加热或冷却至该温度。设定值若超出 min_temperature_c..max_temperature_c 范围则会被拒绝;循环器本身也会拒绝超出其范围或警告限值的值(并报告错误)。需要启用远程控制。
start_circulation⚠️ 危险启动温度控制(out_mode_05 1):水泵运行,浴槽加热或冷却至设定值;启动前会根据安全限值检查设定值(它可能已在前面板上更改)。请确保浴槽已加满,且所有外接软管均已连接并固定。需要启用远程控制。
stop_circulation🛑 安全停止温度控制和水泵(out_mode_05 0),然后通过 in_mode_05 确认。也会结束正在运行的 wait_for_temperature。停止后浴槽仍会保持高温或低温。
wait_for_temperature👁 读取持续轮询浴槽(或外部)温度,直到温度在 stable_for_s 秒内保持在目标值的 tolerance_c 范围内,或经过 timeout_s。不会更改任何设置;请先启动循环。若循环器触发报警或收到停止命令,会提前结束(reached = false)。返回简短的温度曲线。

安全限值

限值默认值含义
max_temperature_c90 °CAgent 可设置的最高设定值(在 start_circulation 前也会检查)
min_temperature_c5 °CAgent 可设置的最低设定值(在 start_circulation 前也会检查)
max_wait_s7200 swait_for_temperature 的最长等待时间

默认值适用于水浴槽。请根据浴槽液体的工作范围设置限值,例如,对于适用于硅油/乙二醇的装置,可使用 --limit min_temperature_c=-30 --limit max_temperature_c=150。循环器还会执行自身的工作范围、警告限值和超温保护;被拒绝的操作会以错误形式返回,例如 -11 VALUE TOO LARGE。

示例提示词

  • “将循环器设为 37 °C 并启动,浴槽温度在 ±0.1 °C 范围内稳定五分钟后告诉我。”
  • “现在浴槽温度是多少?循环器的运行负荷有多大?”
  • “使用外部 Pt100 作为参考,将夹套反应器冷却到 10 °C,并在达到目标温度时告诉我。”
  • “循环器是否有报警?请解释报警含义。”
  • “停止循环器。”

注意事项

  • 远程控制是前面板上的一项设置。 在手动模式(00 MANUAL STOP / 01 MANUAL START)下,服务会拒绝发送设置,并告知如何启用远程控制。
  • 每项设置都会经过验证。 OUT 命令没有回复,因此每次执行后,服务都会查询 status(以捕获 -08 INVALID COMMAND、-09 COMMAND NOT ALLOWED IN CURRENT OPERATING MODE、-10 VALUE TOO SMALL、-11 VALUE TOO LARGE、-13 VALUE EXCEEDS TEMPERATURE LIMITS),并读取设定值或 in_mode_05 进行核对。stop_circulation 会重试一次;如果循环器仍显示正在运行,则报告错误。
  • 型号差异。 CORIO CD 仅支持基本功能集(实际值、功率、安全传感器、设定值、启动/停止)。警告限值(in_sp_03/04)需要 CORIO CP、MAGIO 或 DYNEO;外部 Pt100(in_pv_02)需要 MAGIO 或 DYNEO。服务会检测缺失的命令(无回复),并将这些值报告为 null。
  • 命令间隔(未经验证)。 手册没有规定命令之间的最短间隔。服务会在每条设置命令后等待 command_delay_s(默认值为 0.25 s),然后检查 status;如果循环器漏掉命令,可使用 --option command_delay_s=0.5 调整此值。
  • 看门狗。 MAGIO/DYNEO 循环器的看门狗需在其自身菜单中配置(模式、超时、回退设定值,以及在“仅设定值”或“所有有效命令”时重置)。服务不会配置看门狗。若将重启模式设为“所有有效命令”,可在服务运行时使用 --option keepalive_s=10 持续发送信号(每 10 s 查询一次 status)。JULABO 的报警列表指出,在“设定值”重启模式下,设备要求至少每 30 s 接收一次设定值;此保活机制不满足这一要求。
  • 状态和报警文本会根据代码(-01、-14、-63 等)和手册中的报警表进行解码;循环器发送的原始措辞会保持不变。
  • 尚未实现:泵级别/容量(out_sp_07/27)、警告限值写入(out_sp_03/04)、控制器参数(out_par_*)、外部/内部控制切换(out_mode_04)、EPROG 和 ATC 校准命令。

硬件验证

型号固件接口验证者日期
尚无: 抢先验证

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。