Skip to main content
Glama
zinntikumugai

rigol-oscilloscope-mcp

rigol-oscilloscope-mcp

Un servidor MCP (Model Context Protocol) que permite a los LLM (Claude, Codex, etc.) controlar osciloscopios RIGOL a través de SCPI (LAN / USB) — conectar, configurar canales/base de tiempo/disparo, medir, capturar formas de onda y capturas de pantalla, decodificar protocolos seriales, ejecutar análisis FFT en el host y controlar el AFG integrado, todo a través de herramientas semánticas con una política de seguridad de cuatro niveles. Verificado en un RIGOL MHO98 real; otros modelos RIGOL funcionan con el mejor esfuerzo mediante perfiles de dispositivo. La documentación está actualmente en japonés.

Un servidor MCP para operar osciloscopios RIGOL desde un LLM.

Instrucciones en lenguaje natural como «haz visible la forma de onda de 1 kHz 3 V con una sonda x10» o «captura y guarda la forma de onda actual» son convertidas por el LLM (Claude / Codex, etc.) en llamadas a herramientas MCP, y este servidor controla el instrumento mediante SCPI (LAN / USB). No se utiliza la operación automática de GUI.

  • Verificado en hardware real con RIGOL MHO98 (→ docs/verification/mho98-mvp.md)

  • Otros modelos RIGOL se manejan con el mejor esfuerzo mediante perfiles de dispositivo (los modelos desconocidos funcionan con el perfil genérico y se indica explícitamente)

  • Los proveedores que no sean RIGOL no están soportados (se devuelve una advertencia al conectar, pero no se rechaza)

Características

  • Conexión basada en conversación — La conexión se indica principalmente mediante conversación del usuario (connect(address="...")). Los valores predeterminados de las variables de entorno son un respaldo opcional.

  • 26 herramientas MCP — Conexión / identificación / obtención de estado / medición / forma de onda / análisis (estadísticas y FFT) / captura de pantalla / configuración de canal, base de tiempo y disparo / Run, Stop, Single y Autoset / configuración de decodificación serial y obtención de resultados / configuración del generador de señales (AFG), obtención de estado y control de salida (la activación de salida incluye un flujo de confirmación). No se le pide al LLM que escriba cadenas SCPI; solo se exponen herramientas semánticas.

  • Política de seguridad de 4 clases + token de confirmación — Todas las operaciones se clasifican en READ_ONLY / SAFE_WRITE / RESTRICTED_WRITE / DANGEROUS_WRITE. La entrada de 50 Ω y Auto Setup requieren una confirmación de dos pasos independiente de la UI del host (token de confirmación).

  • Guardado de capturas de pantalla — Se guardan en la ruta especificada en png / jpg / bmp / webp y la imagen también se devuelve al LLM (la ubicación de escritura está restringida por rutas permitidas).

  • Perfiles de dispositivo — Se declaran en YAML incluido el dialecto SCPI, la disponibilidad de funciones y los rangos de parámetros, y se resuelven en tres capas: coincidencia exacta del modelo → familia → RIGOL genérico.

  • Devolución de valores solicitados / aplicados — Dado que el instrumento puede ajustar los valores de configuración según el modelo, se devuelven tanto el valor solicitado como el valor leído.

  • Registro de auditoría — Las operaciones de escritura se registran en JSONL con Before / Action / After.

Related MCP server: Rigol DHO824 MCP Server

Instalación y arranque

Se utiliza como estándar el arranque con uvx desde el repositorio de GitHub.

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

Por defecto, la versión está fijada a la etiqueta (@v0.1.0). Si se quiere usar la última versión de desarrollo (main), quitar @v0.1.0.

Claude Code — Plugin (recomendado)

Este repositorio también funciona como plugin de Claude; además del servidor MCP, se instalan simultáneamente las habilidades de flujo de trabajo de medición (configuración recomendada por tipo de señal, procedimientos de medición para UART/señales desconocidas y avisos de seguridad). Se instala después de agregar el marketplace (después de @ va el nombre del marketplace):

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

Claude Code (.mcp.json o 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

También se incluye un plugin de Codex (.codex-plugin/ + definición de marketplace), que permite instalar de una vez el servidor MCP y las habilidades de flujo de trabajo de medición.

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

(Si no se usa el plugin, solo las habilidades se pueden copiar skills/measurement-workflows a ~/.agents/skills/ y serán reconocidas. Si solo se necesita el servidor MCP, basta con la siguiente configuración de config.toml)

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"

Al iniciar desde un clon local

Cuando se clona el repositorio localmente y se usa la versión de desarrollo, se inicia con 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 se escribe con ruta absoluta si uv no está en el PATH del host GUI (aplicación de escritorio). La ruta se verifica con which uv (o mise which uv si se usa mise).

  • Se especifica explícitamente PYTHONDONTWRITEBYTECODE=1. Al iniciar desde fuera del proyecto, el [env] de mise.toml no se aplica, por lo que se evita que se escriba __pycache__ dentro del clon.

  • El directorio de guardado predeterminado de capturas de pantalla es el directorio de ejecución donde se inició el servidor, no el directorio al que se movió con --directory. Si se quiere fijar, especificar RIGOL_MCP_SCREENSHOT_DIR.

  • Si se pasa una ruta relativa a path, también se toma como base este directorio de guardado predeterminado. No se puede guardar fuera del directorio predeterminado, RIGOL_MCP_ALLOWED_DIRS o el directorio temporal (se rechaza).

Configuración (variables de entorno)

Toda la configuración se puede especificar mediante variables de entorno (también se puede usar opcionalmente un archivo de configuración TOML). El orden de prioridad es argumentos de herramienta (instrucciones del usuario en la conversación) > variables de entorno > archivo de configuración > valores predeterminados integrados.

Variable de entorno

Contenido

Predeterminado

RIGOL_MCP_ADDRESS

Dirección de conexión predeterminada (IP / recurso VISA)

Ninguno (se requiere indicación en la conversación)

RIGOL_MCP_TRANSPORT

lan / usb

Se deduce de la dirección

RIGOL_MCP_PORT

Puerto SCPI LAN

Predeterminado del perfil (5555)

RIGOL_MCP_TIMEOUT_S

Tiempo de espera de una sola consulta (segundos)

5

RIGOL_MCP_SCREENSHOT_DIR

Directorio de guardado predeterminado de capturas de pantalla

Directorio de ejecución (PWD; si no está disponible, directorio actual)

RIGOL_MCP_ALLOWED_DIRS

Rutas raíz permitidas para escritura (varias separadas por separador de ruta)

Directorio de guardado predeterminado + directorio temporal

RIGOL_MCP_WAVEFORM_MAX_POINTS

Límite superior predeterminado para la adquisición de formas de onda

100000

RIGOL_MCP_RAW_SCPI

Habilitación de la herramienta raw_scpi (reservada: la herramienta en sí no está implementada)

false

RIGOL_MCP_LOG_LEVEL

Nivel de registro (error / warn / info / debug)

info

RIGOL_MCP_AUDIT_LOG

Destino del registro de auditoría

Habilitado (~/.local/state/rigol-oscilloscope-mcp/audit.jsonl, según XDG_STATE_HOME). Deshabilitado con off

RIGOL_MCP_CONFIG

Ruta del archivo de configuración TOML

Ninguno

Los detalles están en el capítulo 9 de docs/Requirements.md.

Probar sin hardware real

Si se inicia con RIGOL_MCP_FAKE=1, se conecta al FakeScope integrado en lugar del hardware real. Se puede verificar la configuración MCP del host y el flujo de conversación sin preparar un osciloscopio.

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

Desarrollo

La versión de Python se gestiona con mise, y las dependencias y el entorno virtual con uv.

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

Las pruebas con hardware real solo se ejecutan cuando se pasa la dirección de conexión mediante variables de entorno (si no se configura, se omiten automáticamente). Nunca escribir la dirección IP del hardware real en el repositorio (tests/test_ip_guard.py lo verifica mecánicamente).

# 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

En <IP de tu osciloscopio> se coloca la dirección de tu propio instrumento (si se necesita un ejemplo, usar 192.0.2.x (TEST-NET-1), reservado para documentación).

Solución de problemas

Síntoma

Solución

spawn uv ENOENT (el servidor no arranca)

uv no está en el PATH del host GUI. Cambiar command en la configuración MCP a una ruta absoluta (salida de which uv / mise which uv)

Las capturas de pantalla se guardan en un lugar no deseado

Por defecto es el directorio de ejecución donde se inició el servidor. Especificar explícitamente el destino con RIGOL_MCP_SCREENSHOT_DIR

Precauciones de seguridad

Muchos osciloscopios RIGOL, incluido el MHO98, no están aislados (el GND de cada entrada es común con el GND del chasis, USB, etc., categoría de medición Category I). Este servidor previene cambios de configuración peligrosos, pero no garantiza la seguridad eléctrica en sí.

Actor

Responsabilidad

IA (LLM)

Apoyo en la decisión de configuración de medición y análisis de resultados

Servidor MCP

Control del instrumento, verificación de parámetros, garantía de la política de seguridad, registro de operaciones

Humano

Garantía de la conexión física (DUT, sondas, tierra, etc.) y de la seguridad eléctrica

  • La conexión de la sonda, la conexión del clip de tierra, el voltaje real del DUT, la tensión máxima de la sonda y el estado de aislamiento no se pueden verificar desde MCP.

  • La medición de la red eléctrica comercial (100 V CA, tomacorrientes, lado primario, AC mains) está fuera de alcance. No se ejecutan automáticamente procedimientos de medición con sondas pasivas normales. Se asume que un humano confirma el uso de sondas diferenciales o aisladas.

  • Actualización de firmware / calibración / operaciones de servicio de fábrica / cambios de configuración de red están fuera de alcance.

Los detalles están en el capítulo 6 (requisitos de seguridad) de docs/Requirements.md.

Modelo de confianza del flujo de confirmación: La confirmación de dos pasos (token de confirmación) es un mecanismo para prevenir errores de operación y conclusiones precipitadas del LLM, no una defensa contra hosts MCP maliciosos (el token se devuelve al mismo llamador, por lo que si el host tiene intenciones maliciosas, basta con llamar dos veces para pasarlo). La seguridad física solo puede ser garantizada por el humano que gestiona «qué está cableado». Además, el token de enable_afg también está vinculado a la configuración del AFG en el momento de la emisión; si se cambia la configuración (amplitud, etc.) después de la emisión, el token se invalida.

Descargo de responsabilidad: Este software se proporciona sin garantía (LICENSE). El autor no se hace responsable de daños al instrumento, al dispositivo bajo prueba (DUT) o a los periféricos, errores en los resultados de medición, ni de cualquier daño que surja de ellos, causados por el uso de este software.

Licencia

MIT License — Copyright (c) 2026 zinntikumugai

Documentación

En docs/README.md se resume la lista de documentos y el orden de lectura.

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