Skip to main content
Glama
zakotoys

dglab-mcp

by zakotoys

@zakotoys/dglab-mcp

npm CI codecov License: GPL-3.0

Inglés | 简体中文 | 日本語

Servidor Model Context Protocol que prioriza la seguridad para el hardware DG-LAB Coyote V2/V3. Conecta Claude Desktop, Cursor, OpenCode, Codex o cualquier cliente MCP al relay WebSocket DG-LAB 4 V4 a través de un proceso stdio local.

La seguridad es lo primero

Este software controla un dispositivo que aplica estimulación eléctrica real a un cuerpo humano. Úsalo solo con consentimiento informado, supervisión humana activa y el dispositivo físico al alcance.

  • Límite máximo por defecto: 30/200 (DGLAB_MAX_INTENSITY); los objetivos superiores se rechazan.

  • Límite de paso por defecto: 5 (DGLAB_MAX_STEP) para cada comando de subida.

  • Watchdog: la salida se pone a cero después de 20 segundos sin un comando ni heartbeat.

  • Parada de emergencia: dglab_emergency_stop limpia todos los dispositivos y tareas en cola.

Related MCP server: InstrMCP

Características

  • Control en lenguaje natural mediante las herramientas MCP estándar.

  • Emparejamiento por QR con la aplicación móvil DG-LAB 4; no se requiere Bluetooth del ordenador.

  • Telemetría en vivo de batería, conexión, canal y tareas.

  • Ajustes predefinidos integrados, formas de onda personalizadas y archivos .pulse cargados en caliente.

  • Límites de seguridad estrictos, salvaguardas de paso, control de telemetría, colas por canal y una concesión de control global.

Requisitos

  • Node.js 22 o superior.

  • DG-LAB 4 en iOS o Android, con un Coyote V2 o V3 emparejado por Bluetooth.

  • Claude Desktop, Cursor, OpenCode, Codex, MCP Inspector u otro cliente MCP.

Inicio rápido

Claude Desktop, Cursor, OpenCode o Codex

Usa este comando de servidor MCP en la configuración del cliente:

{
  "command": "npx",
  "args": ["-y", "@zakotoys/dglab-mcp@latest"]
}

Para clientes Windows que lo requieran, usa cmd:

{
  "command": "cmd",
  "args": ["/c", "npx", "-y", "@zakotoys/dglab-mcp@latest"]
}

Incorpora el objeto anterior en el mapa de servidores MCP del cliente. Ejemplos:

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "dglab": {
      "command": "npx",
      "args": ["-y", "@zakotoys/dglab-mcp@latest"]
    }
  }
}

Cursor (~/.cursor/mcp.json o .cursor/mcp.json):

{
  "mcpServers": {
    "dglab": {
      "command": "npx",
      "args": ["-y", "@zakotoys/dglab-mcp@latest"]
    }
  }
}

OpenCode (opencode.json):

{
  "mcp": {
    "dglab": {
      "type": "local",
      "command": ["npx", "-y", "@zakotoys/dglab-mcp@latest"]
    }
  }
}

Codex (~/.codex/config.toml):

[mcp_servers.dglab]
command = "npx"
args = ["-y", "@zakotoys/dglab-mcp@latest"]

MCP Inspector

npx @modelcontextprotocol/inspector -y @zakotoys/dglab-mcp@latest

Conéctate por stdio y luego llama a dglab_connect para mostrar el código QR de emparejamiento.

Emparejar un dispositivo

  1. Llama a dglab_connect desde tu cliente MCP.

  2. Escanea el código QR devuelto con la aplicación DG-LAB 4, o abre su enlace de sesión.

  3. Llama a dglab_get_status y confirma que el Coyote está emparejado y que la telemetría está actualizada.

  4. Empieza con un valor bajo, por ejemplo dglab_set_intensity con target: 3, y luego reproduce una forma de onda. Llama a dglab_disconnect al terminar; primero detiene la salida.

Se pueden conectar varias aplicaciones y dispositivos. Pasa clientId y slotId cuando sea necesario; un objetivo omitido solo se acepta cuando hay exactamente un Coyote compatible disponible.

Herramientas MCP

Herramienta

Propósito

dglab_connect

Inicia o reutiliza una sesión de relay y devuelve el código QR.

dglab_disconnect

Detiene toda la salida y destruye la sesión.

dglab_get_status

Lee el estado del relay, la seguridad, el dispositivo, los canales y las tareas.

dglab_set_intensity

Establece un objetivo de canal A/B tras la validación de seguridad.

dglab_adjust_intensity

Aplica un delta de canal con signo y verificado por seguridad.

dglab_list_waveforms

Lista las formas de onda integradas y externas.

dglab_play_waveform

Reproduce una forma de onda con nombre durante una duración limitada.

dglab_play_custom_waveform

Compila y reproduce segmentos de rampa/mantenimiento/pulso/silencio.

dglab_stop_channel

Detiene las tareas y restablece un canal.

dglab_emergency_stop

Detiene inmediatamente todos los canales y tareas.

dglab_heartbeat

Renueva la concesión de control activa.

Una salida distinta de cero requiere un Coyote compatible y emparejado con telemetría conocida. Los errores usan códigos estables como NOT_CONNECTED, AMBIGUOUS_TARGET, SAFETY_LIMIT e INVALID_WAVEFORM.

Configuración

Todas las variables son opcionales:

Variable

Por defecto

Descripción

DGLAB_MAX_INTENSITY

30

Límite máximo absoluto de salida en la escala 0-200.

DGLAB_MAX_STEP

5

Cambio máximo de subida por comando.

DGLAB_HEARTBEAT_TIMEOUT_MS

20000

Tiempo de espera del watchdog para la concesión de control.

DGLAB_MAX_WAVEFORM_DURATION_MS

10000

Duración máxima de la forma de onda.

DGLAB_RELAY_URL

wss://trex.dungeon-lab.cn/v4

Endpoint del relay DG-LAB V4.

DGLAB_PULSE_DIR

~/.dglab-mcp/pulses

Directorio para archivos .pulse externos.

El límite máximo efectivo del canal es el mínimo entre el límite configurado y todos los límites anunciados por la aplicación o el dispositivo.

Formas de onda externas

Coloca los archivos .pulse en formato oficial directamente en DGLAB_PULSE_DIR:

~/.dglab-mcp/pulses/
  waves.pulse
  my-favourite.pulse

El directorio se vuelve a escanear en cada llamada de listado/reproducción. Los archivos están limitados a 64 KiB y el catálogo acepta como máximo 100 archivos. Los nombres coinciden con los ids y etiquetas integrados sin distinguir mayúsculas ni separadores, pero la coincidencia es exacta, no aproximada.

Desarrollo

npm install
npm run ci          # typecheck, lint, coverage, build, and pack check
npm run build       # compile dist/ and make the CLI executable
npm test
npm run lint:fix

El conjunto de pruebas usa un relay V4 simulado y una aplicación DG-LAB simulada, por lo que no requiere hardware.

Lanzamientos

GitHub Actions publica las etiquetas vX.Y.Z correspondientes con npm Trusted Publishing y procedencia, y luego crea un GitHub Release con notas de changelog generadas automáticamente. Si el flujo de trabajo se vuelve a ejecutar, un Release existente se mantiene sin cambios. Configura el Trusted Publisher del paquete npm como:

  • Proveedor: GitHub Actions

  • Organización/usuario: zakotoys

  • Repositorio: dglab-mcp

  • Nombre del archivo del flujo de trabajo: publish.yml

  • Entorno: en blanco

  • Acción permitida: npm publish

Para un checkout nuevo, inicializa una vez el paquete público con ámbito mientras tienes sesión iniciada en la organización npm:

npm login
npm publish --access public

Luego publica las versiones futuras desde un checkout limpio:

npm version patch   # or minor / major
git push origin main --follow-tags

El flujo de trabajo ejecuta la suite de CI completa y publica solo cuando la etiqueta coincide con la versión en package.json.

Alcance

Este proyecto solo admite Coyote V2/V3 a través del relay DG-LAB 4 V4. El relay V3 heredado, el BLE directo, el transporte HTTP, la GUI, los frames sin procesar y el control de salida de Opossum están fuera del alcance actual.

Licencia

GPL-3.0

A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
3Releases (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

  • A
    license
    Not graded
    quality
    C
    maintenance
    AI-native oscilloscope control. A pure-Python MCP service that lets LLM agents control Keysight EDUX1052G oscilloscopes via a compact DSL.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for quantum device physics laboratory instrumentation control, enabling LLMs to interact with physics instruments and measurement systems through QCodes and JupyterLab.
    27
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server that lets AI assistants control Siglent SDG waveform generators over a local network using natural language, supporting signal generation, modulation, sweep, burst, and arbitrary waveforms.
    21
    11
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language control of a live GNU Radio SDR flowgraph, allowing users to tune frequencies, adjust gain, capture IQ samples, analyze spectra, and detect signals through an MCP-compatible client.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • GibsonAI MCP server: manage your databases with natural language

  • Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.

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/zakotoys/dglab-mcp'

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