lab-equipment-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| list_supported_devicesA | List supported device models and their declared connection interfaces. |
| dpo2012b_diagnose_setupA | Check Windows USB enumeration, VISA runtime, and PyVISA readiness. |
| afg2125_diagnose_setupA | Check the AFG-2125 USB CDC driver, COM port, VISA ASRL, and PyVISA readiness. |
| m8811_diagnose_setupA | Match connected CH340/CH341 ports to VISA ASRL resources without probing them. |
| agilent33500b_diagnose_setupA | Check 33500B USB enumeration, VISA resources, and PyVISA readiness. |
| agilentdsox2012a_connectB | Connect to an Agilent/Keysight DSO-X 2012A over USBTMC, optional LAN, or GPIB. |
| agilentdsox2012a_disconnectB | Close the DSO-X 2012A VISA session. |
| agilentdsox2012a_identifyA | Return the connected DSO-X 2012A identity. |
| agilentdsox2012a_get_statusA | Read acquisition, trigger, timebase, and system-error status. |
| agilentdsox2012a_get_capabilitiesA | Read model, firmware, options, channel count, and declared interfaces. |
| agilentdsox2012a_get_channel_settingsA | Read vertical settings for CH1 or CH2. |
| agilentdsox2012a_measureC | Read an immediate measurement from CH1 or CH2. |
| agilentdsox2012a_acquire_waveformB | Acquire scaled waveform points from CH1 or CH2 using ASCII transfer. |
| agilentdsox2012a_query_scpiB | Send a read-only DSO-X 2012A SCPI query. |
| agilentdsox2012a_write_scpiC | Send a protected DSO-X setting command; unsafe commands require an environment opt-in. |
| agilentdsox2012a_commandA | Execute any SCPI command documented for the 2000 X-Series DSO-X 2012A. Use query=true for read-only queries (including semicolon-separated queries). Writes are protected by the same unsafe-command policy as agilentdsox2012a_write_scpi. |
| agilentdsox2012a_query_binaryA | Run a documented binary-block query and return its bytes as Base64. |
| agilentdsox2012a_write_binaryC | Send a documented IEEE-488.2 definite-length binary block after confirmation. |
| sdg1062x_diagnose_setupA | Check Siglent SDG USB enumeration, VISA resources, and PyVISA readiness. |
| list_visa_instrumentsA | List VISA resources and optionally query each instrument identity. |
| dpo2012b_connectA | Connect to a DPO2012B; auto-detect it when resource is omitted. |
| afg2125_connectA | Connect to an AFG-2125, using bounded PnP-filtered auto-detection when omitted. |
| agilent33500b_connectB | Connect to an Agilent/Keysight 33500 Series generator over VISA. |
| sdg1062x_connectA | Connect to a Siglent SDG1032X/SDG1062X over a declared VISA interface. |
| m8811_connectC | Connect using serial settings that match the M8811 front-panel configuration. |
| disconnect_instrumentA | Close all active instrument and discovery VISA sessions. |
| dpo2012b_disconnectA | Close only the DPO2012B VISA connection. |
| afg2125_disconnectA | Close only the AFG-2125 VISA connection. |
| agilent33500b_disconnectA | Close only the Agilent/Keysight 33500B VISA connection. |
| sdg1062x_disconnectA | Close only the Siglent SDG connection. |
| m8811_disconnectA | Close only the M8811 serial connection. |
| identify_instrumentA | Identify the only connected instrument; use prefixed tools when both are connected. |
| dpo2012b_identifyA | Return the connected DPO2012B identity and VISA resource. |
| afg2125_identifyA | Return the connected AFG-2125 identity and VISA resource. |
| agilent33500b_identifyA | Return the connected 33500B identity and VISA resource. |
| sdg1062x_identifyA | Return the connected Siglent SDG identity and VISA resource. |
| m8811_identifyA | Return M8811 identity fields with the hardware serial number redacted. |
| sdg1062x_get_capabilitiesA | Read model-specific channels, bandwidth, ARB, and interface capabilities. |
| sdg1062x_get_settingsA | Read output, waveform, modulation, sweep, burst, ARB, and sync settings. |
| sdg1062x_set_outputA | Disable output freely or enable it after explicit cabling/load confirmation. |
| sdg1062x_set_output_loadA | Set expected output load, or null for high impedance, while output is disabled. |
| sdg1062x_set_output_polarityA | Set normal or inverted channel polarity while output is disabled. |
| sdg1062x_set_waveformA | Configure a channel waveform with output disabled and SCPI read-back. |
| sdg1062x_set_waveform_detailC | Set duty, symmetry, phase, pulse width, edges, or delay with read-back. |
| sdg1062x_set_mode_enabledB | Enable or disable modulation, sweep, or burst while output is disabled. |
| sdg1062x_configure_modulationB | Configure modulation; ASK/PSK/DSB-AM ignore amount because the model has none. |
| sdg1062x_configure_sweepC | Configure linear, logarithmic, or stepped frequency sweep. |
| sdg1062x_configure_burstC | Configure N-cycle, infinite, or gated burst behavior. |
| sdg1062x_triggerB | Send a guarded manual trigger to an armed sweep or burst. |
| sdg1062x_configure_syncB | Configure the rear Aux In/Out CMOS Sync output and source channel. |
| sdg1062x_copy_channelA | Copy channel parameters after verifying that both outputs are disabled. |
| sdg1062x_select_arbitrary_waveformC | Select one built-in ARB index or one safe user waveform name. |
| sdg1062x_upload_arbitrary_waveformA | Upload 2..16384 normalized points as a 16-bit little-endian user ARB. |
| sdg1062x_query_scpiA | Send a non-destructive query documented by the Siglent programming guide. |
| sdg1062x_write_scpiC | Send a protected setting command; destructive and raw output commands are guarded. |
| agilent33500b_get_capabilitiesA | Read model, firmware, options, channels, bandwidth, and supported interfaces. |
| agilent33500b_get_settingsA | Read the channel, output, sync, modulation, sweep, and burst state. |
| agilent33500b_set_waveformC | Configure a standard waveform while the channel output is disabled. |
| agilent33500b_set_outputA | Disable output freely or enable it after explicit cabling and load confirmation. |
| agilent33500b_set_output_loadA | Set the expected load in ohms, or null for high impedance, with output disabled. |
| agilent33500b_set_waveform_detailA | Set duty cycle, ramp symmetry, phase, or output polarity with read-back. |
| agilent33500b_configure_pulseB | Configure pulse period, width or duty, and edge transition times. |
| agilent33500b_configure_syncC | Configure the front-panel TTL Sync connector and its waveform relationship. |
| agilent33500b_set_mode_enabledA | Enable or disable AM/FM/PM/PWM/FSK/BPSK/SUM, sweep, or burst. |
| agilent33500b_configure_modulationB | Configure AM, FM, PM, PWM, FSK, BPSK, or SUM with model capability checks. |
| agilent33500b_configure_sweepB | Configure linear/log sweep, trigger source, and optional Sync marker. |
| agilent33500b_configure_burstC | Configure triggered or gated burst parameters and source. |
| agilent33500b_triggerB | Send a guarded IEEE-488 bus trigger to an armed sweep or burst. |
| agilent33500b_query_scpiA | Send any non-destructive query documented by the 33500 Series manual. |
| agilent33500b_write_scpiC | Send a protected setting command; destructive and raw output commands are guarded. |
| afg2125_get_settingsA | Read AFG settings and warn about the V1.11 cold-start SYNC duty-cycle bug. |
| afg2125_set_functionA | Select sine, square, ramp, noise, or user/ARB without using auto-output APPLy. |
| afg2125_set_frequencyA | Set frequency within the AFG-2125 limit for the selected or supplied function. |
| afg2125_set_amplitudeA | Set 50-ohm output amplitude in Vpp while enforcing the offset/headroom limit. |
| afg2125_set_offsetA | Set DC offset while enforcing the current amplitude and +/-5 V output limit. |
| afg2125_set_square_dutyC | Set square-wave duty cycle with frequency-dependent manual limits. |
| afg2125_set_ramp_symmetryA | Set ramp symmetry from 0 to 100 percent. |
| m8811_get_settingsA | Read output state, mode, setpoints, protection, and rated model limits. |
| m8811_measureA | Measure voltage, current, DVM, combined VCM, amp-hours, or DRM resistance. |
| m8811_set_voltageA | Set 0-30 V while output is off and verify the setting by read-back. |
| m8811_set_currentA | Set the 0-5 A current limit while output is off and verify by read-back. |
| m8811_set_voltage_protectionA | Set the 0-30 V voltage protection limit while output is off and verify it. |
| m8811_set_outputA | Disable freely, or enable only with explicit load/cabling confirmation and read-back. |
| m8811_set_modeA | Select FIX, LIST, or guarded DRM/DRM0/DRM1/DRM2 mode while output is off. |
| m8811_configure_listC | Configure LIST memory partition, step count, and continuous/step/loop behavior. |
| m8811_set_list_stepA | Set and read back voltage, current, or delay for one LIST step. |
| m8811_recall_listA | Load stored LIST data only after explicit confirmation; the manual has no read-back. |
| m8811_set_remote_senseA | Set remote sense while output is off; the manual documents no state query. |
| m8811_set_panel_controlA | Enter guarded PC/front-panel lock mode, or return to local panel control. |
| m8811_clear_amp_hoursA | Clear the accumulated amp-hour counter only after explicit confirmation. |
| m8811_query_scpiA | Run any query documented in the M88 manual; *IDN? serial data is redacted. |
| m8811_write_scpiA | Run a safe documented M88 write; dangerous writes must use their guarded typed tools. |
| afg2125_get_mode_settingsA | Read whether AM, FM, FSK, and sweep modes are enabled. |
| afg2125_configure_amB | Enable and configure AM; MAIN output must already be disabled. |
| afg2125_set_am_enabledA | Enable or disable AM while MAIN output is disabled. |
| afg2125_configure_fmB | Enable and configure FM with carrier/deviation limit checks. |
| afg2125_set_fm_enabledA | Enable or disable FM while MAIN output is disabled. |
| afg2125_configure_fskA | Enable and configure FSK with an internal or external source. |
| afg2125_set_fsk_enabledA | Enable or disable FSK while MAIN output is disabled. |
| afg2125_configure_sweepC | Enable and configure linear or logarithmic frequency sweep. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 116 tools
Instrument-model prefixes make most tools easy to route, and common verbs like get/set/configure/measure keep purposes distinct. The main ambiguity is the overlapping generic SCPI entry points—write_scpi, command, query_scpi, and query_binary—on oscilloscope tools, which can send or query the same commands.
The dominant pattern is instrument_verb_noun in snake_case, applied consistently across all device families. Minor deviations like unprefixed cross-cutting tools (identify_instrument, disconnect_instrument) and noun-style command tools (dpo2012b_command, agilentdsox2012a_command) keep it from being fully consistent.
116 tools is an extreme count, far beyond the 3-15 well-scoped range. Even for a multi-instrument lab server, the cognitive load on an agent is very high, especially with many per-instrument duplicates and generic SCPI fallback tools.
Each instrument family has broad coverage: connect/disconnect/identify/diagnose, settings, measurement or acquisition, and SCPI passthrough, so workflows are rarely dead-ended. The gaps are minor but real—typed frequency/amplitude control is missing for some generators, and oscilloscope timebase/trigger control is left to raw SCPI commands.