Skip to main content

MCP server for controlling LeCroy oscilloscopes via SCPI/VXI-11

Project description

lecroy-mcp

MCP server for controlling LeCroy oscilloscopes via SCPI over LAN (VXI-11) or USB.

Demo

Requirements

  • uv installed
  • A LeCroy oscilloscope connected over LAN or USB

MCP configuration

Add to your MCP client config (e.g. Claude Code's .mcp.json):

{
  "mcpServers": {
    "lecroy-scope": {
      "type": "stdio",
      "command": "uvx",
      "args": ["lecroy-mcp"]
    }
  }
}

uvx will automatically download and run the server — no manual installation needed.

Oscilloscope setup (LAN / VXI-11)

Scope Setup

This server communicates over the standard VXI-11 protocol. Before connecting, enable it on the scope:

  1. On the scope, go to Utilities → Utilities Setup ... → Remote
  2. In the Control from section, enable LXI (VXI11)
  3. Note the IP Address shown — you will need it for the connection string

The scope's IP can be assigned via DHCP or configured statically under Utilities → Utility → Remote → Net Connections.

Note: The TCPIP (VICP) option shown in the same panel uses LeCroy's proprietary protocol and is currently not supported by this server. Only LXI (VXI11) is required.

Connection options

Option 1 — Manual connection

Copy the MCP client config from above as-is and connect from within the Claude session:

  1. scope_scan — auto-detect LeCroy scopes on the local network
  2. scope_list_resources — list all VISA resources (LAN + USB)
  3. scope_connect("TCPIP0::192.168.1.111::inst0::INSTR") — connect directly

Optionally set LECROY_SUBNET to hint the scan range:

{
  "mcpServers": {
    "lecroy-scope": {
      "type": "stdio",
      "command": "uvx",
      "args": ["lecroy-mcp"],
      "env": {
        "LECROY_SUBNET": "192.168.1.0/24"
      }
    }
  }
}

Option 2 — Pre-configure the IP address (recommended for LAN)

Set LECROY_HOST in the env block and the server auto-connects on startup:

{
  "mcpServers": {
    "lecroy-scope": {
      ...
      "env": {
        "LECROY_HOST": "192.168.1.111"
      }
    }
  }
}

Option 3 — Pre-configure a full resource string (LAN or USB)

Use LECROY_RESOURCE for full control, including USB connections:

{
  "mcpServers": {
    "lecroy-scope": {
      ...
      "env": {
        "LECROY_RESOURCE": "USB0::0x05FF::0x1023::12345::INSTR"
      }
    }
  }
}

Usage

Once connected, you have tools for:

  • Channel setup (scale, offset, coupling, bandwidth limit)
  • Trigger configuration (mode, source, level, edge)
  • Timebase and memory depth
  • Automated measurements (PKPK, FREQ, RMS, RISE, DUTY, etc.)
  • Waveform capture (JSON or CSV)
  • Screenshots
  • Math functions (FFT, INTG, DIFF, etc.)
  • WaveSource built-in generator (WaveSurfer 3000Z and similar)

Supported models

The server detects the connected model and adjusts commands accordingly. Profiles are included for:

  • WaveSurfer 3000Z / 4000HD
  • HDO4000A / HDO6000B / HDO8000A
  • WaveRunner 6000 / 8000
  • WavePro HD
  • MDA800A, SDA

Unknown models fall back to conservative defaults.

Manual installation

If you prefer not to use uvx:

pip install lecroy-mcp

Then use lecroy-mcp as the command in your MCP config instead of uvx lecroy-mcp.

Updating

With uvx, use the @latest tag to force the newest version:

uvx lecroy-mcp@latest

Or update the args in your .mcp.json to always pull the latest:

"args": ["lecroy-mcp@latest"]

With pip:

pip install --upgrade lecroy-mcp

Notes

  • Requires pyvisa-py backend — NI-VISA is currently not supported (breaks screenshot capture)
  • All VISA access is serialized via a threading lock; parallel MCP tool calls are safe

Troubleshooting

Diagnostic messages not appearing in MCP logs

If you are not seeing server log output (e.g. auto-connect status or errors) in your MCP client's log viewer, add PYTHONUNBUFFERED to the env block:

"env": {
  "PYTHONUNBUFFERED": "1"
}

This disables Python's output buffering so log messages are flushed immediately. It is not required for normal operation.

Project details


Download files

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

Source Distribution

lecroy_mcp-0.1.9.tar.gz (33.4 MB view details)

Uploaded Source

Built Distribution

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

lecroy_mcp-0.1.9-py3-none-any.whl (42.6 kB view details)

Uploaded Python 3

File details

Details for the file lecroy_mcp-0.1.9.tar.gz.

File metadata

  • Download URL: lecroy_mcp-0.1.9.tar.gz
  • Upload date:
  • Size: 33.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for lecroy_mcp-0.1.9.tar.gz
Algorithm Hash digest
SHA256 3aab42cfce491743bf97be0fdc3f7cb304dbe8d8afe7b64b2ff4df7dc1753bce
MD5 f78f22fbf4b6f4e60c5f10ec50c79af4
BLAKE2b-256 47797ee5a1e3c1b496a826f96576fd42d102933756bf87cf329b660f88f84f3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for lecroy_mcp-0.1.9.tar.gz:

Publisher: release.yml on lucasgerads/lecroy-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 lecroy_mcp-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: lecroy_mcp-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 42.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for lecroy_mcp-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 7c3731abba2f601b4efebc34f746c9ed22973e35c15c2a84abbafab8300ffe1a
MD5 643c677f57daf5f2725a95dc5a13c282
BLAKE2b-256 5eeeaf06ff0d3191d9e57169067d1fe1585d2cfeb2a436d24de996913dd2ec7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for lecroy_mcp-0.1.9-py3-none-any.whl:

Publisher: release.yml on lucasgerads/lecroy-mcp

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page