Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Schema
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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. |