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 (required) 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.3.tar.gz (9.4 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.3-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: siglent_spd_mcp-0.1.3.tar.gz
  • Upload date:
  • Size: 9.4 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.3.tar.gz
Algorithm Hash digest
SHA256 84dd5ca9be710f8cb15f16c7a1b9c311034c041675f1d9b9447fcdea420b7c30
MD5 c518bd657ced0e3783741cdbde6dfc25
BLAKE2b-256 00e79b0e536fed4614d1da6d2c9e0a80259fffdce7280516b1a8df128537094e

See more details on using hashes here.

Provenance

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

Publisher: release.yml on wannessels/siglent-spd-mcp

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.3-py3-none-any.whl.

File metadata

File hashes

Hashes for siglent_spd_mcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 12e8ad53c6ab6d8018ffc3fc9282a459a010523e2ef013134f2dae46a2aa9139
MD5 2ab83350c6f2e17d5f763923cb87031e
BLAKE2b-256 034eb148b2bc43982def7b7c4b1ee63339ca6256cbb51d7c7a066f6bed1b72bf

See more details on using hashes here.

Provenance

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

Publisher: release.yml on wannessels/siglent-spd-mcp

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