- Home
- MCP servers
- PicoScope
PicoScope
- python
3
GitHub Stars
python
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"markuskreitzer-picoscope_mcp": {
"command": "uv",
"args": [
"run",
"picoscope-mcp"
]
}
}
}You can run a PicoScope MCP Server that lets LLMs and other clients control PicoScope oscilloscopes for automated signal capture, analysis, and AWG control. This server uses FastMCP and PicoSDK bindings, and communicates over STDIO so your MCP clients can issue commands to discover devices, configure channels, acquire data, perform measurements, and drive the built-in waveform generator.
How to use
Start by running the MCP server locally so your client can connect. The server operates in STDIO mode and accepts commands from MCP clients to perform device discovery, channel setup, triggering, data capture, and analysis. You can chain commands to perform end-to-end experiments, such as discovering a PicoScope, configuring channel A, triggering on a signal, capturing data, and computing frequency or FFT.
How to install
Prerequisites: You need PicoSDK C libraries installed for your platform and Python 3.11 or newer with the uv package manager.
Steps to install and run the server:
-
Install PicoSDK C libraries appropriate for your OS (see platform notes for exact packages or installers).
-
Install Python 3.11 or newer if you do not have it yet.
-
Install the uv package manager if you do not have it yet, then synchronize dependencies and run the server as shown below.
Additional sections
Configuration and runtime flow. The server is designed to be started from your MCP tooling environment and is intended to be used with clients such as Claude Desktop through a standard STDIO interface.
Testing without hardware. You can start the server even when PicoScope hardware is not connected. Device operations will fail until PicoSDK libraries are installed and a PicoScope device is connected.
Development and testing. You can explore the MCP tool set to discover devices, configure channels, perform captures, and run measurements. See the tool list in the next sections for available actions.
Example usage with Claude
- Discover devices and connect to a PicoScope in your workflow. 2) Enable channel A and set a suitable voltage range. 3) Configure an auto-trigger on the channel. 4) Capture a block of data with pre/post samples. 5) Analyze the results to extract frequency, amplitude, or FFT.
Configuration snippets
{
"mcpServers": {
"picoscope": {
"type": "stdio",
"name": "picoscope",
"command": "uv",
"args": ["run", "picoscope-mcp"]
}
}
}
Discovery & Connection tools
These tools help you find and connect to PicoScope devices: list_devices, connect_device, get_device_info, disconnect_device.
Channel Configuration tools
Configure channel parameters, query current settings, and review the timebase: configure_channel, get_channel_config, set_timebase.
Triggering tools
Set up edge triggering with simple configurations: set_simple_trigger.
Data Acquisition tools
Capture single snapshots or stream data, then retrieve it for analysis: capture_block, start_streaming, stop_streaming, get_streaming_data.
Analysis tools
Measure signal properties and perform frequency-domain analysis: measure_frequency, measure_amplitude, measure_rise_time, measure_pulse_width, compute_fft, get_statistics, measure_thd.
Advanced tools
Control the AWG, perform mathematical channel operations, export data, and adjust downsampling: set_signal_generator, stop_signal_generator, configure_math_channel, export_waveform, configure_downsampling.
Testing without hardware (repeat)
The server runs without PicoScope hardware connected, but device operations will fail until the PicoSDK libraries are installed and a device is connected.
Configuration and environment
The server is intended to run under the uv package manager. Ensure the required PicoSDK libraries are installed for your platform and that Python 3.11+ is available in your environment.
Troubleshooting
If PicoSDK cannot be found, install the PicoSDK C libraries for your platform. If no device is detected, verify USB connection and that drivers are installed, then reconnect the device.
Development
To extend support to additional PicoScope series, update the device management layer to detect the series and map the appropriate API calls. Run the test suite to validate changes.
Available tools
list_devices
Discover all connected PicoScope devices
connect_device
Connect to a specific device by serial or to the first available device
get_device_info
Retrieve details about the connected device
disconnect_device
Disconnect from the current device
configure_channel
Set channel parameters such as range, coupling, and offset
get_channel_config
Query current channel configuration
set_timebase
Configure the sampling rate or timebase (informational)
set_simple_trigger
Configure an edge trigger (rising, falling, or both)
capture_block
Capture a single block of data with pre/post trigger samples
start_streaming
Begin continuous data capture in streaming mode
stop_streaming
End streaming mode
get_streaming_data
Retrieve the latest data from streaming
measure_frequency
Calculate signal frequency from captured data
measure_amplitude
Measure amplitude metrics (pk-pk, RMS, etc.)
measure_rise_time
Analyze edge timing and rise time
measure_pulse_width
Characterize pulse width and related metrics
compute_fft
Perform frequency-domain FFT analysis on captured data
get_statistics
Return basic statistics (min, max, mean, std) of the signal
measure_thd
Compute Total Harmonic Distortion of the signal
set_signal_generator
Configure the built-in arbitrary waveform generator (AWG)
stop_signal_generator
Disable the AWG output
configure_math_channel
Perform channel math operations (A+B, A-B, etc.)
export_waveform
Export captured data to CSV/JSON/NumPy formats
configure_downsampling
Set downsampling mode for data