daqmx-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@daqmx-mcp list connected DAQ devices"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
daqmx-mcp
Independent community project.
daqmx-mcpis not affiliated with, endorsed by, sponsored by, or supported by National Instruments. NI, NI-DAQmx, and related names are trademarks of National Instruments. This project includes no NI binaries, drivers, logos, or documentation. Users must obtain and license required NI software separately.
daqmx-mcp is a safety-bounded MCP server and Codex plugin for discovering data-acquisition devices and performing finite analog-voltage and digital-input reads through NI's supported nidaqmx Python package. Version 0.1.0 intentionally has no output, relay, reset, calibration, arbitrary property-write, continuous acquisition, shell, or Python-execution capability.
AI-generated hardware configurations require review by a qualified person. Tool results, including self-tests, are not proof that a connected system is electrically safe.
Quick start: mock mode
Requires Python 3.10 or newer.
python -m venv .venv
# Linux/macOS: source .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"
daqmx-mcp --check-config --config config.example.json
daqmx-mcp --config config.example.jsonThe final command is an STDIO MCP server and waits for an MCP client. To add the installed command to Codex:
codex mcp add daqmx-mcp --env DAQMX_MCP_CONFIG=/absolute/path/to/config.example.json -- daqmx-mcpDo not copy the example absolute path literally. Codex desktop, CLI, and IDE extension share the same MCP configuration; the desktop and IDE settings also provide MCP servers → Add server → STDIO, followed by a restart.
Related MCP server: industrial-mcp
What works
get_server_status, discovery, details, channel listing, self-testfinite multi-channel analog-voltage acquisition with optional PFI digital start trigger
one-shot software-timed digital input
bounded statistics and sample previews
new-file-only TDMS (preferred) and CSV recording inside one approved directory
deterministic cross-platform mock backend
lazy local backend that reports missing Python package/driver rather than breaking mock mode
exact device/channel allowlists, structured errors, metadata-only audit events, and
finallycleanup
No stop_acquisition tool is needed: every v0.1.0 acquisition is synchronous, finite, bounded, and owned by one tool transaction.
Documentation
Development
python -m pip install -e ".[dev]"
ruff format --check .
ruff check .
mypy src
pytest --cov=daqmx_mcp --cov-report=term-missing
python -m build
pip-auditSee CONTRIBUTING.md. Apache-2.0 is used for original project code; dependency and separately installed NI software licenses remain their own.
Available Tools
9 toolsacquire_analog_voltageARead-only
Perform one finite, bounded analog-voltage input transaction and return statistics plus a small preview.
Inputs: device (required), channels (required), sample_rate_hz (required), sample_count, +6 more. Returns: ok, error, units, device, +10 more
explain_daqmx_errorARead-only
Explain a DAQmx error while preserving the supplied numeric code and original message.
Inputs: message (required), code. Returns: ok, warning, category, explanation, +3 more
get_device_detailsBRead-only
Get read-only capabilities for one explicit allowed device.
Inputs: device (required). Returns: ok, error, device
get_server_statusARead-only
Report backend readiness, enforced safety limits, allowlist state, and project warnings.
Inputs: no named parameters. Returns: ok, limits, backend, project, +4 more
list_devicesARead-only
List only devices visible through the configured device allowlist.
Inputs: no named parameters. Returns: ok, error, devices
list_physical_channelsARead-only
List allowed analog-input and/or digital-input physical channels for one device.
Inputs: device (required), channel_type. Returns: ok, error, channels
read_digital_inputsARead-only
Read one software-timed sample from explicit digital-input lines.
Inputs: lines (required), device (required). Returns: ok, error, device, values, +1 more
record_analog_voltageA
Perform one finite analog input and create a new TDMS or CSV file inside the approved directory.
Inputs: device (required), channels (required), filename (required), sample_rate_hz (required), +8 more. Returns: ok, path, error, format, +2 more
self_test_deviceARead-only
Run NI-DAQmx's brief device self-test; it does not establish electrical safety.
Inputs: device (required). Returns: ok, error, device, passed, +1 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Every tool targets a distinct resource or action: device discovery, server status, channel listing, self-test, analog input, digital input, recording, and error explanation. The two analog voltage tools are differentiated by output (in-memory statistics vs. file creation), so no agent confusion.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_devices, get_device_details, read_digital_inputs). Even compound verbs like self_test_device and record_analog_voltage adhere to the same pattern, making the API predictable.
With 9 tools, the server is well-scoped for a DAQmx interface, covering device management, input operations, recording, and diagnostics. The count is neither sparse nor bloated, and each tool earns its place.
Core workflows are covered: device discovery, channel enumeration, analog/digital input, recording to file, self-test, and error handling. However, analog/digital output and continuous acquisition are absent, which may be intentional for safety but represents a notable gap for a DAQmx server.
Maintenance
Related MCP Connectors
QuLab MCP remote server (Streamable HTTP) for computational science and lab tools.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for mandates, delegation, policy-gated execution, credential grants, and audit.
JW3.ai remote MCP server for market reads and confirm-gated trading execution.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for seamless integration with peripheral devices connected to your computer. Control, monitor, and manage hardware devices through a unified API.5MIT
- AlicenseAqualityBmaintenanceAn MCP server that gives Claude (or any MCP-compatible AI host) read access to industrial sensor data and safety-gated control over motors and actuators.46MIT
- AlicenseAqualityCmaintenanceA local-first, read-only MCP server for vehicle diagnostics that exposes structured OBD-II tools for reading PIDs, DTCs, and ECU snapshots without raw protocol access.71Apache 2.0
- AlicenseNot gradedqualityDmaintenanceMCP server for reading and controlling an OWON SPE6103 programmable DC power supply over USB serial, with safety checks and verified SCPI commands.MIT