RSS Amplifier

PyPI recent updates · Aug 21, 2026

usbtmc-lite-mcp 0.1.1

0
Sign in to vote or save

PyPI

USBTMC MCP Server

License: MIT

A Model Context Protocol (MCP) server for controlling multiple USBTMC (USB Test and Measurement Class) devices simultaneously using SCPI commands.

Features

  • Multi-Device Support: Connect and control up to 16 instruments at once.
  • Unified Interface: Use standard SCPI commands via a simplified MCP toolset.
  • Keysight Support: Includes specialized tools to unlock Keysight modular instruments from firmware mode to USBTMC mode.
  • Screenshot Capture: Take screenshots from Keysight/Agilent and Tektronix oscilloscopes.
  • State Management: Automatic tracking of device IDs and connection states.

Requirements

  • Python >= 3.13

Windows Additional Setup

This project uses libUSB as a backend for USB communication. On Windows, you need to install a compatible USB driver for your device using Zadig.

  1. Download and run Zadig
  2. Select your target USB device from the dropdown (enable Options → List All Devices if it does not appear)
  3. Select WinUSB as the driver and click Replace Driver

Note: Replacing the driver will remove the device's original functionality (e.g., HID recognition). To restore it, uninstall the driver from Device Manager and reconnect the device.

Installation

Using uv (recommended):

uv pip install usbtmc-lite-mcp

Or via pip:

pip install usbtmc-lite-mcp

Or from source:

git clone https://github.com/NaoNaoMe/usbtmc-lite-mcp.git
cd usbtmc-lite-mcp
uv sync

Configuration

Claude Desktop Config

Add the server to your claude_desktop_config.json:

{
  "mcpServers": {
    "usbtmc-lite-mcp": {
      "command": "uvx",
      "args": [
        "usbtmc-lite-mcp"
      ]
    }
  }
}

Tools Overview

Connection

  • usbtmc_list_devices: Scan the USB bus for available USBTMC instruments.
  • usbtmc_list_connected_devices: List all currently active device connections.
  • usbtmc_connect: Establish a connection to a specific device (returns a device_id).
  • usbtmc_disconnect: Close the connection to a device.

Communication

  • usbtmc_query: Send a SCPI query (e.g., *IDN?) and receive the response.
  • usbtmc_send: Send a SCPI command.
  • usbtmc_receive: Manually reads the response.
  • usbtmc_clear: Clear device buffers and reset communication state.

Keysight / Tektronix Utilities

  • usbtmc_unlock_keysight_devices: Switch Keysight modular instruments to USBTMC mode.
  • usbtmc_screenshot_keysight_display: Capture a screenshot from a Keysight/Agilent oscilloscope.
  • usbtmc_screenshot_tektronix_display: Capture a screenshot from a Tektronix oscilloscope.

Example Workflow

  1. List Devices: Call usbtmc_list_devices to find your instrument's serial number.
  2. Connect: Call usbtmc_connect with the serial_number. It will return a device_id (e.g., 0).
  3. Identify: Call usbtmc_query with device_id: 0 and command: "*IDN?".
  4. Configure: Call usbtmc_send to set parameters.
  5. Disconnect: Call usbtmc_disconnect when finished.

License

This project is licensed under the MIT License — see the LICENSE file for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

Filter files by name, interpreter, ABI, and platform.

If you're not sure about the file name format, learn more about wheel file names.

Copy a direct link to the current filters

File name

Interpreter

ABI

Platform

File details

Details for the file usbtmc_lite_mcp-0.1.1.tar.gz.

File metadata

  • Download URL: usbtmc_lite_mcp-0.1.1.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for usbtmc_lite_mcp-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c04fca05d8ebe53b8be3a7c35d2bedbb115c58cde7f35f2bae0297f11483c9d1
MD5 70e98871d7a1136a5374ce35702e6ce6
BLAKE2b-256 eac3954dca0ba519de5ced5f6690b2a99e4378f14a891a4697a2a881c0925a68

See more details on using hashes here.

Provenance

The following attestation bundles were made for usbtmc_lite_mcp-0.1.1.tar.gz:

Publisher: python-publish.yml on NaoNaoMe/usbtmc-lite-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file usbtmc_lite_mcp-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for usbtmc_lite_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7e0a182dd5fb52df9752394e9600782f99ad7353aac10655d2bfcab096d7b1e7
MD5 695d2f284d645ad8f7ec179ce5d25919
BLAKE2b-256 3bbbdb60d1f8b31ef965a476c4a5e410fc8b31e27bd1a8b163948a43143bbaaf

See more details on using hashes here.

Provenance

The following attestation bundles were made for usbtmc_lite_mcp-0.1.1-py3-none-any.whl:

Publisher: python-publish.yml on NaoNaoMe/usbtmc-lite-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

Read the original on pypi.org

Comments

Nothing yet. Say the first thing.

    Sign in to join the conversation.