mcpField
B
BrainFlow Biosensing Boards

BrainFlow Biosensing Boards

本地服务
github.com健康医疗235 周前更新

关于 BrainFlow Biosensing Boards

该 MCP 服务通过 BrainFlow SDK 从支持的生物传感板采集并分析 EEG、EMG、ECG、EOG、PPG 和 EDA 数据,面向神经科学及生理研究。它结合事件标记、脑电频带分析和逐电极信号质量检查;仅供研究使用,不是医疗设备。

主要功能

  1. 01采集并记录多类生理信号
  2. 02插入事件标记并保存记录
  3. 03计算 EEG 频带功率
  4. 04检查电极信号质量
  5. 05列出 BrainFlow 支持的板卡

适用场景

  1. 01比较睁眼与闭眼记录的枕叶 α 功率
  2. 02检查电极接触及工频噪声
  3. 03为实验刺激和条件变化插入标记

MCP 相关

向 MCP 客户端提供 BrainFlow 板卡连接、信号采集、记录、分析和流控制工具,也可插入事件标记或发送板卡配置命令。

配置

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

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

工具

12

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

此工具无需参数。

详细介绍

BrainFlow 生物传感器板 — MCP 服务

让 AI Agent 从开源 BrainFlow SDK 支持的生物传感器板采集 EEG、EMG、ECG、EOG、PPG 和 EDA 数据流,并进行记录和分析:包括 OpenBCI、Muse、Neurosity、g.tec Unicorn、BrainBit 等。支持带事件标记的记录、EEG 频段功率分析,以及逐电极信号质量检查。

仅供研究使用。本产品不是医疗器械。 请勿将其用于诊断、监测或治疗。请遵守板卡制造商的安全说明(电池供电、电气隔离、皮肤准备)。本服务不会更改这些说明。

软件包labmcp-brainflow
仪器OpenBCI Cyton、Cyton+Daisy、Ganglion、Galea(USB 加密狗、BLE、WiFi Shield)· Muse 2 / S / S Athena / 2016 · Neurosity Crown / Notion · g.tec Unicorn · BrainBit · Callibri · Enophone · Mentalab Explore · EmotiBit · FreeEEG32/128 · NeuroPawn Knight · Shimmer3 · BrainFlow BoardIds 中的任何其他板卡
接口USB 串口加密狗、蓝牙 LE(原生或 BLED112 加密狗)、WiFi、厂商 SDK(均通过 BrainFlow)
协议BrainFlow SDK ≥ 5.21:BoardShim、BrainFlowInputParams、DataFilter(用户 API、支持的板卡、数据格式)
状态🧪 模拟:已通过 BrainFlow 自带的合成板和内置模拟器测试,尚未在硬件上验证。报告硬件测试

无需硬件即可试用

uvx labmcp-brainflow --simulate --check

--simulate 会运行 BrainFlow 自带的 SYNTHETIC_BOARD,因此会执行真实的 BrainFlow 代码路径:16 个 EXG 通道,采样率为 250 Hz,包含 5、10、15 … 80 Hz 的正弦波,以及加速度计、陀螺仪、PPG、EDA 和温度数据行。在 BrainFlow 原生库无法加载的平台上,或使用 --option simulator=fake 时,则改用纯 NumPy 模拟替代方案。它会模拟一个 8 通道、250 Hz 的 EEG 头戴设备,包含 1/f 背景信号、10 Hz 后部 α 波,以及一个贴附不良的电极(Fp2,存在严重的 50 Hz 干扰),供信号质量检查检测。

连接你的设备

  1. 选择设备,使用 --option board=<alias>(或任意 BrainFlow BoardIds 名称,例如 ANT_NEURO_EE_411_BOARD,也可以使用数字 ID)。list_supported_boards 工具也会输出此表。
  2. 提供连接详情,使用 --address。根据设备的不同,BrainFlow 需要使用不同的 BrainFlowInputParams 字段,服务会自动填入正确字段:
设备(--option board=)--address 的值是否必需?备注
cyton、cyton_daisyUSB 加密狗的串口是macOS:使用 /dev/cu.usbserial-*,不要使用 /dev/tty.*
ganglion(原生 BLE)蓝牙 MAC 地址否(自动发现)FW 2 设备:--option other_info=fw:2
ganglion_dongleBLED112 加密狗的串口是可选 --option mac_address=
cyton_wifi、cyton_daisy_wifi、ganglion_wifiWiFi Shield IP(直连模式下为 192.168.4.1)否(SSDP)--option ip_port=(默认值为 6789)
muse_2、muse_s、muse_s_athena、muse_2016蓝牙 MAC 地址否--option serial_number=Muse-XXXX;PPG:--option other_info=p50(Muse 2)/p61(Muse S)
muse_2_bled、muse_s_bledBLED112 加密狗的串口是
crown、notion_1、notion_2设备序列号否需处于同一网络,且必须允许广播
unicorn、brainbit设备序列号否Unicorn:与随附的加密狗配对
enophone、explore_4、explore_8蓝牙 MAC 地址仅限 Linux
emotibit网络广播地址否
freeeeg32、freeeeg128、neuropawn_knight、shimmer3、ironbci_32串口是
playbackBrainFlow 格式的文件路径是--option master_board=<board it was recorded with>
synthetic无BrainFlow 合成设备

对于未列出的设备,服务会根据地址格式推断字段:COM3 或 /dev/… 会被视为串口,AA:BB:… 会被视为 MAC 地址,a.b.c.d 会被视为 IP 地址,其他格式则会被视为序列号。你也可以使用 --option serial_port=… / mac_address=… / ip_address=… / serial_number=… / other_info=… / timeout=… 直接设置任何字段。

  1. 测试连接:
    uvx labmcp-brainflow --option board=cyton --address /dev/cu.usbserial-DM00Q0QN --check   # macOS
    uvx labmcp-brainflow --option board=cyton_daisy --address COM3 --check                  # Windows
    uvx labmcp-brainflow --option board=muse_2 --option serial_number=Muse-1A2B --check
    uvx labmcp-brainflow --option board=unicorn --check
    
    首先关闭占用设备的其他程序(OpenBCI GUI、Muse 应用)。在 Linux 上,将自己添加到 dialout 组,以使用串口。

添加到 MCP 客户端

Claude Code

claude mcp add eeg -- uvx labmcp-brainflow --option board=cyton --address /dev/ttyUSB0

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

{
  "mcpServers": {
    "eeg": {
      "command": "uvx",
      "args": ["labmcp-brainflow", "--option", "board=cyton", "--address", "/dev/ttyUSB0"]
    }
  }
}

使用 --read-only 时,Agent 仍可记录和分析数据(每次记录都会启动临时数据流),但无法让数据流持续运行、插入标记或发送 configure_board 命令。stop_streaming 仍可使用。

工具

工具类型描述
configure_board⚠️ hazard通过 BrainFlow 的 config_board 向固件发送原始的、特定于电路板的命令(例如 OpenBCI 通道设置 'x1060110X'、测试信号,或用于启用 PPG 的 Muse 预设 'p50'/'p61')。
get_band_powers👁 read最近 window_s 秒内的 EEG 频段功率(delta 1-4、theta 4-8、alpha 8-13、beta 13-30、gamma 30-50 Hz):BrainFlow 的通道平均相对功率,以及逐通道绝对功率 (uV^2)、相对功率和峰值频率。如果未在流式采集,则记录一个新的时间窗口。
get_board_info👁 read描述已连接的电路板:按类型列出的通道名称(在大多数电路板上,EEG/EMG/ECG/EOG 共用 EXG 行)、采样率、可用预设(数据缓冲区)和流式采集状态。
get_command_log👁 read返回最近发送给仪器的原始命令和收到的回复(最新的在最后)。有助于调试和记录操作内容。
get_connection_info👁 read报告已连接的仪器(身份、地址、模拟或真实)、服务是否为只读,以及当前生效的安全限制。请先调用此工具。
get_signal_quality👁 read检查每个 EXG 通道是否存在常见电极问题:平线(已断开)、信号触顶(放大器饱和,适用于 OpenBCI Cyton 电路板)、强烈的 50/60 Hz 市电噪声(接触不良或缺少参考电极),以及不合理的高振幅(运动、肌肉活动、电极松动)。
insert_marker🎛 control在当前采样点向数据流写入事件标记(用于事件相关实验:刺激开始、条件变化)。需要先调用 start_streaming;标记会出现在 record 结果和保存的文件中。
list_supported_boards👁 read列出常见的 BrainFlow 电路板:--option board= 别名、BrainFlow 电路板 ID,以及 --address 必须包含的连接详情(串行端口、Bluetooth MAC、IP 地址或序列号)。也接受其他 BrainFlow BoardIds 名称或数字 ID。无需连接电路板。
reconnect🛑 safety关闭并重新打开与仪器的连接(例如仪器断电重启或重新插入线缆后)。
record👁 read记录 duration_s 秒,并返回逐通道统计信息、事件标记和降采样后的波形。如果正在运行实时数据流,则使用该数据流;否则启动临时数据流。完整数据(每一行、完整采样率)可写入 save_path。调用 stop_streaming 可提前结束录制。
start_streaming🎛 control启动连续采集,并写入 BrainFlow 环形缓冲区(电路板的无线电/LED 会开启;不会对参与者施加任何信号)。insert_marker 需要此工具;之后 record 会从实时数据流读取数据。完成后请调用 stop_streaming。
stop_streaming🛑 safety停止采集(节省电池)。正在进行的 record 会立即结束,并返回截至此时采集的数据。缓冲区中已有的数据会保留,直到下次启动数据流或释放会话(reconnect)。

安全限制

限制默认值含义
max_record_duration_s60 sAgent 可请求的最长录制时长或分析窗口(record、get_band_powers、get_signal_quality)

启动时覆盖:--limit max_record_duration_s=600。BrainFlow 电路板用于测量;唯一能够开启输出的工具(例如通过电极施加阻抗测试电流,或开启通道上的偏置驱动)是 configure_board。该工具会原样传递固件命令,并标记为危险操作,因此 MCP 客户端会在运行前征求确认。

示例提示词

  • “检查所有 8 个 Cyton 通道的信号质量,并告诉我哪些电极需要补涂凝胶。”
  • “录制 30 s 闭眼和 30 s 睁眼数据,将两段数据都保存为 CSV 到 ~/data/sub-01/,并比较枕叶 alpha 功率。”
  • “开始流式传输。我将进行 oddball 任务:我告诉你时,为标准刺激插入标记 1,为目标刺激插入标记 2。然后以 BrainFlow 格式保存会话。”
  • “过去 10 秒内,O1 和 O2 上的 alpha 峰值频率是多少?”
  • “此设置中是否有 50 或 60 Hz 的电源噪声?出现在哪些通道?”
  • “列出你支持的开发板,并告诉我如何连接 Muse S。”

备注

  • 频带功率的计算方式。 average_relative 来自 BrainFlow 的 DataFilter.get_avg_band_powers(apply_filter=True):去趋势、48–52 和 58–62 Hz 带阻滤波、2–45 Hz 带通滤波、Welch PSD,然后将 1–4、4–8、8–13、13–30 和 30–50 Hz 频带在各通道间取平均,并归一化为总和 1。每个通道的数值经过去趋势、50/60 Hz 陷波和 1–45 Hz 四阶零相位 Butterworth 滤波(BrainFlow DataFilter),随后计算 Welch PSD(Hann 窗,50 % 重叠,约 0.5 Hz 分辨率)。绝对频带功率是积分后的 PSD,单位为 µV²;gamma 实际上为 30–45 Hz。
  • 信号质量判定(面向 EEG 的阈值):flat 表示原始 SD 低于 0.5 µV(已断开);railed 表示使用了至少 90 % 的 ADS1299 输入范围(仅适用于 OpenBCI Cyton 系列,使用 BrainFlow 的公式,增益 24 由 --option exg_gain= 设置);line_noise 表示 50 或 60 Hz 功率超过整个 1–45 Hz 范围的功率;high_amplitude 表示带通滤波后的 RMS 高于 100 µV。EMG/ECG 录制自然会呈现“高振幅”。
  • 单位。 BrainFlow 会“尽可能”以 µV 返回 EXG 数据。OYMotion gForce 臂带返回 ADC 计数。加速度计、PPG 等通道使用开发板特定的单位。时间戳为 Unix 秒。
  • 预设。 有些开发板会以不同的采样率流式传输多个缓冲区,例如 Muse EEG(默认)、IMU(辅助)和 PPG(附加)。将 preset= 传递给 get_board_info 和 record。
  • 标记会写入默认预设的标记行,并且需要已启动流(start_streaming)。record 运行时可以插入标记。值 0 为保留值。
  • 保存的文件。 save_path 必须指向一个新文件(.csv;save_format="brainflow" 时可用 .csv、.tsv 或 .txt):~ 会展开,缺失的文件夹会自动创建,现有文件绝不会被覆盖,并且会在录制开始前检查路径。save_format="csv" 会为每一行写入带标签的列。save_format="brainflow" 会写入 DataFilter.write_file 的输出,可使用 --option board=playback --address file.csv --option master_board=<board> 重放。
  • configure_board 会通过 BrainFlow 的 config_board 将字符串直接传递给开发板固件,例如 OpenBCI 通道设置或 Muse 预设。不会进行任何检查:某些命令会启用输出,例如脱落(阻抗测试)电流。设置会一直保留,直到更改设置或将开发板断电重启;有效命令请查阅开发板的 SDK 文档。
  • 流。 如果没有正在运行的流,record、get_band_powers 和 get_signal_quality 会启动一个临时流,并在之后停止;但如果期间调用了 start_streaming(此时流会保持运行)或另一个录制仍在使用该流,则不会停止。stop_streaming 会立即结束正在运行的 record;它只返回截至当时采集的数据,并将 stopped_early: true 设为 true。
  • reconnect(以及停止服务)会停止流并调用 release_session,以释放串行端口或 BLE 连接。

硬件验证

型号固件接口验证者日期
暂无: 成为第一个

评论

支持 Markdown

第一次接触 MCP?

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

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