关于 Tecan Cavro Syringe Pump
面向实验室自动化的 MCP 服务,通过 Cavro DT 协议控制 Tecan Cavro 注射泵,执行微升级液体操作并读取设备状态。当前仅经线路级模拟器测试,尚未在真实硬件验证。
主要功能
- 01吸取与分配指定体积
- 02设置流速并切换阀门
- 03读取泵状态与命令日志
- 04初始化、停止及重连
- 05支持模拟与只读模式
适用场景
- 01按指定流速移取微升级液体
- 02切换阀口完成样品转移
- 03检查柱塞位置与泵错误
- 04无硬件时用模拟器测试流程
MCP 相关
作为 MCP 服务,它向客户端提供注射泵控制和状态读取工具。支持设置只读模式,并可配置单次体积与流速上限。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx labmcp-cavroLABMCP_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
9收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Tecan Cavro 注射泵 — MCP 服务
让 AI Agent 通过有文档记录的 Cavro Data Terminal(DT)协议,对 Tecan Cavro OEM 注射泵进行初始化、按设定流速吸取和分配微升体积、切换阀门端口以及停止操作。
| 软件包 | labmcp-cavro |
| 仪器 | Cavro XLP 6000、Cavro XMP 6000、Cavro XCalibur(配备 3 端口、4 端口或分配阀,或不带阀门) |
| 接口 | RS-232、RS-485(需使用 RS-485 适配器)、串口转以太网适配器 |
| 协议 | Cavro DT 协议(XLP 6000 操作手册,734237-C,第 3 章和附录 G);步进分辨率参见 Tecan XCalibur / XMP 6000 规格 |
| 状态 | 🧪 模拟:已通过线路级模拟器测试,尚未在硬件上验证。报告硬件测试结果 |
无需硬件即可试用
uvx labmcp-cavro --simulate --check
模拟器使用配有 1 mL 注射器和 3 端口阀的 XLP 6000。移动操作会耗费实际时间;添加 --option sim_speed=10 可加快模拟速度。
连接注射泵
- 注射泵设置:设置地址开关(开关 0 对应 DT 地址
1,开关 1 对应2,……开关 8 对应9,开关 9–E 对应:;<=>?)。注射泵会根据上电后的第一条消息检测使用 DT 还是 OEM 协议。默认设置为 9600 波特率,8N1;使用U47配置命令可选择 38400 波特率。 - **告知服务已安装的配置。**注射泵无法报告其注射器规格,因此在真实硬件上必须设置以下选项:
--option syringe_ul=1000:注射器容量,单位为 µL。--option model=xlp6000(或xmp6000,每行程 6000 个增量;xcalibur,3000 个增量)。对于其他兼容 DT 协议的注射泵,请改为设置--option steps_per_stroke=<increments per full stroke in standard mode>。- 可选:
--option resolution=fine(N1,体积步进精度提高 8 倍;由initialize应用)以及--option pump_address=2。
- 查找端口:
uvx labmcp ports - 测试连接:
非默认波特率应写入地址:uvx labmcp-cavro --address /dev/ttyUSB0 --option syringe_ul=1000 --option model=xcalibur --check uvx labmcp-cavro --address COM3 --option syringe_ul=500 --option model=xlp6000 --checkserial://COM3?baudrate=38400。
添加到 MCP 客户端
Claude Code
claude mcp add cavro -- uvx labmcp-cavro --address /dev/ttyUSB0 --option syringe_ul=1000 --option model=xcalibur
Claude Desktop / Cursor / Windsurf(claude_desktop_config.json、.cursor/mcp.json、……)
{
"mcpServers": {
"cavro": {
"command": "uvx",
"args": ["labmcp-cavro", "--address", "/dev/ttyUSB0",
"--option", "syringe_ul=1000", "--option", "model=xcalibur"]
}
}
}
添加 --read-only,即可允许读取状态,同时阻止所有移动操作。
工具
| 工具 | 类型 | 描述 |
|---|---|---|
aspirate_ul | ⚠️ hazard | 通过当前(或指定的)阀门端口,以 flow_ul_s 的流速将 volume_ul 抽入注射器,并等待操作完成。泵必须已初始化,且有足够空间容纳该体积。 |
dispense_ul | ⚠️ hazard | 通过当前(或指定的)阀门端口,以 flow_ul_s 的流速将 volume_ul 从注射器推出,并等待操作完成。注射器中至少要有相应体积的液体。 |
get_command_log | 👁 read | 返回最近发送给仪器的原始命令和收到的回复(最新的列在最后)。可用于调试和记录操作。 |
get_connection_info | 👁 read | 报告已连接的仪器(身份、地址、模拟或真实)、服务是否为只读,以及当前生效的安全限制。请先调用此工具。 |
get_status | 👁 read | 报告泵是否就绪或正忙、是否有错误(已解码)、推杆位置(即注射器中的液体体积)、阀门位置、分辨率模式和当前最高速度。 |
initialize | ⚠️ hazard | 初始化泵:将推杆驱动到注射器顶部(经阀门排出注射器内容物),将此位置设为 0,并将阀门归位。断电后、推杆过载后或执行 terminate 后都需要初始化。请先将阀门输出端接至废液端。此操作需要几秒钟。 |
reconnect | 🛑 safety | 关闭并重新打开与仪器的连接(例如,仪器断电重启或重新插拔电缆后)。 |
set_valve | ⚠️ hazard | 将阀门转到指定名称的位置(三通/四通阀),或转到编号端口(分配阀)。处于旁通位置时,推杆无法移动。返回新的状态。 |
terminate | 🛑 safety | 立即停止任何推杆移动、循环或延时(DT 命令 T)。正在进行的阀门移动仍会完成。之后请重新初始化:推杆可能已丢失步数。 |
安全限制
| 限制 | 默认值 | 含义 |
|---|---|---|
max_volume_ul | 5000 µL | 单次 aspirate_ul/dispense_ul 可移动的最大体积 |
max_flow_ul_s | 500 µL/s | Agent 可使用的最高推杆流速 |
启动时可覆盖:--limit max_flow_ul_s=50。无论这些限制如何设置,服务都会拒绝可能导致注射器溢出或抽空的操作,以及超出已安装注射器所能达到的泵流速(最高速度为 5–6000 pulses/s)的操作。
示例提示词
- “初始化泵,然后进行预充:从输入端口抽取 1 mL,再从输出端口排出,重复三次。”
- “以较慢的速度(20 µL/s)从端口 3 抽取 150 µL 样品,再向端口 5 注入 50 µL。”
- “现在注射器中有多少液体?阀门位于哪个端口?”
- “泵报告推杆过载。这是什么意思?我应该检查什么?”
- “现在停止泵。”
说明
- 换算。 步数 = 体积 × 每行程步数 ÷ 注射器容量;标准模式下,每行程步数为 6000(XLP/XMP)或 3000(XCalibur),精细定位模式(N1)下则为其 8 倍。每次移动前都会从泵读取模式(
?28)。最高速度V= 流速 × 6000 ÷ 注射器容量:三种型号的一个完整行程在 N0/N1 模式下均为 6000 个速度脉冲。对于 XCalibur,该数值是根据 Tecan 公布的每行程 1.2 s–20 min 推算得出,而非来自其操作手册;请在硬件上确认。 - 忙碌/就绪状态仅从
Q读取,这是手册的要求。无效命令会立即报告;无效操作数(例如移动超出注射器行程末端)会在下一次Q时报告,服务会将两种情况都转换为明确的错误。 - 初始化推力根据注射器尺寸选择(满推力适用于 ≥ 1 mL,半推力适用于 250/500 µL,三分之一推力适用于 50/100 µL;手册表 3-6),除非你手动选择。
terminate发送T,不发送R:在 DT 命令集中,R会恢复已终止的字符串。T不会停止正在进行的阀门移动。终止后请重新初始化。如果移动或初始化在远超预期时长(1.5× + 10 s)后仍处于忙碌状态,或者等待期间连接失败,服务会自行发送T,避免柱塞持续移动。- 服务不使用微步模式(N2)、OEM 协议(校验和、序列号)或 CAN。
- Cavro Centris 的分辨率不同(每行程 181,490 个增量),且其基于体积的固件命令无法验证,因此不受支持。XE 1000 和较旧的 XL/XP 3000 泵可能可通过
--option steps_per_stroke=…使用,但尚未测试。
硬件验证
| 型号 | 固件 | 接口 | 验证者 | 日期 |
|---|---|---|---|---|
| 尚无:抢先验证 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。