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 Fallback26 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-mcpStandardmäß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-mcpClaude 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" }
}
}
}commandwird als absoluter Pfad angegeben, wennuvnicht im PATH des GUI-Hosts (Desktop-App) vorhanden ist. Den Pfad ermitteln Sie mitwhich uv(bei mise-Verwaltung mitmise which uv)PYTHONDONTWRITEBYTECODE=1explizit angeben. Da beim Start außerhalb des Projekts das[env]inmise.tomlnicht greift, verhindert dies, dass__pycache__in den Clone geschrieben wirdDer Standard-Speicherort für Screenshots ist nicht das mit
--directorygewechselte Verzeichnis, sondern das Ausführungsverzeichnis, in dem der Server gestartet wurde. Wenn Sie ihn festlegen möchten, geben SieRIGOL_MCP_SCREENSHOT_DIRanAuch bei einem relativen Pfad in
pathgilt dieser Standard-Speicherort als Basis. Außerhalb des Standard-Speicherorts, vonRIGOL_MCP_ALLOWED_DIRSund 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 |
| Standard-Verbindungsziel (IP / VISA-Ressource) | Keine (Gesprächsanweisung erforderlich) |
|
| Aus der Adresse abgeleitet |
| LAN-SCPI-Port | Profilstandard (5555) |
| Timeout für einzelne Abfragen (Sekunden) | 5 |
| Standard-Speicherort für Screenshots | Ausführungsverzeichnis ( |
| Erlaubte Schreibverzeichnisse (mehrere, durch Pfadtrennzeichen getrennt) | Standard-Speicherort + temporäres Verzeichnis |
| Standard-Obergrenze für Wellenformabruf | 100000 |
| Aktivierung des | false |
| Log-Level (error / warn / info / debug) | info |
| Ausgabeziel des Audit-Logs | Aktiv ( |
| 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-mcpEntwicklung
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_writeSetzen 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 |
|
|
Screenshots werden an unerwartetem Ort gespeichert | Standard ist das Ausführungsverzeichnis, in dem der Server gestartet wurde. Speicherort explizit mit |
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.
docs/Requirements.md — Anforderungsdefinition (normativ)
docs/tools.md — MCP-Tool-Katalog
docs/device-profiles.md — Spezifikation der Geräteprofile
docs/verification/ — Aufzeichnungen der Verifizierung mit echten Geräten
docs/roadmap.md — Geplante zukünftige Unterstützung
Maintenance
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
- FlicenseAqualityDmaintenanceEnables 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.245
- AlicenseNot gradedqualityDmaintenanceEnables control and querying of Rigol DHO824 oscilloscopes, allowing users to capture waveforms, take screenshots, and interact with oscilloscope settings through natural language.3MIT
- AlicenseAqualityCmaintenanceEnables 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.4811AGPL 3.0
- AlicenseNot gradedqualityBmaintenanceEnables 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
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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