关于 JULABO Circulator
JULABO Circulator 是面向 JULABO 加热和制冷循环器的 MCP 服务,可读取温度与状态、控制设定温度和循环,并等待温度稳定。支持 CORIO、MAGIO、DYNEO 系列;目前仅经模拟器测试,尚未在硬件上验证。
主要功能
- 01读取浴槽及外部温度
- 02设置温度并启停控制
- 03解码状态与报警
- 04等待温度稳定
- 05通过 USB 或 RS-232 连接
适用场景
- 01监测浴槽温度和加热/制冷功率
- 02将浴槽设为目标温度并确认稳定
- 03查询循环器报警并解释状态
- 04停止循环器控制与泵
MCP 相关
作为 MCP 服务,它向客户端提供温度、状态和连接信息读取工具,以及设定温度、启停循环和等待温度稳定的工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx labmcp-julaboLABMCP_ADDRESSInstrument address, e.g. serial:///dev/ttyUSB0 or tcp://192.168.1.50:5025LABMCP_SIMULATESet to 1 to use the built-in simulator (no hardware)LABMCP_READ_ONLYSet to 1 to disable all state-changing toolsLABMCP_LIMITSSafety limit overrides, e.g. max_temperature_c=80本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
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
连接循环器
- 在循环器上启用远程控制。 未启用时,循环器会响应查询,但忽略所有设置命令。
- CORIO CD/CP:
MENU→IntE→rEM→USb(RS-232 则选择232)。待机时会显示rOFF。 - MAGIO / DYNEO:主菜单 → Connect unit → Remote control → USB 或 RS232。状态栏会显示“R”。
- CORIO CD/CP:
- 线缆: USB-B(循环器会显示为虚拟 COM 端口;在 Windows 上需安装 JULABO 的 USB 驱动程序),或 零调制解调器 RS-232 线缆。RS-232 出厂设置:4800 波特、7 个数据位、偶校验、1 个停止位、硬件握手(RTS/CTS)。只能在关闭远程控制时更改接口参数。服务使用这些设置,但默认不强制执行握手(它会保持 RTS 置位以允许循环器传输数据,而 USB 虚拟 COM 端口通常不会置位 CTS);在地址后添加
?rtscts=true可强制执行握手。 - 查找端口:
uvx labmcp ports - 测试连接:
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_c | 90 °C | Agent 可设置的最高设定值(在 start_circulation 前也会检查) |
min_temperature_c | 5 °C | Agent 可设置的最低设定值(在 start_circulation 前也会检查) |
max_wait_s | 7200 s | wait_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 校准命令。
硬件验证
| 型号 | 固件 | 接口 | 验证者 | 日期 |
|---|---|---|---|---|
| 尚无: 抢先验证 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。