关于 PalmSens Potentiostat
面向支持 MethodSCRIPT 的 PalmSens 电化学工作站的 MCP 服务,可运行电化学测量。它返回测量数据和峰值摘要,并可选输出全分辨率 CSV 文件。
主要功能
- 01运行循环和线性扫描伏安法
- 02运行差分脉冲伏安法
- 03运行计时电流法
- 04返回数据和峰值摘要
- 05将全分辨率数据保存为 CSV
- 06应用测量安全限值
适用场景
- 01用循环伏安法测量氧化还原峰
- 02比较不同扫描速率下的峰电流
- 03测量设定电位下随时间变化的电流
- 04测量前查看工作站能力以选择参数
MCP 相关
向 MCP 客户端提供电化学测量工具,包括内置技术和原始 MethodSCRIPT 执行。它通过 USB 串口或 UART 连接支持的工作站。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx labmcp-palmsensLABMCP_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 周前
此工具无需参数。
详细介绍
PalmSens 恒电位仪 — MCP 服务
让 AI Agent 在支持 MethodSCRIPT 的 PalmSens 恒电位仪上运行循环伏安法、线性扫描伏安法、差分脉冲伏安法和计时电流法,并获取降采样数据、峰值摘要以及可选的全分辨率 CSV 文件。
| 软件包 | labmcp-palmsens |
| 仪器 | EmStat Pico(模块和开发板)、EmStat4 LR/HR(EmStat4S、EmStat4M、EmStat4X)、Sensit Wearable / Sensit BT、Nexus |
| 接口 | USB(虚拟 COM 端口)、UART |
| 协议 | MethodSCRIPT v1.x(MethodSCRIPT 手册 v1.8),通过 PalmSens 在线通信协议(EmStat Pico v1.6、EmStat4 v1.3);并已与 PalmSens/MethodSCRIPT_Examples 交叉核对 |
| 状态 | 🧪 模拟:已通过线路级模拟器测试,尚未在硬件上验证。报告硬件测试结果 |
无需硬件即可试用
uvx labmcp-palmsens --simulate --check
模拟器是一台配有 3 mm 圆盘电极的 EmStat Pico,电极浸在 1 mM 可逆单电子氧化还原电对溶液中(E° = +0.20 V,类似于相对于 Ag/AgCl 的亚铁氰化物/铁氰化物)。它会解析服务发送的脚本,并流式传输编码正确的数据包,因此你可以获得完整的 CV“鸭形”曲线、DPV 峰值和 Cottrell 衰减。模拟时间比实际时间快 10 倍;可通过 --option sim_speed=1(实际时间)或 =100 更改速度。
连接仪器
- 关闭 PSTrace / MultiTrace。 串行端口只能由一个程序占用。
- 查找端口:
uvx labmcp ports。EmStat Pico 开发板或 Sensit 会显示为 USB 串行端口(FTDI)。EmStat4 或 Nexus 会显示为以设备命名的虚拟 COM 端口。 - 测试连接:
默认值适用于 EmStat Pico:230400 波特率、8N1、XON/XOFF,以 LF 作为行结束符。通过 USB 连接时,EmStat4 和 Nexus 会忽略波特率。通过 UART 连接 EmStat4 时,请使用uvx labmcp-palmsens --address /dev/ttyUSB0 --check # EmStat Pico / Sensit (Linux) uvx labmcp-palmsens --address /dev/tty.usbmodemXXXX --check # EmStat4 (macOS) uvx labmcp-palmsens --address COM7 --check # Windowsserial://COM7?baudrate=921600&rtscts=true&xonxoff=false。 --check会发送固件版本(t)和序列号(i)命令,并打印型号、固件版本和序列号。
添加到 MCP 客户端
Claude Code
claude mcp add potentiostat -- uvx labmcp-palmsens --address /dev/ttyUSB0
Claude Desktop / Cursor / Windsurf(claude_desktop_config.json、.cursor/mcp.json,……)
{
"mcpServers": {
"potentiostat": {
"command": "uvx",
"args": ["labmcp-palmsens", "--address", "/dev/ttyUSB0"]
}
}
}
添加 --read-only 后,仅允许查看设备信息:所有测量工具都会施加电位,因此会被隐藏。
工具
| 工具 | 类型 | 描述 |
|---|---|---|
abort_measurement | 🛑 safety | 立即中止正在运行的测量或脚本(通信命令 Z),并确保关闭电解池。即使当前没有运行任务,也可以安全调用。 |
get_command_log | 👁 read | 返回最近发送给仪器的原始命令和收到的回复(最新内容排在最后)。可用于调试和记录操作内容。 |
get_connection_info | 👁 read | 报告当前连接的仪器(身份、地址、模拟或真实)、服务是否为只读,以及当前启用的安全限制。请先调用此工具。 |
get_device_info | 👁 read | 识别恒电位仪(型号、固件、序列号),并列出其电位窗口、PGStat 模式和电流量程,以便在支持范围内选择测量参数。 |
reconnect | 🛑 safety | 关闭并重新打开与仪器的连接(例如,仪器断电重启或重新插拔电缆后)。 |
run_chronoamperometry | ⚠️ hazard | 将电解池保持在 potential_v 电位 run_time_s,并每隔 interval_s 记录一次电流。返回数据(时间来自仪器计时器),以及电流的首值、末值、平均值和电荷量。此操作会对电解池施加电位。 |
run_cyclic_voltammetry | ⚠️ hazard | 运行循环伏安图:begin -> vertex 1 -> vertex 2 -> begin,重复 n_scans 次,并返回电位/电流/时间数据,以及每次扫描的阳极峰和阴极峰。整个扫描期间都会对电解池施加电位;扫描结束后会关闭电解池。 |
run_differential_pulse_voltammetry | ⚠️ hazard | 运行差分脉冲伏安法(电流 = 正向电流 − 反向电流,每步计算一次),从起始电位扫描到终止电位,并返回数据以及峰值电流和峰电位。扫描速率必须小于 step / pulse_time / 2。此操作会对电解池施加电位。 |
run_linear_sweep_voltammetry | ⚠️ hazard | 从 begin_potential_v 到 end_potential_v 运行线性扫描伏安图,并返回数据以及最大/最小电流及其出现位置。此操作会对电解池施加电位。 |
run_methodscript | ⚠️ hazard | 高级:运行原始 MethodSCRIPT,并返回其原始输出和解码后的数据包。set_e / set_range_minmax da 中的字面电位,以及 CV、LSV、DPV、SWV、NPV、ACV、CA、PAD、EIS 和快速 CV/CA 技术中的字面电位,都会根据 max_potential_v 进行检查;原始脚本中 set_range ba / set_autoranging ba 的字面电流值会根据 max_current_range_a 进行检查。运行时计算出的值不受检查。运行时间超过 timeout_s 后会中止;请在脚本中添加 on_finished: + cell_off,以便在中止后关闭电解池。发生运行时错误、超时或调用 abort_measurement 后,服务会自行关闭电解池。 |
安全限制
| 限制 | 默认值 | 含义 |
|---|---|---|
max_potential_v | 2.0 V | 任一技术(或原始脚本中的字面值)可施加的相对于 RE 的最大绝对电位,包括 DPV 脉冲 |
max_current_range_a | 0.01 A | Agent 可选择的最高电流量程(使用自动量程时,仪器不会超过 current_range_a);在原始脚本中,该值适用于 set_range ba / set_autoranging ba 的字面值 |
max_duration_s | 600 s | 单次测量(包括平衡过程)或原始脚本的最长运行时间 |
启动时可覆盖限制,例如:--limit max_potential_v=1.0 --limit max_duration_s=1800。无论限制值如何,单次工具调用最长不超过一小时。
示例提示词
- “对我的亚铁氰化物样品进行 CV:从 −0.2 V 扫描到 +0.6 V 再返回,扫描速率为 50 mV/s,扫描三次,并告诉我 E½ 和峰间距。”
- “进行扫描速率研究:在 −0.1 至 0.5 V 之间以 25、50、100 和 200 mV/s 的扫描速率进行 CV,将每次结果保存为 CSV,并检查峰值电流是否与 √v 成正比。”
- “从 0 扫描到 0.6 V 进行 DPV,脉冲为 50 mV,并报告峰电位和峰高。”
- “保持 0.5 V 60 s,每隔 0.2 s 记录一次电流,并告诉我通过的总电荷量。”
- “这台恒电位仪支持什么电位窗口和电流量程?”
- “中止测量。”
注意事项
- 服务发送的内容。 每种技术都是一个 MethodSCRIPT,仿照 PalmSens 的测量循环示例编写:
set_pgstat_chan 0、set_pgstat_mode、set_max_bandwidth、set_range_minmax da、set_range ba、set_autoranging ba、set_e、cell_on、可选的wait,然后是meas_loop_cv/lsv/dpv/ca,并通过pck_add添加设定电位和电流,最后执行on_finished: cell_off。因此,测量完成或中止后,电解池都会关闭。发生运行时错误时会跳过on_finished:(MethodSCRIPT 手册 §10.1),因此发生此类错误后,服务会发送单独的cell_off脚本。确切脚本见get_command_log。 - PGStat 模式和带宽。 最大带宽为数据速率的 6 倍(PalmSens 示例采用的比例)。对于 EmStat Pico 和 Sensit,服务会依次选择低速(−1.25 至 2.0 V,2.2 V 窗口,≤ 100 Hz)、最大量程(−1.7 至 2.0 V,2.6 V 窗口),然后是高速(1.214 V 窗口),以适配你的电位。如果都不适用,服务会在发送任何内容之前说明原因。EmStat4 和 Nexus 使用低速模式;根据手册,这些仪器上的模式并无差异。
- 电流符号和单位。 阳极(氧化)电流为正;电位是相对于 RE 的设定电位;
time_s对于计时安培法取自仪器计时器,对于扫描测量则由阶跃速率/扫描速率计算得出。 - 摘要。 CV 峰值是每次扫描的原始电流最大值和最小值(不进行基线校正)。ΔEp 和中点为估算值。阶梯采样会使大步长下的 ΔEp 略大于理想值 59 mV。
- 原始脚本。
run_methodscript会将set_e、set_range_minmax da、CV/LSV/DPV/SWV/NPV/ACV/CA/PAD/EIS 循环以及meas_fast_cv/meas_fast_ca中的字面电位(以及store_var字面值)与max_potential_v进行比较(包含 DPV 脉冲和 2 倍 SWV 振幅)。set_range ba/set_autoranging ba中的字面电流量程会与max_current_range_a进行比较。脚本内部计算的值不会经过检查。脚本会在timeout_s后中止,并运行cell_off脚本。 - 中止。
abort_measurement会发送通信协议的Z命令。正在运行的技术会返回截至当时测得的数据,并将aborted: true。之后(以及没有任务运行时),服务会运行一行cell_off脚本,因此即使原始脚本没有on_finished:,电解池也会关闭。如果无法读取正在运行的脚本输出(例如 USB 故障),服务会中止脚本并关闭电解池,然后报告错误;如果仅有一行数据损坏,则会跳过该行并发出警告。 - 保存数据。
save_path必须以.csv结尾;缺失的文件夹会自动创建,且绝不会覆盖已有文件(请使用新文件名)。测量开始前会检查路径。值为nan的数据点会被省略(并发出警告)。 - 未涵盖的内容: 恒电流技术、EIS、SWV/NPV/PAD、多路复用器、双恒电位仪模式、多通道 MultiEmStat4 系统以及 CRC16 协议扩展。对于内置技术之外的单通道脚本,请使用
run_methodscript。
硬件验证
| 型号 | 固件 | 接口 | 验证者 | 日期 |
|---|---|---|---|---|
| 目前还没有:抢先提交 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。