
DAQiFi
io.github.daqifi由 GitHub 账号 daqifi 发布v1.9.1更新于 Nov 6, 2026
Discover, configure and read DAQiFi Nyquist data-acquisition hardware from an AI agent
概览
让 AI 助手发现、连接、配置并读取 DAQiFi Nyquist 数据采集硬件,包括实时采样与 SD 卡日志。
- 可以做什么
- 通过 USB/串口或 WiFi 发现并连接 DAQiFi 设备,列出、断开设备,查看状态与通道
- 启用模拟与数字通道,设置数字方向与输出、驱动 PWM,并在 Nyquist 3 板卡上设置或锁存 DAC 电压
- 设置采样率,读取各已启用通道的最新值,或采集一段实时样本
- 启动与停止设备端 SD 记录,列出日志文件与存储空间,下载日志(默认解析为 CSV)并删除文件
- 报告服务器自身版本以及是否有更新版本发布
- 适用场景
- 适用于已接上 DAQiFi Nyquist 设备、希望助手完成通道与采样率设置、做点测或短时采集,或管理 SD 卡记录并取回数据进行分析的场景。
- 运行要求
- 以 .NET 工具通过 stdio 在本机运行:安装 Daqifi.Mcp 全局工具(需 .NET 运行时),或用 dnx 直接运行(需 .NET 10 SDK)。需要能通过 USB/串口或 WiFi 访问的 DAQiFi 设备;SD 记录需 USB/串口连接。未声明任何 API 密钥或环境变量。
安装
在 SourceWeft 中
- 打开 控制台中的 DAQiFi,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Daqifi.Mcp
A Model Context Protocol (MCP) server that lets an AI agent (Claude Desktop, Claude Code, Cursor, Codex, …) drive a DAQiFi Nyquist data-acquisition device: discover it, connect, configure analog channels and sample rate, read live measurements, and run on-device SD-card logging.
It is a thin layer over Daqifi.Core — all device/protocol logic lives there.
The server speaks MCP over stdio, so the client launches it as a subprocess.
Tools
Two ways to get data, for two different jobs.
read_channel_valuesandcapture_samplesstream live to the agent — good for spot checks and short captures, bounded by a duration and a row budget so the answer stays a tool result rather than a file. SD logging is on-device: the device writes to its own card at full rate for as long as you like, and you retrieve it afterwards withdownload_sd_file, which writes the raw file and a CSV into this machine's temp directory.Both live tools start the device's stream only if nothing is streaming yet, and stop it again afterwards; a session that was already running is read and left alone. Neither works while the device is logging to its SD card — the data goes to the card instead of to this machine, so those calls are refused with that explanation rather than returning nothing.
Retrieve before you stream, unless
discover_devicesreports afirmwareVersionof 3.7.3 or later (treat an empty or unknown version as older). On older firmware a live streaming session collapses the device's SD buffer (firmware #703), after which downloads come back empty until the device is power-cycled or another SD recording re-arms it. Firmware 3.7.3 keeps the buffer large enough to read through and reports a failed read instead of going silent.
Analog output is Nyquist 3 hardware. On any other board
set_analog_outputis refused outright, because the firmware would otherwise discard the command without saying so and the call would look like a success.set_analog_outputapplies the voltage immediately unless you passlatch=false, which stages it instead so several channels can be made to change together on onelatch_analog_outputs. Neither the staged value norread_analog_outputis a measurement of the pin — the DAC has no readback path, so the device answers with the value it was last told to drive.
Run it
Option A — install as a .NET global tool (recommended)
Option B — run it without installing (.NET 10 SDK)
This is how a client that found the server in the MCP Registry
(as io.github.daqifi/daqifi-mcp) will launch it.
Option C — from source (development)
Flags
A flag the server does not recognize — a typo such as --read-onyl included — stops it at startup
with a one-line error on stderr naming the flag, and exit code 2, rather than starting it without
the setting you meant. If your MCP client reports that the server failed to start, check its server
log for that line.
--read-only blocks anything that changes the device or the card: channel/rate configuration,
DIO/PWM output, analog output (set_analog_output, latch_analog_outputs), start/stop logging, and
delete_sd_file. Reading data back is still allowed — list_sd_files, get_sd_storage,
download_sd_file, list_analog_outputs and read_analog_output all work, since they change
nothing on the device (the download does write its two files into this machine's temp directory,
which is the only way the data can reach the agent at all).
The live tools sit on the line: reading a stream that is already running changes nothing and is
allowed, but starting one is a change, so read_channel_values and capture_samples are refused
under --read-only when the device is idle — and say so.
Staying current
The tool list grows with each release, so an out-of-date install is not merely behind — it is
missing capabilities. A Daqifi.Mcp from before the live-data tools landed, for instance, can
configure a device and start SD logging but cannot read a single value back, and an agent driving
it reasonably concludes the hardware cannot measure anything. Nothing about that is visible from
the inside.
So the server tells you. It reports its version in the MCP handshake, asks nuget.org once at
startup whether a newer release exists and writes one line to stderr if so, and answers
get_server_info with the same finding — call that whenever a tool you expected is not there.
That startup check is the only outbound request the server ever makes: one anonymous GET for a
static nuget.org version index, no device data, five-second timeout, and a failure is silent.
--no-version-check turns it off, after which get_server_info still reports the running version
and says staleness is unknown.
Point your agent at it
An stdio MCP server is just a command the client launches. Every client config reduces to command + args.
Claude Desktop — claude_desktop_config.json:
Claude Code:
Cursor — ~/.cursor/mcp.json (same shape as Claude Desktop).
Codex CLI — ~/.codex/config.toml:
During development, point the client at the source build instead:
{ "command": "dotnet", "args": ["run", "--project", "/abs/path/to/src/Daqifi.Mcp"] }.
Then plug in a DAQiFi over USB (or join its WiFi) and ask, e.g.: "Discover my DAQiFi, connect, enable analog channels 0–3 at 1 kHz, and start logging to the SD card." "Stop the log, then download it and tell me the average on AI0." "What voltage is on AI1 right now?" "Capture two seconds off channels 0–3 and tell me if anything looks noisy."
Notes
- stdout is reserved for the MCP JSON-RPC stream; all logging goes to stderr.
- The server runs locally and talks to the device exactly like
Daqifi.Coredoes — no measurement, device or configuration data ever leaves your machine. The one outbound request is the startup version check described above, which sends nothing but a user agent and can be disabled with--no-version-check.
来源:src/Daqifi.Mcp/README.md,提交 5ddf099
工具
0版本历史
3- v1.9.1最新Nov 6, 2026
- v1.9.0Nov 4, 2026
- v1.8.0Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分