Skip to main content
Glama
zinntikumugai

rigol-oscilloscope-mcp

rigol-oscilloscope-mcp

Ein MCP-Server (Model Context Protocol), der es LLMs (Claude, Codex usw.) ermöglicht, RIGOL-Oszilloskope über SCPI (LAN / USB) zu steuern — Verbinden, Konfigurieren von Kanälen/Zeitbasis/Trigger, Messen, Erfassen von Wellenformen und Screenshots, Dekodieren serieller Protokolle, hostseitige FFT-Analyse und Steuerung des integrierten AFG, alles über semantische Tools mit einer vierstufigen Sicherheitsrichtlinie. Verifiziert an einem echten RIGOL MHO98; andere RIGOL-Modelle funktionieren nach bestem Bemühen über Geräteprofile. Die Dokumentation ist derzeit auf Japanisch.

Ein MCP-Server, der es ermöglicht, RIGOL-Oszilloskope über LLMs zu steuern.

Natürlichsprachliche Anweisungen wie „Zeig mir die 1-kHz-3-V-Wellenform mit einem x10-Tastkopf" oder „Mach einen Screenshot der aktuellen Wellenform und speichere ihn" werden vom LLM (Claude / Codex usw.) in MCP-Tool-Aufrufe umgewandelt, und dieser Server steuert das Gerät über SCPI (LAN / USB). Es wird keine GUI-Automatisierung verwendet.

  • Mit echtem RIGOL MHO98 verifiziert (→ docs/verification/mho98-mvp.md)

  • Andere RIGOL-Modelle werden nach bestem Bemühen über Geräteprofile unterstützt (unbekannte Modelle funktionieren mit dem generischen Profil, was entsprechend gekennzeichnet wird)

  • Andere Hersteller als RIGOL werden nicht unterstützt (bei der Verbindung wird eine Warnung zurückgegeben, aber nicht abgelehnt)

Funktionen

  • Gesprächsbasierte Verbindung — Das Verbindungsziel wird grundsätzlich vom Benutzer im Gespräch angegeben (connect(address="...")). Die Standardwerte der Umgebungsvariablen sind ein optionaler Fallback

  • 26 MCP-Tools — Verbindung / Identifikation / Statusabfrage / Messung / Wellenform / Analyse (Statistik, FFT) / Screenshot / Kanal-, Zeitbasis- und Trigger-Konfiguration / Run, Stop, Single, Autoset / Serielle Decodierung: Konfiguration und Ergebnisabfrage / Signalgenerator (AFG): Konfiguration, Statusabfrage und Ausgangssteuerung (Ausgang EIN mit Bestätigungsablauf). Der LLM muss keine SCPI-Strings schreiben; es werden nur semantische Tools bereitgestellt

  • Sicherheitsrichtlinie mit 4 Klassen + Confirm-Token — Alle Operationen werden in READ_ONLY / SAFE_WRITE / RESTRICTED_WRITE / DANGEROUS_WRITE eingeteilt. 50-Ω-Eingang und Auto Setup erfordern eine host-UI-unabhängige zweistufige Bestätigung (Confirm-Token)

  • Screenshot-Speicherung — Speicherung als png / jpg / bmp / webp unter dem angegebenen Pfad; das Bild selbst wird auch an das LLM zurückgegeben (der Schreibort ist auf erlaubte Verzeichnisse beschränkt)

  • Geräteprofile — SCPI-Dialekt, Funktionsumfang und Parameterbereiche werden in mitgelieferten YAML-Dateien deklariert und in drei Ebenen aufgelöst: exakte Modellübereinstimmung → Familie → generisches RIGOL

  • Rückgabe von requested / applied — Da es modellabhängig ist, ob das Gerät die Sollwerte anpasst (snappt), werden sowohl der angeforderte als auch der ausgelesene Wert zurückgegeben

  • Audit-Log — Schreiboperationen werden mit Before / Action / After als JSONL protokolliert

Related MCP server: Rigol DHO824 MCP Server

Installation und Start

Der Start per uvx aus dem GitHub-Repository ist der Standard.

uvx --from git+https://github.com/zinntikumugai/rigol-oscilloscope-mcp@v0.1.0 rigol-oscilloscope-mcp

Standardmäßig ist die Version auf das Tag (@v0.1.0) festgelegt. Wenn Sie die neueste Entwicklungsversion (main) verwenden möchten, entfernen Sie @v0.1.0.

Claude Code — Plugin (empfohlen)

Dieses Repository dient zugleich als Claude-Plugin; neben dem MCP-Server werden auch Mess-Workflow-Skills (empfohlene Einstellungen je Signaltyp, Messverfahren für UART/unbekannte Signale, Sicherheits-Prompts) installiert. Fügen Sie zuerst den Marktplatz hinzu und installieren Sie dann (@ gefolgt vom Marktplatznamen):

/plugin marketplace add zinntikumugai/rigol-oscilloscope-mcp
/plugin install rigol-oscilloscope@rigol-oscilloscope-mcp

Claude Code (.mcp.json oder claude mcp add)

{
  "mcpServers": {
    "rigol-oscilloscope": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/zinntikumugai/rigol-oscilloscope-mcp@v0.1.0", "rigol-oscilloscope-mcp"],
      "env": { "RIGOL_MCP_SCREENSHOT_DIR": "~/scope-captures" }
    }
  }
}

Codex — Plugin

Ein Codex-Plugin (.codex-plugin/ + Marktplatzdefinition) ist ebenfalls enthalten und ermöglicht die gemeinsame Installation von MCP-Server und Mess-Workflow-Skills.

codex plugin marketplace add zinntikumugai/rigol-oscilloscope-mcp
codex plugin install rigol-oscilloscope

(Wenn Sie das Plugin nicht verwenden, werden die Skills auch erkannt, wenn Sie nur skills/measurement-workflows nach ~/.agents/skills/ kopieren. Für nur den MCP-Server reicht die folgende config.toml-Konfiguration)

Codex (~/.codex/config.toml)

[mcp_servers.rigol-oscilloscope]
command = "uvx"
args = ["--from", "git+https://github.com/zinntikumugai/rigol-oscilloscope-mcp@v0.1.0", "rigol-oscilloscope-mcp"]

[mcp_servers.rigol-oscilloscope.env]
RIGOL_MCP_SCREENSHOT_DIR = "~/scope-captures"

Start aus einem lokalen Clone

Wenn Sie das Repository lokal klonen und die Entwicklungsversion verwenden möchten, starten Sie mit uv run --directory.

{
  "mcpServers": {
    "rigol-oscilloscope": {
      "command": "/path/to/uv",
      "args": ["run", "--directory", "/path/to/rigol-oscilloscope-mcp", "rigol-oscilloscope-mcp"],
      "env": { "PYTHONDONTWRITEBYTECODE": "1" }
    }
  }
}
  • command wird als absoluter Pfad angegeben, wenn uv nicht im PATH des GUI-Hosts (Desktop-App) vorhanden ist. Den Pfad ermitteln Sie mit which uv (bei mise-Verwaltung mit mise which uv)

  • PYTHONDONTWRITEBYTECODE=1 explizit angeben. Da beim Start außerhalb des Projekts das [env] in mise.toml nicht greift, verhindert dies, dass __pycache__ in den Clone geschrieben wird

  • Der Standard-Speicherort für Screenshots ist nicht das mit --directory gewechselte Verzeichnis, sondern das Ausführungsverzeichnis, in dem der Server gestartet wurde. Wenn Sie ihn festlegen möchten, geben Sie RIGOL_MCP_SCREENSHOT_DIR an

  • Auch bei einem relativen Pfad in path gilt dieser Standard-Speicherort als Basis. Außerhalb des Standard-Speicherorts, von RIGOL_MCP_ALLOWED_DIRS und des temporären Verzeichnisses kann nicht gespeichert werden (wird abgelehnt)

Konfiguration (Umgebungsvariablen)

Alle Einstellungen können über Umgebungsvariablen angegeben werden (eine TOML-Konfigurationsdatei ist optional ebenfalls möglich). Die Prioritätsreihenfolge ist Tool-Argumente (Benutzeranweisungen im Gespräch) > Umgebungsvariablen > Konfigurationsdatei > eingebaute Standardwerte.

Umgebungsvariable

Inhalt

Standard

RIGOL_MCP_ADDRESS

Standard-Verbindungsziel (IP / VISA-Ressource)

Keine (Gesprächsanweisung erforderlich)

RIGOL_MCP_TRANSPORT

lan / usb

Aus der Adresse abgeleitet

RIGOL_MCP_PORT

LAN-SCPI-Port

Profilstandard (5555)

RIGOL_MCP_TIMEOUT_S

Timeout für einzelne Abfragen (Sekunden)

5

RIGOL_MCP_SCREENSHOT_DIR

Standard-Speicherort für Screenshots

Ausführungsverzeichnis (PWD; bei ungültigem Wert aktuelles Verzeichnis)

RIGOL_MCP_ALLOWED_DIRS

Erlaubte Schreibverzeichnisse (mehrere, durch Pfadtrennzeichen getrennt)

Standard-Speicherort + temporäres Verzeichnis

RIGOL_MCP_WAVEFORM_MAX_POINTS

Standard-Obergrenze für Wellenformabruf

100000

RIGOL_MCP_RAW_SCPI

Aktivierung des raw_scpi-Tools (reserviert: Tool selbst nicht implementiert)

false

RIGOL_MCP_LOG_LEVEL

Log-Level (error / warn / info / debug)

info

RIGOL_MCP_AUDIT_LOG

Ausgabeziel des Audit-Logs

Aktiv (~/.local/state/rigol-oscilloscope-mcp/audit.jsonl, folgt XDG_STATE_HOME). Mit off deaktiviert

RIGOL_MCP_CONFIG

Pfad der TOML-Konfigurationsdatei

Keine

Details finden Sie in Kapitel 9 von docs/Requirements.md.

Ausprobieren ohne echtes Gerät

Wenn Sie mit RIGOL_MCP_FAKE=1 starten, wird statt des echten Geräts eine Verbindung zum integrierten FakeScope hergestellt. So können Sie die MCP-Konfiguration des Hosts und den Gesprächsablauf prüfen, ohne ein Oszilloskop bereitzustellen.

RIGOL_MCP_FAKE=1 uvx --from git+https://github.com/zinntikumugai/rigol-oscilloscope-mcp@v0.1.0 rigol-oscilloscope-mcp

Entwicklung

Die Python-Version wird mit mise verwaltet, Abhängigkeiten und virtuelle Umgebung mit uv.

mise install          # Python + uv
uv sync               # 依存の解決
uv run pytest         # ユニットテスト(実機不要)
uv run rigol-oscilloscope-mcp   # stdioで起動

Die Tests mit echtem Gerät werden nur ausgeführt, wenn das Verbindungsziel über eine Umgebungsvariable übergeben wird (ohne Angabe werden sie automatisch übersprungen). Die IP-Adresse des echten Geräts darf niemals ins Repository geschrieben werden (tests/test_ip_guard.py prüft dies maschinell).

# read-only スイート(機器の設定を変更しない)
RIGOL_TEST_ADDRESS=<あなたのオシロのIP> uv run pytest -m device

# write スイート(設定変更 → read-back → 必ず復元)。二重ゲート
RIGOL_TEST_ADDRESS=<あなたのオシロのIP> RIGOL_TEST_ALLOW_WRITE=1 uv run pytest -m device_write

Setzen Sie für <Ihre-Oszilloskop-IP> die Adresse Ihres eigenen Geräts ein (wenn ein Beispiel benötigt wird, verwenden Sie das für die Dokumentation reservierte 192.0.2.x (TEST-NET-1)).

Fehlerbehebung

Symptom

Maßnahme

spawn uv ENOENT (Server startet nicht)

uv fehlt im PATH des GUI-Hosts. command in der MCP-Konfiguration auf den absoluten Pfad (Ausgabe von which uv / mise which uv) ändern

Screenshots werden an unerwartetem Ort gespeichert

Standard ist das Ausführungsverzeichnis, in dem der Server gestartet wurde. Speicherort explizit mit RIGOL_MCP_SCREENSHOT_DIR festlegen

Sicherheitshinweise

Viele RIGOL-Oszilloskope, einschließlich des MHO98, sind nicht isoliert (das GND jedes Eingangs ist mit dem GND von Gehäuse, USB usw. gemeinsam; Messkategorie Category I). Dieser Server verhindert gefährliche Konfigurationsänderungen, garantiert jedoch nicht die elektrische Sicherheit selbst.

Akteur

Verantwortung

KI (LLM)

Unterstützung bei der Entscheidung über Messkonfiguration und der Analyse der Ergebnisse

MCP-Server

Gerätesteuerung, Parameterprüfung, Durchsetzung der Sicherheitsrichtlinie, Protokollierung der Operationen

Mensch

Gewährleistung der physischen Verbindungen (DUT, Tastkopf, Ground Clip usw.) und der elektrischen Sicherheit

  • Der Anschlusspunkt des Tastkopfs, der Anschlusspunkt des Ground Clips, die tatsächliche Spannung des DUT, die Spannungsfestigkeit des Tastkopfs und der Isolationszustand können vom MCP nicht überprüft werden

  • **Die Messung von Netzspannung (100 V AC, Steckdose, Primärseite, AC mains) ist ausgeschlossen.** Messverfahren mit normalen passiven Tastköpfen werden nicht automatisch ausgeführt. Voraussetzung ist, dass ein Mensch die Verwendung von Differenz- oder Isolationstastköpfen bestätigt

  • Firmware-Update / Kalibrierung / Factory-Service-Operationen / Änderung der Netzwerkeinstellungen sind ausgeschlossen

Details finden Sie in Kapitel 6 (Sicherheitsanforderungen) von docs/Requirements.md.

Vertrauensmodell des Confirm-Ablaufs: Die zweistufige Bestätigung (Confirm-Token) dient dazu, Fehlbedienungen und vorschnelle Schlüsse des LLM zu verhindern; sie ist kein Schutz vor einem böswilligen MCP-Host (da das Token an denselben Aufrufer zurückgegeben wird, kann ein böswilliger Host es einfach durch zwei Aufrufe umgehen). Die physische Sicherheit kann nur durch den Menschen gewährleistet werden, der darüber wacht, was verdrahtet ist. Das Token von enable_afg ist außerdem an die AFG-Konfiguration zum Zeitpunkt der Ausstellung gebunden; wenn die Einstellungen (z. B. Amplitude) nach der Ausstellung geändert werden, wird das Token ungültig.

Haftungsausschluss: Diese Software wird ohne Gewährleistung bereitgestellt (LICENSE). Der Autor übernimmt keine Haftung für Schäden an Messgeräten, Prüflingen (DUT) oder Peripheriegeräten, für fehlerhafte Messergebnisse oder für daraus entstehende Schäden, die durch die Verwendung dieser Software verursacht werden.

Lizenz

MIT License — Copyright (c) 2026 zinntikumugai

Dokumentation

docs/README.md enthält eine Liste der Dokumente und die empfohlene Lesereihenfolge.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (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.

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables LLMs like Claude to interact with PicoScope oscilloscopes for signal acquisition, measurement, and analysis. Supports device management, data capture, triggering, and signal generation through natural language commands.
    24
    5
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables control and querying of Rigol DHO824 oscilloscopes, allowing users to capture waveforms, take screenshots, and interact with oscilloscope settings through natural language.
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables remote control of LeCroy oscilloscopes via SCPI commands over LAN to perform waveform capture, screenshots, measurements, channel configuration, and triggering through natural language. Supports multiple LeCroy models including WaveSurfer, HDO, WaveRunner, and WavePro series with automatic model detection.
    48
    11
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to directly control NI oscilloscopes (e.g., PXIe-5160/5164/5110) through the Model Context Protocol, including waveform acquisition, measurement, and configuration.
    MIT

View all related MCP servers

Related MCP Connectors

  • Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Free public MCP for AI agents — 193 tools, 44 workflows. No API key.

View all MCP Connectors

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/zinntikumugai/rigol-oscilloscope-mcp'

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