Skip to main content
Glama

scpi-mcp

LabLink gives agents a SCPI wire; scpi-mcp gives agents oscilloscope expertise.

scpi-mcp is a Model Context Protocol server that lets an agent operate an oscilloscope — not just push SCPI strings at one. It exposes goal-level tools (capture this signal, measure that, characterize a channel) backed by a clean, instrument-agnostic interface. All vendor SCPI lives in the underlying instrument library; the MCP layer stays a thin, uniform wrapper with no raw-SCPI escape hatch.

        .-"""-.
       / .===. \      Skippi
       \/ 6 6 \/      your bench-buddy scope gremlin
       ( \___/ )      "probe first, ask questions later"
    ___ooo___ooo___

Skippi is the mascot — the little gremlin who lives in the scope and knows where all the signals hide.

Scope

First instrument: Rigol DS1054Z (unlocked to DS1104Z base) — 4 analog channels, 100 MHz. No :SOURce (function generator) or :LA (logic analyzer) support. Reachable over USB or LAN (TCPIP::<ip>::INSTR).

Related MCP server: rigol-mcp

Architecture

  • transport/ — owns discovery. Enumerates USB, falls back to best-effort LAN auto-discovery, then to an IP prompt; resolves a single VISA resource string and hands it to the instrument layer. Discovery never leaks upward.

  • instruments/ — vendor-specific backends behind one abstract base.py interface. rigol_ds1000z.py is a thin wrapper over the (complete) library; mock.py implements the same interface with zero hardware. Adding an instrument is one new file here and zero changes to tools/.

  • tools/ — instrument-agnostic MCP tools that call only base.py.

  • config.py — permission tiers (read_only / read_config / full), enforced at the tool layer. The server refuses; the model never decides.

Status

Part 1 (this scaffold) runs entirely against a MockInstrument — no hardware, no live VISA. Library completion (Part 2) and hardware-in-the-loop wiring (Part 3) are bench tasks. See SCAFFOLD_TASK.md.

Quickstart

uv sync
uv run pytest          # all green against the mock, zero hardware
uv run scpi-mcp        # start the MCP server (mock backend by default)

License

MIT

Install Server
A
license - permissive license
B
quality
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/armchairdeity/mcp-server-scpi'

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