Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Discover, configure and read DAQiFi Nyquist data-acquisition hardware from an AI agent
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"daqifi": {
"command": "dnx",
"args": [
"Daqifi.Mcp",
"--yes"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add daqifi -- dnx Daqifi.Mcp --yes프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"daqifi": {
"command": "dnx",
"args": [
"Daqifi.Mcp",
"--yes"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"daqifi": {
"type": "stdio",
"command": "dnx",
"args": [
"Daqifi.Mcp",
"--yes"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 daqifi 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.9.1)은 오늘 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 .NET도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Symantec Cloud DLP AIops
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Governed Symantec Cloud DLP — 14 MCP tools, read-only with audit.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
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.
| Tool | Purpose |
|---|---|
get_server_info | This server's own version, and whether a newer Daqifi.Mcp is published. |
discover_devices | Find devices on USB/serial and WiFi. Call first; returns device_ids. |
connect_device | Connect to a discovered device_id. |
list_connected_devices | List currently-connected devices. |
disconnect_device | Disconnect and release a device. |
get_device_status | Connection state, streaming/logging flags, sample rate, enabled channels. |
list_channels | All channels with type/enabled/direction. |
configure_analog_channels | Enable exactly the given analog channels; disable the rest. |
configure_digital_channels | Enable exactly the given digital channels; disable the rest. |
set_digital_direction | Set a digital channel to input or output. |
set_digital_output | Drive a digital channel high or low (switches it to output if needed). |
set_pwm_output | Start PWM on a capable channel: duty 1-100%, shared frequency 6-50000 Hz. |
disable_pwm | Stop PWM on a channel (pin is left high-impedance). |
list_analog_outputs | The DAC channels with the voltage range each accepts and the value it is driving. |
set_analog_output | Drive a DAC channel to a voltage (Nyquist 3 only); range-checked before it is sent. |
latch_analog_outputs | Apply the voltages staged with set_analog_output latch=false, together. |
read_analog_output | Ask the device what a DAC channel is holding. |
set_sample_rate | Set sample rate in Hz (ceiling depends on the enabled channel count; over-cap requests are rejected). |
read_channel_values | Latest value on every enabled channel, with the timestamp it was sampled at. |
capture_samples | A block of live data as rows: one row per sample tick, one column per channel. |
start_sd_logging | Start on-device SD logging (requires a USB/serial connection). |
stop_sd_logging | Stop SD logging. |
list_sd_files | List the log files on the SD card, with size and creation date. |
get_sd_storage | Free/used/total space on the SD card. |
download_sd_file | Fetch a log file to this machine and (by default) parse it into a CSV. |
delete_sd_file | Delete a file from the SD card. Destructive; blocked by --read-only. |
Two ways to get data, for two different jobs.
read_channel_valuesandcapture_samples
stream 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
with
download_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 pass
latch=false, which stages it instead so several channels can be made to change together on one
latch_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.
dotnet tool install -g Daqifi.Mcp # provides the `daqifi-mcp` command (requires the .NET runtime)
dnx Daqifi.Mcp --yes # downloads and runs the server for this invocation
This is how a client that found the server in the MCP Registry (as io.github.daqifi/daqifi-mcp) will launch it.
dotnet run --project src/Daqifi.Mcp
--read-only Expose discovery/introspection only; block configuration and logging.
--max-sample-rate-hz Reject set_sample_rate requests above Hz. --no-version-check Do not ask nuget.org at startup whether a newer release exists. -h, --help Show help.
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.
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.
dotnet tool update -g Daqifi.Mcp # then restart your MCP client
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.
An stdio MCP server is just a command the client launches. Every client config reduces to command + args.
Claude Desktop — claude_desktop_config.json:
{
"mcpServers": { "daqifi": { "command": "daqifi-mcp", "args": [] } } }
Claude Code:
claude mcp add daqifi -- daqifi-mcp
Cursor — ~/.cursor/mcp.json (same shape as Claude Desktop).
Codex CLI — ~/.codex/config.toml:
[mcp_servers.daqifi]
command = "daqifi-mcp" args = []
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."*
Daqifi.Core does — 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.