Skip to main content
Glama
krystalmonolith

SkippyMCP

SkippyMCP

An MCP (Model Context Protocol) server for controlling Rigol oscilloscopes from an AI assistant. SkippyMCP translates MCP tool calls into SCPI commands over PyVISA, so an assistant can configure channels and triggers, arm captures, read measurements, grab screenshots, pull waveform data, and read protocol-decode results.

The name is a nod to SCPI — pronounced "skippy" in the test-and-measurement world.

  • Project name: SkippyMCP

  • Executable: skippy-mcp

  • Primary target: Rigol MSO5204 (MSO5000 series); a per-series dialect layer keeps other Rigol DSO/MSO families addable.

  • Status: hardware-free stack complete (driver, dialect, simulator, MCP tools, end-to-end tests). Live-hardware smoke test pending.

Install

python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"

Related MCP server: siglent-sds-mcp

Run

skippy-mcp --host 192.168.1.50          # connect over LAN, serve MCP over stdio
skippy-mcp --resource TCPIP0::scope::INSTR

Flag

Default

Effect

--host / --resource

Instrument address (one required).

--timeout-ms

5000

VISA I/O timeout.

--async

sync

Dispatch tool calls via a thread executor.

--no-reset

reset on

Skip *RST on connect; leave the setup untouched.

--allow-raw-scpi

off

Register the scpi_raw escape-hatch tool.

Docker

docker build -t skippy-mcp:latest .
# --network host is needed to reach a link-local / same-LAN instrument:
docker run --rm -i --network host skippy-mcp:latest \
  --resource TCPIP0::<scope-ip>::5555::SOCKET

The image is pure-Python (pyvisa-py), runs as a non-root user, and serves MCP over stdio (-i).

Tools

get_identity, configure_channel, configure_logic, configure_trigger, capture, measure, screenshot, read_waveform, decode_bus, and (when --allow-raw-scpi) scpi_raw.

Develop / test

.venv/bin/pytest          # full suite, no hardware (uses the simulator)
.venv/bin/mypy            # strict type-check
.venv/bin/ruff check

Documentation

Document

Description

Initial design

Overview, architecture, tool surface, compatible models, prior art.

Detailed design

Layered architecture, transport interface + simulator, dialect layer, error model, tool schemas.

Implementation plan

Phased build plan (hardware-free through Phase 6).

License

MIT © 2026 Mark Deazley

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/krystalmonolith/skippy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server