Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

LabJack T-series DAQ

by K-Dense-AIversion 0.1.3i★ –iRuns on your computer
Registry nameio.github.K-Dense-AI/labmcp-labjack

Install

Overview

Description from the maker (original English)

MCP server for LabJack T4, T7/T7-Pro and T8 DAQ devices (LJM).

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs on your computer
  • Transport: stdio
  • Category: Other

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: LABMCP_ADDRESS, LABMCP_SIMULATE, LABMCP_READ_ONLY, LABMCP_LIMITS

You need

  • PyPIPython’s uv installed (for the uvx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "labmcp-labjack": {
      "command": "uvx",
      "args": [
        "labmcp-labjack"
      ],
      "env": {
        "LABMCP_ADDRESS": "your-value",
        "LABMCP_SIMULATE": "your-value",
        "LABMCP_READ_ONLY": "your-value",
        "LABMCP_LIMITS": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add labmcp-labjack --env LABMCP_ADDRESS=your-value --env LABMCP_SIMULATE=your-value --env LABMCP_READ_ONLY=your-value --env LABMCP_LIMITS=your-value -- uvx labmcp-labjack

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "labmcp-labjack": {
      "command": "uvx",
      "args": [
        "labmcp-labjack"
      ],
      "env": {
        "LABMCP_ADDRESS": "your-value",
        "LABMCP_SIMULATE": "your-value",
        "LABMCP_READ_ONLY": "your-value",
        "LABMCP_LIMITS": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "labmcp-labjack": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "labmcp-labjack"
      ],
      "env": {
        "LABMCP_ADDRESS": "your-value",
        "LABMCP_SIMULATE": "your-value",
        "LABMCP_READ_ONLY": "your-value",
        "LABMCP_LIMITS": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • LABMCP_ADDRESS env
    Instrument address, e.g. serial:///dev/ttyUSB0 or tcp://192.168.1.50:5025
  • LABMCP_SIMULATE env
    Set to 1 to use the built-in simulator (no hardware)
  • LABMCP_READ_ONLY env
    Set to 1 to disable all state-changing tools
  • LABMCP_LIMITS env
    Safety limit overrides, e.g. max_temperature_c=80

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account K-Dense-AI, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • – Not applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Otheri

  • More stars than 0% of the other 18360 servers in this category
  • Published to the registry more recently than 53% of the other 18360 servers in this category
  • Basic checks equal to or better than 100% of the other 18360 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is LabJack T-series DAQ safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.1.3) reached the registry 42 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) on your computer.

What can I use instead?

In the same category: Spec Driven Development, Remote Desktop Commander, Tool Guardian

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Spec Driven Development

by formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Runs on your computer★ 440MITUpdated 14 months ago
Install

Remote Desktop Commander

by desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Runs in the cloud★ 211Updated 2 days ago
Install

Tool Guardian

by LuminariSoftwares

Too many MCP servers eating your context? A router that loads each tool's schema only when needed.

Runs on your computerUpdated today
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

LabJack T-series DAQ — MCP Server

Let an AI agent read analog inputs, stream waveforms, read thermocouples, check digital lines and (with your permission) set DACs and digital outputs on LabJack T4, T7/T7-Pro and T8 DAQ devices through LabJack's official LJM library.

Packagelabmcp-labjack
InstrumentsLabJack T4, T7, T7-Pro, T8 (and their OEM versions)
InterfacesUSB, Ethernet, WiFi (T7-Pro)
ProtocolLJM library + T-series Modbus register map (T-Series Datasheet, register map ljm_constants.json, labjack-ljm Python wrapper)
Status🧪 simulated: tested against a simulated LJM backend, not yet verified on hardware. Report a hardware test

Try it without hardware

uvx labmcp-labjack --simulate --check

uvx labmcp-labjack --simulate --option sim_model=T8 --check # T4, T7, T7-Pro (default) or T8

The simulator wires a 2 V / 10 Hz sine to AIN0, a thermistor divider (~2.5 V) to AIN1, DAC0 back into AIN2, an LM34 cold-junction sensor to AIN3, and a ~37 °C thermocouple to AIN0-AIN3 when the thermocouple feature is used. Other inputs are grounded.

Connect your LabJack

  1. Install LJM (the native library and USB driver) from labjack.com/support/software/installers/ljm. The labjack-ljm Python package is installed automatically with this server, but it needs that native library.
  2. Close other LabJack software (Kipling, LJLogM, LJStreamM). A device can only be claimed by one process at a time over USB.
  3. Test the connection:
   uvx labmcp-labjack --check                                  # first LabJack found

uvx labmcp-labjack --address 470012345 --check # by serial number uvx labmcp-labjack --address 192.168.1.207 --option connection_type=ETHERNET --check uvx labmcp-labjack --option device_type=T4 --check # only open a T4

   `--address` is the LJM identifier: a serial number, an IP address, a device name, or `ANY` (the default).

Add to your MCP client

Claude Code

claude mcp add labjack -- uvx labmcp-labjack --address 470012345

Claude Desktop / Cursor / Windsurf (claude_desktop_config.json, .cursor/mcp.json, …)

{

"mcpServers": { "labjack": { "command": "uvx", "args": ["labmcp-labjack", "--address", "470012345"] } } }

Add --read-only to allow measurements but block the DAC and digital-output tools (set_outputs_safe stays available). Add --option safe_dio=FIO0,FIO1 to make set_outputs_safe always release those lines, even if another program drove them. For other clients, generate the snippet with uvx labmcp config labjack --client vscode (also cursor, codex, claude-code).

Tools

ToolKindDescription
get_command_log👁 readReturn the most recent raw commands sent to / replies received from the instrument (newest last). Useful for debugging and for recording what was done.
get_connection_info👁 readReport which instrument is connected (identity, address, simulated or real), whether the server is read-only, and the active safety limits. Call this first.
get_device_info👁 readIdentify the connected LabJack (model, serial, firmware, connection) and list what it offers: analog inputs, valid input ranges, resolution indices, DAC range, digital lines and stream rate. Call this before configuring channels.
read_analog_inputs👁 readRead one or more analog inputs once (command-response) and return volts.
read_device_temperature👁 readRead the LabJack's internal temperature sensor (°C, about ±2 °C) and the estimated ambient air temperature. On the T8 also returns the sensor next to each AIN terminal. Cannot be read while a stream is running.
read_digital_inputs👁 readReport the logic level and direction (input/output/analog) of digital I/O lines.
read_thermocouple👁 readRead a thermocouple with the T7/T8 AIN thermocouple extended feature (types B, C, E, J, K, N, R, S, T) and return °C with the measured voltage and cold-junction temperature.
reconnect🛑 safetyClose and re-open the connection to the instrument (e.g. after it was power cycled or a cable was re-plugged).
set_digital_output⚠️ hazardMake a digital line an output and drive it high (3.3 V) or low (0 V).
set_outputs_safe🛑 safetyPut the outputs in a safe state: stop any stream, set DAC0 and DAC1 to 0 V, and release every digital line this server drove (plus the safe_dio option lines) to input - or drive them low with dio_mode='low'. Use when finished or if anything looks wrong.
stream_analog👁 readAcquire a hardware-timed waveform on one or more analog inputs (LJM stream mode) and return per-channel statistics plus a downsampled waveform; optionally save everything to CSV.
write_dac⚠️ hazardSet an analog output (DAC0/DAC1) to a DC voltage. The output stays at this value until changed or set_outputs_safe is called.

get_connection_info, get_command_log and reconnect are built into every LabMCP server. The command log records every LJM register read and write.

Safety limits

LimitDefaultMeaning
max_dac_voltage_v5 VHighest DAC voltage an agent may set (hardware: T4/T7 0-5 V, T8 0-10 V)
max_stream_duration_s60 sLongest hardware-timed stream
max_scan_rate_hz10 000 HzHighest stream scan rate (the device maximum still applies)

Override at launch, e.g. --limit max_dac_voltage_v=2.5. Limits are checked before anything is sent. Streams are also capped at 2 million samples in total.

Example prompts

  • "Read AIN0-AIN3 on the ±1 V range and tell me which channels look like they are floating."
  • "Stream AIN0 and AIN1 at 5 kHz for 2 seconds, give me the RMS and peak-to-peak of each, and save the data to ~/data/run12.csv."
  • "Read the type K thermocouple on AIN2 every 10 seconds for a minute and tell me whether it is still warming up."
  • "Set DAC0 to 1.25 V, then check the loopback on AIN2 and report the error in millivolts."
  • "Which digital lines are outputs right now, and what level are they at?"
  • "We're done — put all the outputs back in a safe state."

Notes

  • Model differences are enforced. Valid input ranges (AIN#_RANGE) and resolution indices come from LabJack's register map: T7 ±10/±1/±0.1/±0.01 V and index 0-8 (T7-Pro 0-12, but 9-12 cannot stream); T8 ±11 … ±0.018 V and index 0-16 (one index shared by all inputs); T4 fixed ranges (AIN0-3 ±10 V, AIN4-11 0-2.5 V) and index 0-5. DAC range: T4/T7 0-5 V, T8 0-10 V.
  • Settings persist. Range, resolution and differential settings made by read_analog_inputs stay on the device until changed or power-cycled. Omitted settings are left as they are; every reading reports what it was measured against (GND, the T7 negative input, or the T8's isolated terminal).
  • Reading digital lines never changes their direction. read_digital_inputs uses the DIO_STATE/DIO_DIRECTION bitmasks. (Reading a single-line register such as FIO3 would switch that line to input.)
  • T4 flexible I/O. AIN4-AIN11 share terminals with FIO4-EIO3. The server refuses to read those AINs while the line is a digital output, because the read would switch it to analog and release whatever it drives.
  • `set_outputs_safe` default is `input`, the T-series power-up state (input with pull-up). If an attached relay board treats a pulled-up input as "on", use dio_mode="low" instead.
  • Thermocouples use the AIN extended feature (AIN#_EF_INDEX 20-30). With cjc="internal" the CJC register is set to its documented default TEMPERATURE_DEVICE_K (address 60052), which the T8 firmware maps to each channel's own terminal sensor (TEMPERATURE#_CAPTURE); cjc="lm34" uses LabJack's LM34 conversion (55.56 K/V, 255.37 K). An open input returns valid=false (the device reports -9999).
  • Streams follow LabJack's stream_basic.py example (internal clock, no trigger, auto settling). While a stream runs, command-response analog reads are blocked by the device. Skipped scans (buffer overflow) are reported and left empty. set_outputs_safe does not wait for a running stream: it stops it at the next read (the partial result is returned with aborted: true). A stream runs at 1 scan/s or faster (so that stop is prompt) and always takes at least two scans; that real duration is what the max_stream_duration_s limit checks. The returned waveform is downsampled by keeping each block's minimum and maximum, so short spikes are not lost; save_path must be a new .csv file (an existing file is never overwritten, and the path is checked before streaming).
  • Importing the LJM wrapper prints to stdout if the native library is missing. The server redirects that import so the MCP stdio channel is never corrupted, and reports a clear install hint instead.

Hardware verification

ModelFirmwareInterfaceVerified byDate
*none yet: be the first*
Ask PopNx