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). Tested on a WaveSurfer 3024Z with MAUI firmware.
Requirements
- Python 3.10+
- A LeCroy oscilloscope connected over LAN
- The scope's IP address
Installation
pip install -e .
Or without installing:
pip install -r requirements.txt
MCP configuration
Add to your MCP client config (e.g. Claude Code's .mcp.json):
{
"mcpServers": {
"lecroy-scope": {
"type": "stdio",
"command": "lecroy-mcp",
"env": { "PYTHONUNBUFFERED": "1" }
}
}
}
If running without installing, point command at server_stdio.py directly:
{
"mcpServers": {
"lecroy-scope": {
"type": "stdio",
"command": "python",
"args": ["server_stdio.py"],
"env": { "PYTHONUNBUFFERED": "1" }
}
}
}
Usage
Once connected to your MCP client, start with:
scope_list_resources— find the VISA address of your scopescope_connect("TCPIP0::192.168.1.x::inst0::INSTR")— connectscope_identify— confirm communication
From there you have tools for channel setup, trigger, timebase, measurements, waveform capture, screenshots, math functions, and the built-in WaveSource generator.
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.
Notes
- Requires
pyvisa-pybackend — NI-VISA is not supported (breaks screenshot capture) - All VISA access is serialized via a threading lock; parallel MCP tool calls are safe
Project details
Release history Release notifications | RSS feed
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 details
Details for the file lecroy_mcp-0.1.5.tar.gz.
File metadata
- Download URL: lecroy_mcp-0.1.5.tar.gz
- Upload date:
- Size: 5.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed24d1f645ed4f033bfd7307e4c141f5ca1138853f7a55301904cdef72dd0518
|
|
| MD5 |
3387739abdda332f0db46f3bddf1ac08
|
|
| BLAKE2b-256 |
0f764ae7c74d1f72b53b31ead0fe814d40311fa2ec77cd5e1d0765d71fb2530e
|
Provenance
The following attestation bundles were made for lecroy_mcp-0.1.5.tar.gz:
Publisher:
release.yml on lucasgerads/lecroy-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lecroy_mcp-0.1.5.tar.gz -
Subject digest:
ed24d1f645ed4f033bfd7307e4c141f5ca1138853f7a55301904cdef72dd0518 - Sigstore transparency entry: 1233386301
- Sigstore integration time:
-
Permalink:
lucasgerads/lecroy-mcp@241927a6597922bf6d19d244641623b887b43501 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lucasgerads
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@241927a6597922bf6d19d244641623b887b43501 -
Trigger Event:
push
-
Statement type:
File details
Details for the file lecroy_mcp-0.1.5-py3-none-any.whl.
File metadata
- Download URL: lecroy_mcp-0.1.5-py3-none-any.whl
- Upload date:
- Size: 39.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f5e405018b1b55d0229ee837b780160d7f1d5d0d04fd8317a5d804c6ce08669
|
|
| MD5 |
ff3444e38bcde0eb3868851142465f12
|
|
| BLAKE2b-256 |
5fc693a2cd318320b92ce07f3b6152f2438f2bc3c29991a5eaceb11241e71910
|
Provenance
The following attestation bundles were made for lecroy_mcp-0.1.5-py3-none-any.whl:
Publisher:
release.yml on lucasgerads/lecroy-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lecroy_mcp-0.1.5-py3-none-any.whl -
Subject digest:
6f5e405018b1b55d0229ee837b780160d7f1d5d0d04fd8317a5d804c6ce08669 - Sigstore transparency entry: 1233386333
- Sigstore integration time:
-
Permalink:
lucasgerads/lecroy-mcp@241927a6597922bf6d19d244641623b887b43501 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/lucasgerads
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@241927a6597922bf6d19d244641623b887b43501 -
Trigger Event:
push
-
Statement type: