Skip to main content
Glama

PicoScope MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Schema

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Tools

Functions exposed to the LLM to take actions

NameDescription
list_devices

List all connected PicoScope devices.

Returns: Dictionary containing list of discovered devices with their info.

connect_device

Connect to a specific PicoScope device.

Args: serial: Device serial number. If empty, connects to first available device.

Returns: Dictionary containing connection status and device information.

get_device_info

Get detailed information about the currently connected device.

Returns: Dictionary containing device model, serial, variant, capabilities, etc.

disconnect_device

Disconnect from the currently connected PicoScope device.

Returns: Dictionary containing disconnection status.

configure_channel

Configure a channel on the oscilloscope.

Args: channel: Channel identifier (A, B, C, or D). enabled: Whether the channel is enabled. coupling: AC or DC coupling. voltage_range: Voltage range in volts (e.g., 0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 20). analog_offset: DC offset voltage in volts.

Returns: Dictionary containing configuration status and applied settings.

get_channel_config

Get current configuration of a channel.

Args: channel: Channel identifier (A, B, C, or D).

Returns: Dictionary containing current channel settings.

set_timebase

Set the timebase (sampling rate) for data acquisition.

Note: The actual timebase is determined during block capture based on the requested number of samples. This tool is informational.

Args: sample_interval_ns: Desired sample interval in nanoseconds. num_samples: Number of samples to capture.

Returns: Dictionary containing timebase information.

set_simple_trigger

Set up a simple edge trigger.

Args: source: Trigger source channel or external. threshold_mv: Trigger threshold in millivolts. direction: Trigger on rising, falling, or either edge. auto_trigger_ms: Auto-trigger timeout in milliseconds (0 = disabled).

Returns: Dictionary containing trigger configuration status.

capture_block

Capture a single block of data.

Args: pre_trigger_samples: Number of samples before trigger. post_trigger_samples: Number of samples after trigger.

Returns: Dictionary containing captured waveform data for all enabled channels.

start_streaming

Start streaming data acquisition.

Args: sample_interval_ns: Sample interval in nanoseconds. buffer_size: Size of streaming buffer. auto_stop: Whether to automatically stop after max_samples. max_samples: Maximum samples to capture (0 = continuous).

Returns: Dictionary containing streaming status and configuration.

stop_streaming

Stop streaming data acquisition.

Returns: Dictionary containing stop status and summary of captured data.

get_streaming_data

Get latest streaming data.

Args: max_samples: Maximum number of samples to retrieve.

Returns: Dictionary containing latest streaming data for enabled channels.

measure_frequency

Measure signal frequency on a channel.

Note: This requires a recent capture. Call capture_block first.

Args: channel: Channel to measure.

Returns: Dictionary containing frequency in Hz and measurement details.

measure_amplitude

Measure signal amplitude on a channel.

Note: This requires a recent capture. Call capture_block first.

Args: channel: Channel to measure. measurement_type: Type of amplitude measurement.

Returns: Dictionary containing amplitude in volts and measurement type.

measure_rise_time

Measure signal rise time (10% to 90% by default).

Args: channel: Channel to measure. low_threshold_percent: Lower threshold percentage (0-100). high_threshold_percent: Upper threshold percentage (0-100).

Returns: Dictionary containing rise time in seconds.

measure_pulse_width

Measure pulse width at specified threshold.

Args: channel: Channel to measure. threshold_percent: Threshold percentage for pulse measurement (0-100).

Returns: Dictionary containing pulse width in seconds.

compute_fft

Compute FFT (Fast Fourier Transform) for frequency domain analysis.

Args: channel: Channel to analyze. window: Window function to apply.

Returns: Dictionary containing frequency bins and magnitude spectrum.

get_statistics

Get statistical analysis of signal.

Args: channel: Channel to analyze. num_samples: Number of samples to analyze.

Returns: Dictionary containing min, max, mean, std dev, etc.

measure_thd

Measure Total Harmonic Distortion (THD).

Args: channel: Channel to measure.

Returns: Dictionary containing THD percentage and harmonic components.

set_signal_generator

Configure the built-in signal generator (AWG).

Args: waveform_type: Type of waveform to generate. frequency_hz: Frequency in Hz. amplitude_mv: Peak-to-peak amplitude in millivolts. offset_mv: DC offset in millivolts.

Returns: Dictionary containing signal generator status and configuration.

stop_signal_generator

Stop the signal generator output.

Returns: Dictionary containing status of signal generator.

configure_math_channel

Configure a math channel (channel operations).

Args: operation: Mathematical operation to perform. channel_a: First channel. channel_b: Second channel.

Returns: Dictionary containing math channel configuration.

export_waveform

Export captured waveform data to file.

Args: format: Export format (csv, json, or numpy). channels: List of channels to export. filename: Output filename (without extension).

Returns: Dictionary containing export status and file path.

configure_downsampling

Configure downsampling for data acquisition.

Args: mode: Downsampling mode. ratio: Downsampling ratio (1 = no downsampling).

Returns: Dictionary containing downsampling configuration.

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/markuskreitzer/picoscope_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server