pico-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pico-mcpRun a frequency sweep on channels A and B to measure the transformer's response"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pico-mcp
A lean MCP (Model Context Protocol) server for PicoScope 5000A USB oscilloscopes (developed and verified on a 5442B). It lets an LLM/agent drive the scope: discover the device, configure channels, run the built-in signal generator, capture blocks, take measurements, and sweep a frequency response.
Built because the existing third-party server was too buggy (a find_all_units() discovery
that crashes the process on the ps6000a driver, ctypes.byref errors on GetUnitInfo, a
device-handle leak, and an is_connected check on a field that is never set). This server
talks to the ps5000a driver directly; every code path was verified against real hardware.
macOS Apple Silicon note (important)
The PicoSDK C libraries shipped inside PicoScope 7 T&M.app are x86_64. An arm64
Python cannot load them (dlopen … incompatible architecture). The fix: run the server in
an x86_64 venv under Rosetta and point DYLD_LIBRARY_PATH at the app's libraries.
On Windows/Linux with a natively installed PicoSDK this is not needed.
Related MCP server: LeCroy Oscilloscope MCP
Setup
git clone https://github.com/Schimmilab/pico-mcp.git
cd pico-mcp
# macOS Apple Silicon (Rosetta x86_64 venv):
uv venv --python cpython-3.11-macos-x86_64 .venv-x86
uv pip install --python .venv-x86/bin/python -e .
# Other platforms: a normal venv is fine:
# uv venv && uv pip install -e .Quick hardware test (close the PicoScope desktop app first — a scope can only be opened by one program at a time):
DYLD_LIBRARY_PATH="/Applications/PicoScope 7 T&M.app/Contents/Resources" \
.venv-x86/bin/python -c "from pico_mcp.scope import probe_devices; print(probe_devices())"Register in Claude Code
claude mcp add pico --scope user \
--env DYLD_LIBRARY_PATH="/Applications/PicoScope 7 T&M.app/Contents/Resources" \
-- /ABSOLUTE/PATH/TO/pico-mcp/.venv-x86/bin/pico-mcp(Replace /ABSOLUTE/PATH/TO/ with your clone location. The DYLD_LIBRARY_PATH env is only
needed on macOS Apple Silicon.)
Tools
Tool | Purpose |
| Find connected scopes (model / variant / serial) |
| Open (resolution 8/12/14/15/16 bit) / release the device |
| Model, variant, serial, resolution, configured channels |
| Channel A–D: enable, DC/AC, range (0.01–20 V), analog offset |
| Built-in AWG: sine/square/triangle/ramp, frequency, amplitude |
| Block capture of all enabled channels → Vpp/min/max/mean/rms, estimated frequency, downsampled waveform (≤240 points) |
| Frequency response: log-spaced AWG sweep, gain |
Example: measuring a transformer
Connect AWG/GEN → channel A (input) → device-under-test → channel B (output), enable both
channels, then ask the agent to run a frequency_sweep. The server drives each frequency,
captures both channels and reports the gain B/A — yielding the −3 dB bandwidth, pass-band
flatness and any resonances. (This was the first real use: characterising a 1:1 audio
isolation transformer — flat 17 Hz–1.4 MHz, one mild resonance at 380 kHz.)
Notes
Close the PicoScope desktop app before connecting — exclusive device access.
capture_blockreturns a downsampled waveform (no megasample dumps); measurements are computed from the full-resolution data.Code changes take effect after the MCP host reloads the server (e.g. restart the session). The driver layer can be tested without a reload by running it directly in the venv.
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/Schimmilab/pico-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server