saleae-mso-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
saleae-mso-mcp
A Model Context Protocol server for the Saleae Logic MSO mixed-signal oscilloscope. It lets Claude (or any MCP client) configure the scope, run timed or edge-triggered captures, and read back measurements and waveforms, all from a chat.
Saleae's built-in Logic 2 MCP server supports their logic analyzers but not
the Logic MSO yet. This project fills that gap by talking to the hardware
directly through Saleae's official
saleae-mso-api,
with no Logic 2 GUI involved.
Status: alpha. Developed against the Logic MSO on Linux. Feedback and PRs welcome.
What the model gets
Raw scope data is millions of samples, far too much for a context window. The server therefore returns facts first and points on request:
Tool | Purpose |
| Is an MSO connected? Serial, part number, capture folder. |
| Capture for N seconds. |
| Wait for an analog edge, capture around it (t = 0 at trigger). |
| Browse saved captures. |
| Min/max/mean/RMS/AC-RMS, Vpp, frequency, period, duty cycle, 10–90 % rise/fall, or edge stats for logic channels, over any time window. |
|
|
| Initial state + edge times of a logic channel. |
| Full-resolution CSV written next to the capture. |
| Remove a capture. |
| Hand the USB device back to Logic 2. |
Every capture is saved to disk (default ~/.local/share/saleae-mso-mcp/captures)
and can be re-analysed later, even after a restart.
Related MCP server: dsview-mcp
Install
Requirements: Python ≥ 3.11, a Logic MSO, and Logic 2 ≥ 2.4.20 installed once (it provides the USB drivers / udev rules).
git clone https://github.com/magradze/saleae_mso_mcp.git
cd saleae_mso_mcp
uv sync --extra hardwareWith plain pip:
python -m venv .venv && . .venv/bin/activate
pip install -e '.[hardware]' --extra-index-url https://downloads.saleae.com/pypi/On Linux without Logic 2, install the udev rules:
python -m saleae.mso_api.utils.install_udev.
Connect to Claude
Claude Desktop: edit claude_desktop_config.json
(Linux ~/.config/Claude/, macOS ~/Library/Application Support/Claude/,
Windows %APPDATA%\Claude\):
{
"mcpServers": {
"saleae-mso": {
"command": "uv",
"args": ["--directory", "/path/to/saleae-mso-mcp", "run", "saleae-mso-mcp"]
}
}
}Claude Code:
claude mcp add saleae-mso -- uv --directory /path/to/saleae-mso-mcp run saleae-mso-mcpRestart the client, then ask something like "capture CH1 for 10 ms at 1 GS/s and tell me the frequency and rise time".
Only one program can own the MSO at a time. Close Logic 2 before capturing, or ask the model to call
release_devicebefore reopening Logic 2.
Try it without hardware
uv run saleae-mso-mcp --backend simulatedThe simulated backend produces deterministic sine waves on analog channels and square waves on logic channels. It is what the test suite and CI use.
Configuration
Env var | CLI flag | Default |
|
|
|
|
| first MSO found |
|
|
|
|
| |
|
| |
|
| |
|
| |
|
|
--transport streamable-http runs the server over HTTP instead of stdio.
Architecture
saleae_mso_mcp/
├── server.py MCP tools: thin layer, validation + error mapping
├── service.py application service: locking, persistence, result shaping
├── analysis.py pure numpy measurements and min/max decimation
├── domain.py backend-neutral requests (pydantic) and capture data
├── store.py on-disk capture repository + small LRU cache
├── settings.py env/CLI configuration
├── cli.py entry point
└── backends/
├── base.py Backend protocol
├── hardware.py Logic MSO via saleae-mso-api (imported lazily)
└── simulated.py synthetic signals for tests and demosAdding support for another instrument means writing one more backend.
Development
uv sync
uv run pytest
uv run ruff check . && uv run ruff format --check .License
MIT © Giorgi Magradze. Not affiliated with Saleae, Inc. "Saleae" and "Logic MSO" are trademarks of their respective owners.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Log and read REPS time logs, properties, and categories via MCP. Requires REPSLog Premium.
Create and manage trading strategies, bots, webhooks and signals from any MCP client.
Official MCP bridge to Exogram—the Personal AI Agent for your work, people, and life.
Start and manage Reason cloud coding agents, projects and sessions from any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to control Saleae Logic analyzers, capture and analyze digital/analog signals, and export data via MCP.MIT
- FlicenseNot gradedqualityCmaintenanceLocal MCP server for building an agent-facing integration around DreamSourceLab DSView. Enables native logic capture, protocol decode, and analysis with artifact management for I2C, SPI, and UART.-
- FlicenseNot gradedqualityNot gradedmaintenanceEnables remote control and automation of Saleae logic analyzers for capture, export, and protocol decoding.10-
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to capture digital waveforms from an ALIENTEK USB logic analyzer, run 208 sigrok protocol decoders with stacked chains (like I2C→SSD1306 or UART→Modbus), and analyze or write .atkdl waveform archives offline without the device attached.3MIT