Skip to main content

MCP server for Siglent SPD series programmable DC power supplies

Project description

siglent-spd-mcp

MCP server for Siglent SPD Series Power Supplies (SPD3303X, SPD3303X-E, SPD1168X, etc.).

Exposes voltage/current control, measurement, monitoring, timer, and system configuration as Model Context Protocol tools over SCPI/TCP.

Installation

pip install siglent-spd-mcp

Configuration

The server connects to the power supply via TCP/SCPI. Set the host and port with environment variables:

Variable Default Description
SPD_HOST 192.168.30.134 IP address of the power supply
SPD_PORT 5025 SCPI TCP port

Permissions (default: readonly)

All channels default to read-only. Set to readwrite to allow control:

Variable Values Description
CH1_PERM readonly / readwrite Channel 1 write access
CH2_PERM readonly / readwrite Channel 2 write access
CH3_PERM readonly / readwrite Channel 3 write access
NETWORK_PERM readonly / readwrite Network config write access
MEMORY_PERM readonly / readwrite Save/recall write access

Safety limits (optional)

Set per-channel voltage and current limits to prevent accidental damage:

Variable Example Description
CH1_MAX_VOLTAGE 5.0 Max voltage for CH1 (V)
CH1_MAX_CURRENT 1.0 Max current for CH1 (A)
CH2_MAX_VOLTAGE 32.0 Max voltage for CH2 (V)
CH2_MAX_CURRENT 3.2 Max current for CH2 (A)

Usage

Claude Desktop / Claude Code

Add to your MCP client configuration:

{
  "mcpServers": {
    "siglent-spd": {
      "command": "siglent-spd-mcp",
      "env": {
        "SPD_HOST": "192.168.1.100",
        "CH1_PERM": "readwrite",
        "CH1_MAX_VOLTAGE": "5.0",
        "CH1_MAX_CURRENT": "1.0"
      }
    }
  }
}

Direct execution

# Via entry point
siglent-spd-mcp

# Via module
python -m siglent_spd_mcp

Tools

Identification

  • identify - Query instrument ID (manufacturer, model, serial, firmware)

Measurement

  • measure_voltage - Measure actual output voltage
  • measure_current - Measure actual output current
  • measure_power - Measure actual output power
  • measure_all - Measure voltage, current, and power in one call

Control

  • set_voltage - Set voltage setpoint
  • get_voltage - Query voltage setpoint
  • set_current - Set current limit
  • get_current - Query current setpoint
  • set_output - Turn channel output on/off
  • set_tracking_mode - Set tracking mode (independent/series/parallel)

Monitoring

  • monitor - Measure for a fixed duration, return time-series data
  • start_monitor - Start continuous background measurement
  • stop_monitor - Stop background monitor and return collected data
  • get_monitor_data - Peek at data from a running monitor

Timer

  • set_timer - Configure timer group parameters
  • get_timer - Query timer group parameters
  • set_timer_state - Enable/disable timer function

System

  • get_system_status - Query decoded system status flags
  • get_error - Query error code
  • get_version - Query software version
  • get_safety_config - Show configured permissions and safety limits

Save/Recall

  • save_state - Save instrument state to nonvolatile memory
  • recall_state - Recall instrument state (with safety limit checks)

Network

  • set_ip / get_ip - Static IP address
  • set_mask / get_mask - Subnet mask
  • set_gateway / get_gateway - Gateway address
  • set_dhcp / get_dhcp - DHCP enable/disable

Display

  • set_waveform_display - Toggle waveform display per channel

License

GPLv3+

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

siglent_spd_mcp-0.1.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

siglent_spd_mcp-0.1.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file siglent_spd_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: siglent_spd_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for siglent_spd_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7c10e67d000d5d2997833d522e329265eee49ff8692a9cb5d0277ff5200b9597
MD5 86cfe29cc25a205c135d8a5283e07900
BLAKE2b-256 3cb8bd146519c5b509b53782caeceb16d19132639fa2c6375e0c383824ad3978

See more details on using hashes here.

Provenance

The following attestation bundles were made for siglent_spd_mcp-0.1.0.tar.gz:

Publisher: release.yml on wannessels/siglent-spd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file siglent_spd_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for siglent_spd_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba0de865fe6e5cff31e6f509e4a71e11145d315d18d53cf1407e85bf40a9f2e6
MD5 c9653771df2e1e3fa2cbeffe17c6b29b
BLAKE2b-256 f32dc865af9a77da667a52fefd876940ae75b1a15fc47bc2c9ebdf30b5574828

See more details on using hashes here.

Provenance

The following attestation bundles were made for siglent_spd_mcp-0.1.0-py3-none-any.whl:

Publisher: release.yml on wannessels/siglent-spd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page