SCPI MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SCPI_ARB_HOST | No | Hostname or IP address of the arbitrary waveform generator. | arb.local |
| SCPI_ARB_PORT | No | Port for the arbitrary waveform generator (SCPI_<NAME>_PORT). | 5025 |
| SCPI_DMM_HOST | No | Hostname or IP address of the multimeter. | dmm.local |
| SCPI_DMM_PORT | No | Port for the multimeter (SCPI_<NAME>_PORT). | 5025 |
| SCPI_OSC_HOST | No | Hostname or IP address of the oscilloscope. | osc.local |
| SCPI_OSC_PORT | No | Port for the oscilloscope (SCPI_<NAME>_PORT). | 5025 |
| SCPI_PSU_HOST | No | Hostname or IP address of the power supply. | psu.local |
| SCPI_PSU_PORT | No | Port for the power supply (SCPI_<NAME>_PORT). | 5025 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| identifyA | Query the identification string of a device. Args: device: Device key – one of 'arb', 'dmm', 'osc', 'psu'. |
| resetA | Reset a device to factory defaults. Args: device: Device key – one of 'arb', 'dmm', 'osc', 'psu'. |
| get_errorA | Read the latest error from the device error queue. Args: device: Device key – one of 'arb', 'dmm', 'osc', 'psu'. |
| send_raw_scpiB | Send an arbitrary SCPI command to a device. If the command ends with '?', the response is returned. Args: device: Device key – one of 'arb', 'dmm', 'osc', 'psu'. command: The raw SCPI command string. |
| arb_set_waveformA | Set the basic waveform type on the waveform generator. Args: channel: Channel number (1 or 2). waveform: Waveform type – SINE, SQUARE, RAMP, PULSE, NOISE, ARB, or DC. |
| arb_set_frequencyA | Set the output frequency in Hz on the waveform generator. Args: channel: Channel number (1 or 2). frequency: Frequency in Hz. |
| arb_set_amplitudeA | Set the output amplitude in Vpp on the waveform generator. Args: channel: Channel number (1 or 2). amplitude: Amplitude in Vpp. |
| arb_set_offsetC | Set the DC offset in volts on the waveform generator. Args: channel: Channel number (1 or 2). offset: Offset in volts. |
| arb_set_phaseA | Set the phase in degrees on the waveform generator. Args: channel: Channel number (1 or 2). phase: Phase in degrees. |
| arb_set_duty_cycleA | Set the duty cycle (%) for square/pulse waveforms on the waveform generator. Args: channel: Channel number (1 or 2). duty: Duty cycle percentage. |
| arb_set_outputA | Enable or disable the output of a waveform generator channel. Args: channel: Channel number (1 or 2). state: True to enable, False to disable. |
| arb_get_outputA | Query whether a waveform generator channel output is on or off. Args: channel: Channel number (1 or 2). |
| arb_set_output_loadA | Set the output load impedance on the waveform generator. Args: channel: Channel number (1 or 2). load: 'HZ' for high-impedance or a numeric value in ohms (e.g. '50'). |
| arb_set_polarityA | Set the output polarity on the waveform generator. Args: channel: Channel number (1 or 2). polarity: 'NOR' for normal, 'INVT' for inverted. |
| arb_get_basic_waveformB | Query the current basic waveform parameters of a waveform generator channel. Args: channel: Channel number (1 or 2). |
| arb_set_amB | Enable AM modulation on the waveform generator. Args: channel: Channel number (1 or 2). depth: Modulation depth in percent. frequency: Modulation frequency in Hz. |
| arb_set_fmA | Enable FM modulation on the waveform generator. Args: channel: Channel number (1 or 2). deviation: Frequency deviation in Hz. frequency: Modulation frequency in Hz. |
| arb_set_pmA | Enable PM (phase) modulation on the waveform generator. Args: channel: Channel number (1 or 2). deviation: Phase deviation in degrees. frequency: Modulation frequency in Hz. |
| arb_disable_modulationB | Disable all modulation on a waveform generator channel. Args: channel: Channel number (1 or 2). |
| arb_set_sweepA | Enable frequency sweep on the waveform generator. Args: channel: Channel number (1 or 2). start_freq: Start frequency in Hz. stop_freq: Stop frequency in Hz. time: Sweep time in seconds. |
| arb_disable_sweepA | Disable frequency sweep on a waveform generator channel. Args: channel: Channel number (1 or 2). |
| arb_set_burstB | Enable burst mode on the waveform generator. Args: channel: Channel number (1 or 2). cycles: Number of burst cycles. period: Burst period in seconds. |
| arb_disable_burstA | Disable burst mode on a waveform generator channel. Args: channel: Channel number (1 or 2). |
| dmm_set_functionA | Set the measurement function on the multimeter. Args: function: One of VOLT:DC, VOLT:AC, CURR:DC, CURR:AC, RES, FRES, FREQ, PER, CONT, DIOD, CAP. |
| dmm_get_functionA | Query the current measurement function on the multimeter. |
| dmm_set_rangeA | Set the measurement range on the multimeter. Args: value: Range value (e.g. 10 for 10V range). |
| dmm_set_auto_rangeA | Enable or disable auto-range on the multimeter. Args: enable: True to enable, False to disable. |
| dmm_get_rangeA | Query the current measurement range on the multimeter. |
| dmm_set_resolutionC | Set the measurement resolution on the multimeter. Args: resolution: Resolution value. |
| dmm_readA | Take a new measurement reading from the multimeter (triggers and reads). |
| dmm_fetchA | Fetch the last measurement from the multimeter without triggering a new one. |
| dmm_measureB | Configure and take a single measurement on the multimeter. Args: function: One of VOLT:DC, VOLT:AC, CURR:DC, CURR:AC, RES, FRES, FREQ, PER. |
| dmm_enable_statisticsA | Enable statistics calculation on the multimeter. |
| dmm_disable_statisticsA | Disable statistics calculation on the multimeter. |
| dmm_clear_statisticsA | Clear accumulated statistics on the multimeter. |
| dmm_get_statisticsA | Query statistics (average, min, max, stddev) from the multimeter. |
| dmm_set_trigger_sourceA | Set the trigger source on the multimeter. Args: source: One of IMM, BUS, EXT. |
| dmm_triggerB | Send a software trigger to the multimeter. |
| dmm_set_nplcA | Set the integration time in number of power line cycles on the multimeter. Args: nplc: NPLC value (e.g. 0.02, 0.2, 1, 10, 100). |
| osc_set_channel_stateA | Enable or disable a channel trace on the oscilloscope. Args: channel: Channel number (1 or 2). state: True to enable, False to disable. |
| osc_set_channel_scaleA | Set the vertical scale (V/div) of an oscilloscope channel. Args: channel: Channel number (1 or 2). scale: Volts per division. |
| osc_set_channel_offsetA | Set the vertical offset of an oscilloscope channel. Args: channel: Channel number (1 or 2). offset: Offset in volts. |
| osc_set_channel_couplingA | Set the coupling mode of an oscilloscope channel. Args: channel: Channel number (1 or 2). coupling: One of AC, DC, GND. |
| osc_set_probe_attenuationA | Set the probe attenuation factor on an oscilloscope channel. Args: channel: Channel number (1 or 2). attenuation: Attenuation factor (e.g. 1, 10, 100). |
| osc_set_timebaseA | Set the horizontal timebase (s/div) on the oscilloscope. Args: scale: Time per division in seconds. |
| osc_get_timebaseA | Query the current timebase setting on the oscilloscope. |
| osc_set_trigger_modeC | Set the trigger mode on the oscilloscope. Args: mode: One of AUTO, NORM, SINGLE, STOP. |
| osc_set_trigger_sourceA | Set the trigger source channel on the oscilloscope. Args: channel: Channel number (1 or 2). |
| osc_set_trigger_levelA | Set the trigger level in volts on the oscilloscope. Args: level: Trigger level in volts. |
| osc_set_trigger_slopeA | Set the trigger slope on the oscilloscope. Args: slope: 'POS' for rising edge, 'NEG' for falling edge. |
| osc_force_triggerB | Force a trigger event on the oscilloscope. |
| osc_measureA | Measure a waveform parameter on the oscilloscope. Args: channel: Channel number (1 or 2). parameter: One of PKPK, MAX, MIN, AMPL, TOP, BASE, MEAN, RMS, FREQ, PER, RISE, FALL, DUTY, WID, NWID, DELAY, OVSP, OVSH. |
| osc_auto_setupB | Run auto-setup on the oscilloscope. |
| osc_runA | Start acquisition (set trigger mode to AUTO) on the oscilloscope. |
| osc_stopB | Stop acquisition on the oscilloscope. |
| osc_singleA | Set the oscilloscope to single-trigger mode. |
| osc_screenshotA | Capture a screenshot from the oscilloscope. Returns base64-encoded PNG data. |
| osc_get_channel_infoA | Query full channel setup info from the oscilloscope. Args: channel: Channel number (1 or 2). |
| osc_set_memory_sizeA | Set the acquisition memory depth on the oscilloscope. Args: size: Memory size, e.g. '7K', '70K', '700K', '7M', '14M'. |
| osc_set_acquire_modeB | Set the acquisition mode on the oscilloscope. Args: mode: One of SAMPLING, PEAK_DETECT, AVERAGE. |
| osc_set_average_countA | Set the number of averages when in average acquisition mode. Args: count: Number of averages (power of 2, e.g. 4, 16, 64, 256). |
| psu_set_voltageB | Set the output voltage on a power supply channel. Args: channel: Channel number (1, 2, or 3). voltage: Voltage in volts. |
| psu_set_currentA | Set the output current limit on a power supply channel. Args: channel: Channel number (1, 2, or 3). current: Current in amps. |
| psu_get_voltageA | Query the set voltage on a power supply channel. Args: channel: Channel number (1, 2, or 3). |
| psu_get_currentA | Query the set current limit on a power supply channel. Args: channel: Channel number (1, 2, or 3). |
| psu_measure_voltageA | Measure the actual output voltage on a power supply channel. Args: channel: Channel number (1, 2, or 3). |
| psu_measure_currentA | Measure the actual output current on a power supply channel. Args: channel: Channel number (1, 2, or 3). |
| psu_measure_powerA | Measure the actual output power on a power supply channel. Args: channel: Channel number (1, 2, or 3). |
| psu_set_outputA | Enable or disable the output of a power supply channel. Args: channel: Channel number (1, 2, or 3). state: True to enable, False to disable. |
| psu_get_outputA | Query whether a power supply channel output is on or off. Args: channel: Channel number (1, 2, or 3). |
| psu_set_ovpA | Set the over-voltage protection threshold on a power supply channel. Args: channel: Channel number (1 or 2). voltage: OVP threshold in volts. |
| psu_set_ocpA | Set the over-current protection threshold on a power supply channel. Args: channel: Channel number (1 or 2). current: OCP threshold in amps. |
| psu_recallB | Recall a saved preset on the power supply. Args: preset: Preset number (1–5). |
| psu_saveA | Save the current settings to a preset on the power supply. Args: preset: Preset number (1–5). |
| psu_set_modeA | Set the channel tracking mode on the power supply. Args: mode: One of INDEPENDENT, SERIES, PARALLEL. |
| psu_get_statusB | Query the system status register of the power supply (channel modes, output states). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/colingimenez/SCPI_MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server