scpi-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 |
|---|---|
| self_configA | Discover/connect an instrument and attach it to the session. |
| identifyA | Return the connected instrument's identity (vendor, model, serial, firmware). |
| capability_reportA | Report the connected instrument's detected capabilities. |
| capture_screenA | Capture the on-screen waveform for one channel (~1200 points). |
| capture_memoryB | Capture the deep-memory waveform for one channel (full sample-rate record). |
| capture_alignedA | Capture multiple channels on the same time base, time-aligned. The instrument shares one time base across channels, so a sequence of reads is already time-aligned. (Real hardware reads them back-to-back; the mock is instantaneous.) Use this to compare two signals sample-for-sample. |
| measureA | Take a single measurement of one quantity on one channel. |
| measure_snapshotC | Take several measurements at once on one channel (one read per quantity). |
| measure_seriesA | Poll one measurement repeatedly, returning a short time series. |
| set_channelA | Set a channel's vertical configuration (enable, V/div, offset, coupling). Only the arguments you pass are changed; omit any to leave it as-is. Use this to fit a signal on screen before measuring or capturing. |
| set_timebaseA | Set the horizontal time base (seconds/div and trigger offset). Controls how many periods of the signal are shown; widen s/div to see slow events, narrow it to resolve fast ones. Shared across all channels. |
| set_triggerA | Configure the edge trigger (source channel, level, slope). |
| acq_runA | Start continuous (free-running) acquisition. Disruptive — needs confirm=True. |
| acq_stopA | Stop acquisition, freezing the current trace. Disruptive — needs confirm=True. |
| acq_singleA | Arm a single-shot acquisition: capture one trigger then stop. Needs confirm=True. |
| acq_forceA | Force a trigger now, ignoring the trigger condition. Needs confirm=True. |
| acq_configureA | Set acquisition type and/or memory depth. Disruptive — needs confirm=True. Deeper memory captures more points at a given time base; averaging/peak modes trade update rate for noise rejection or glitch capture. |
| characterize_signalA | Characterize the signal on |
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 18 tools
Each tool targets a distinct oscilloscope operation. Acquisition, capture, measurement, and configuration tools have clear, non-overlapping purposes. Even similar tools like acq_run and acq_single are differentiated by continuous vs single-shot acquisition.
Tools predominantly follow a consistent verb_noun pattern (e.g., set_channel, capture_screen). Minor deviations like 'identify' and 'self_config' slightly break the pattern but remain intuitive. Overall, naming is predictable and readable.
18 tools comprehensively cover essential oscilloscope operations without redundancy. The count is well-scoped for a domain-specific server, providing enough granularity for complex workflows while remaining manageable.
Core lifecycle tasks (connect, configure, acquire, capture, measure) are fully covered. Advanced features like FFT or automated calibration are absent but not critical for basic SCPI control. Minor gaps exist but do not hinder primary use cases.