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 voltagemeasure_current- Measure actual output currentmeasure_power- Measure actual output powermeasure_all- Measure voltage, current, and power in one call
Control
set_voltage- Set voltage setpointget_voltage- Query voltage setpointset_current- Set current limitget_current- Query current setpointset_output- Turn channel output on/offset_tracking_mode- Set tracking mode (independent/series/parallel)
Monitoring
monitor- Measure for a fixed duration, return time-series datastart_monitor- Start continuous background measurementstop_monitor- Stop background monitor and return collected dataget_monitor_data- Peek at data from a running monitor
Timer
set_timer- Configure timer group parametersget_timer- Query timer group parametersset_timer_state- Enable/disable timer function
System
get_system_status- Query decoded system status flagsget_error- Query error codeget_version- Query software versionget_safety_config- Show configured permissions and safety limits
Save/Recall
save_state- Save instrument state to nonvolatile memoryrecall_state- Recall instrument state (with safety limit checks)
Network
set_ip/get_ip- Static IP addressset_mask/get_mask- Subnet maskset_gateway/get_gateway- Gateway addressset_dhcp/get_dhcp- DHCP enable/disable
Display
set_waveform_display- Toggle waveform display per channel
License
GPLv3+
Metadata
Release files for siglent-spd-mcp 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| siglent_spd_mcp-0.1.3.tar.gz | 9.4 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| siglent_spd_mcp-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.7 kB
Release files / siglent_spd_mcp-0.1.3.tar.gz
| Download URL | siglent_spd_mcp-0.1.3.tar.gz |
|---|---|
| Size | 9.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84dd5ca9be710f8cb15f16c7a1b9c311034c041675f1d9b9447fcdea420b7c30
|
|
BLAKE2b-256 checksum How to use checksums |
00e79b0e536fed4614d1da6d2c9e0a80259fffdce7280516b1a8df128537094e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.
Transparency logRelease files / siglent_spd_mcp-0.1.3-py3-none-any.whl
| Download URL | siglent_spd_mcp-0.1.3-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
12e8ad53c6ab6d8018ffc3fc9282a459a010523e2ef013134f2dae46a2aa9139
|
|
BLAKE2b-256 checksum How to use checksums |
034eb148b2bc43982def7b7c4b1ee63339ca6256cbb51d7c7a066f6bed1b72bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.
Transparency logSecurity for siglent-spd-mcp 0.1.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for siglent_spd_mcp-0.1.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 11, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.