mcpField
A
Atlas Scientific EZO Sensors

Atlas Scientific EZO Sensors

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

关于 Atlas Scientific EZO Sensors

面向 Atlas Scientific EZO 传感器电路的 MCP 服务,通过 UART 读取、校准并记录 pH、溶解氧、电导率等测量值。适用于生物反应器、发酵和环境监测;目前仅经模拟器测试,尚未在硬件上验证。

主要功能

  1. 01读取多类传感器测量值
  2. 02校准传感器并查看状态
  3. 03记录读数序列与统计值
  4. 04设置温度及溶解氧补偿
  5. 05配置电导率探头常数

适用场景

  1. 01跟踪生物反应器的 pH 或溶解氧
  2. 02监测营养液电导率变化
  3. 03稳定性检查后校准探头
  4. 04读取湿度、二氧化碳或压力

MCP 相关

向 MCP 客户端提供读取与记录 EZO 传感器数据、查看校准状态及调整传感器设置的工具。支持只读模式以限制校准和设置变更。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"k-dense-ai-labmcp-atlas-ezo": {
"command": "uvx",
"args": [
"labmcp-atlas-ezo"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}
启动命令uvx labmcp-atlas-ezo
需要配置的环境变量
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-atlas-ezo0.1.2

工具

13

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

此工具无需参数。

详细介绍

Atlas Scientific EZO 传感器 — MCP 服务

让 AI Agent 通过 Atlas Scientific EZO™ 传感器电路支持的 UART 命令集,读取、校准并记录数据(pH、ORP、溶解氧、电导率、RTD 温度、湿度、CO2 和压力)。适用于生物反应器、细胞培养基、发酵、水培、水产养殖和环境监测。

软件包labmcp-atlas-ezo
仪器EZO-pH、EZO-ORP、EZO-DO、EZO-EC、EZO-RTD、EZO-HUM、EZO-CO2、EZO-PRS(使用 i 自动检测类型)
接口通过 USB 转串口适配器或 Atlas 隔离载板连接 UART,或通过串口转以太网桥接器连接(每个端口连接一个电路)
协议EZO UART 命令集(pH 数据手册 V 6.1、ORP V 5.2、DO V 5.8、EC V 6.7、RTD V 3.7、HUM V 1.5、CO2 V 2.3、PRS V 2.3)
状态🧪 模拟:已通过线级 EZO 模拟器测试,尚未在硬件上验证。报告硬件测试结果

无需硬件即可试用

uvx labmcp-atlas-ezo --simulate --check
uvx labmcp-atlas-ezo --simulate --option sim_sensor=DO --check     # also ORP, EC, RTD, HUM, CO2, PRS

连接仪器

  1. **电路设置:**电路必须处于 UART 模式(LED 为绿色/青色;蓝色表示 I2C 模式,参见数据手册中的“Change to UART mode”)。出厂设置为 9600 波特率、8 个数据位、无奇偶校验、1 个停止位、无流控、CR 换行符。将电路与适配器的 TX/RX 交叉连接;如果探头与其他探头或泵位于同一液体中,请使用电气隔离载板。
  2. 查找端口:uvx labmcp ports
  3. 测试连接:
    uvx labmcp-atlas-ezo --address /dev/ttyUSB0 --check                # Linux
    uvx labmcp-atlas-ezo --address /dev/tty.usbserial-XXXX --check     # macOS
    uvx labmcp-atlas-ezo --address COM5 --check                        # Windows
    uvx labmcp-atlas-ezo --address "serial://COM5?baudrate=38400" --check   # non-default baud rate
    
    连接时,服务会发送 C,0(关闭连续读数,以免回复与读数交错)和 *OK,1(启用响应代码,这是出厂默认设置)。电路断电后仍会保留这两项设置。

添加到 MCP 客户端

Claude Code

claude mcp add ph-probe -- uvx labmcp-atlas-ezo --address /dev/ttyUSB0

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

{
  "mcpServers": {
    "ph-probe": {
      "command": "uvx",
      "args": ["labmcp-atlas-ezo", "--address", "/dev/ttyUSB0"]
    },
    "do-probe": {
      "command": "uvx",
      "args": ["labmcp-atlas-ezo", "--address", "/dev/ttyUSB1"]
    }
  }
}

每个电路运行一个服务。添加 --read-only 可允许读取数据,但会阻止校准和设置更改。对于其他客户端,可使用 uvx labmcp config atlas-ezo --address /dev/ttyUSB0 --client vscode 生成配置片段。

工具

工具类型描述
calibrate🎛 控制存储一个校准点。探头必须已置于指定标准液(缓冲液、空气、干燥环境等)中,且读数稳定。点名称会根据电路类型进行验证。pH:mid 校准会擦除已有的低点/高点,因此务必先校准 mid。EC:务必先校准 dry。
clear_calibration🎛 控制删除所有已存储的校准数据(Cal,clear)。pH/ORP/DO/EC/RTD 将恢复为未校准状态;CO2/PRS 将恢复为出厂校准状态。之后必须重新校准探头。
get_calibration_status👁 读取报告已存储的校准点数量及其对该电路类型的意义;对于 pH,还会报告探头斜率(酸性/碱性方向相对于理想值的百分比,以及以 mV 为单位的零点偏移)。
get_command_log👁 读取返回最近发送给仪器的原始命令和从仪器收到的回复(最新的排在最后)。可用于调试和记录操作。
get_connection_info👁 读取报告已连接的仪器(标识、地址、模拟或真实)、服务是否为只读,以及当前的安全限制。请先调用此工具。
get_info👁 读取报告电路类型、固件、设备名称、电源电压和上次重启原因、LED 状态、校准状态、温度补偿,以及特定类型的设置(已启用的输出、EC 探头常数 K、DO 盐度/压力补偿)。
log_series👁 读取记录一系列读数(例如观察探头在校准前是否稳定、跟踪生物反应器中的 pH 或 DO,或记录温度)。返回每个数据点,以及各输出的均值、标准差、最小值、最大值和每分钟漂移量。
read_value👁 读取进行一次读数(约 1 秒),并返回每个已启用输出及其单位:pH;以 mV 为单位的 ORP;以 mg/L 为单位的 DO(如果已启用,还包括饱和度百分比);以 µS/cm 为单位的 EC,以及 TDS(ppm)、盐度(PSU)和比重(如果已启用);RTD 温度;湿度 %RH(以及空气温度、露点);CO2 ppm;或压力。
reconnect🛑 安全关闭并重新打开与仪器的连接(例如仪器断电重启或重新插拔线缆之后)。
set_do_compensation🎛 控制仅适用于 DO 电路:设置盐度补偿(低于约 2500 µS/cm 时无关紧要)和/或大气压力补偿(默认为 101.3 kPa;海拔较高时应设为更低值)。断电重启后不会保留。
set_led🎛 控制打开或关闭电路的状态 LED。返回新的 LED 状态。
set_probe_constant🎛 控制仅适用于 EC 电路:设置电导率探头的电池常数 K,使其与探头相符(数值印在探头上)。更改后请重新校准。返回当前使用的 K 值。
set_temperature_compensation🎛 控制设置用于补偿 pH、EC 或 DO 读数的样品温度(T,n;始终以 °C 为单位)。断电重启后不会保留。返回电路当前使用的值。

get_connection_info、get_command_log 和 reconnect 内置于每个 LabMCP 服务中。

安全限制

限制默认值含义
max_series_duration_s600 sAgent 可启动的最长记录序列

启动时覆盖:--limit max_series_duration_s=3600(一次 log_series 调用最多可运行 3600 s;更长的记录请拆分为多次调用)。log_series 只会将可选的 save_path 写入新的 .csv 文件(绝不会覆盖现有文件)。这些电路只进行测量,因此没有危险工具;风险在于错误校准,因此 calibrate 会根据电路类型验证点名称和标准值,而 clear_calibration 在 --read-only 模式下会被隐藏。

示例提示词

  • “连接了什么传感器?是否已校准?pH 斜率是多少?”
  • “pH 探头现在置于 pH 7.00 缓冲液中。每隔 2 s 记录一次,直到读数稳定在 ±0.01 以内,然后校准中点。接着引导我完成 pH 4 和 pH 10 的校准。”
  • “生物反应器温度为 37 °C:设置温度补偿,并读取以 mg/L 和 % 饱和度表示的溶解氧。”
  • “每隔 30 s 记录一次电导率、TDS 和盐度,持续 10 分钟,并告诉我营养液是否发生漂移。”
  • “关闭 DO 电路上的 LED,我们正在培养对光敏感的菌种。”

注意事项

  • **各电路的单位:**pH;ORP 以 mV 为单位;DO 以 mg/L 为单位,并且(使用 O,%,1 启用后)还包括 % 饱和度;EC 以 µS/cm 为单位,并在启用后包括 TDS(ppm)、盐度(PSU)和比重;RTD 使用其配置的刻度(°C/K/°F);HUM 以 %RH 为单位,并在启用后包括气温和露点(°C);CO2 以 ppm 为单位(+ 内部温度);PRS 使用其配置的单位(psi、atm、bar、kPa、inH2O、cmH2O)。实际启用了哪些输出,应从电路读取(O,?、S,?、U,?),而不是自行假定。
  • 多值读数的输出顺序遵循数据手册(EC:EC、TDS、S、SG)。DO 的输出顺序(mg/L 后接 % 饱和度)未在 DO 数据手册中明确说明;已通过开源的 EnviroDIY ModularSensors 和 feastorg ezo-driver 库交叉核实。如果你的电路输出顺序不同,请告知。
  • 电路断电后,温度补偿(T,n,仅适用于 pH/EC/DO)以及 DO 盐度/压力补偿不会保留;每次断电重启后都要重新设置。读数会报告当前使用的补偿温度。
  • **校准规则:**必须先校准 pH 中点,再校准低点/高点(正如数据手册所述,新的 mid 校准会清除低点/高点);中点范围为 6-8,低点为 0-6.5,高点为 7.5-14;ORP 为 ±1020 mV;EC 为 0.07-500,000 µS/cm(先执行 dry);CO2 高点为 3000-5000 ppm;RTD 为 -126 至 1254 °C。服务无法确认探头实际置于哪种标准液中:Agent 必须向你确认。
  • RTD 读数为 -1023 表示未连接探头;该读数包含警告。
  • 根据数据手册,DO 查询(如 P,?)的响应为 ?,P,90.25(注意多了一个逗号);驱动程序可接受这两种格式。DO 盐度响应中包含微符号,因此串口按 Latin-1 读取。
  • 以下功能不会作为工具提供(虽已验证,但对 Agent 无用或风险过高):Factory(清除校准数据)、Sleep、Find、Baud、I2C、Plock、校准 Export/Import、RTD 数据记录器,以及 HUM/CO2/PRS 报警引脚。连接时会拒绝 EZO 泵(EZO-PMP)和其他执行器电路。

硬件验证

型号固件接口验证者日期
暂无:成为首位验证者

评论

支持 Markdown

第一次接触 MCP?

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

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