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.1.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.1-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: siglent_spd_mcp-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 d79857f5ad0959e893fc57eede84b3336e39cedc95e7a5d025c7a58e1979d7de
MD5 5cf6dc14476c7279df20718f3dfa7366
BLAKE2b-256 d2e4afb545b2fb06823b59c10983f3514a0da25cab9604c0df42571f0f36c428

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for siglent_spd_mcp-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 dd586d612c74dadeccd9d64052d8d27fbcc80cd8416d73a3c2409686bfc53ab5
MD5 d22fd7ebdc4cdde77108669da23cdb4f
BLAKE2b-256 64b49fdffd8d823058b375d5467133915b941ae482c2743bc71a58c5354f1a30

See more details on using hashes here.

Provenance

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