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.2.tar.gz (9.3 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.2-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: siglent_spd_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 9.3 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.2.tar.gz
Algorithm Hash digest
SHA256 9eea734a696553d488adce380ca9b110e8365dfc6c104ea947c25530914fe34d
MD5 19004028305428ec83d57d4b5f9f80a2
BLAKE2b-256 ca38f6875e6d160c977fab4f5a4f3252e7727ea930564a856f9c6201f5b87727

See more details on using hashes here.

Provenance

The following attestation bundles were made for siglent_spd_mcp-0.1.2.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.2-py3-none-any.whl.

File metadata

File hashes

Hashes for siglent_spd_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 55082ad067663f2b053e03231c3b78f1cc354bc57049665ae5840d0e23dcfa37
MD5 763385f380e72d5e07e564562f02b1d0
BLAKE2b-256 134316d3caae9f01dd4569e9c1068351f93c70146591cb1253b5c8c2acf63aa6

See more details on using hashes here.

Provenance

The following attestation bundles were made for siglent_spd_mcp-0.1.2-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