Saleae Logic2 Automation MCP
MCP server for Saleae Logic2
Ask AI about Saleae Logic2 Automation MCP
Powered by Claude · Grounded in docs
I know everything about Saleae Logic2 Automation MCP. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Saleae Logic2 Automation MCP
An MCP (Model Context Protocol) server that exposes the Saleae Logic2 Automation Server (gRPC) as MCP tools.
Prerequisites
- Logic2 is running
- Enable Automation Server is enabled in Preferences
- Automation Server port (default
10430) is known and accessible
Installation
Install from crates.io:
cargo install saleae-logic2-automation-mcp
Or install from source:
cargo install --path .
Optionally set configuration via environment variables:
export SALEAE_ADDRESS=127.0.0.1 # gRPC server address (default: 127.0.0.1)
export SALEAE_PORT=10430 # gRPC server port (default: 10430)
export SALEAE_MCP_CONFIG_DIR=~/.saleae-mcp # Session storage directory (default: ~/.saleae-mcp)
Running
Run the installed binary:
SALEAE_ADDRESS=127.0.0.1 SALEAE_PORT=10430 saleae-logic2-automation-mcp
Or run the release binary built from source:
SALEAE_ADDRESS=127.0.0.1 SALEAE_PORT=10430 \
target/release/saleae-logic2-automation-mcp
Smoke Test
cargo run --bin smoke
Provided Tools
saleae_connect: Connect to Logic2 and verify connectivity withGetAppInfo(connection timeout: 10s)saleae_get_app_info: Get Logic2 application infosaleae_list_devices: List connected devicessaleae_start_capture: Start a capture (manual, timed, or digital trigger)saleae_stop_capture: Stop a manual capturesaleae_wait_capture: Wait for timed/trigger capture to complete (timeout: 300s)saleae_export_raw_csv: Export raw data as CSVsaleae_save_capture: Save capture to.salfilesaleae_close_capture: Close capture tab and free resourcessaleae_save_session: Save capture configuration as a session templatesaleae_list_sessions: List all saved session templatessaleae_get_session: Get a specific session template configurationsaleae_update_session_channels: Update channels in a session templatesaleae_update_session_sample_rates: Update sample rates in a session templatesaleae_update_session_trigger: Update timed/digital-trigger settings in a session templatesaleae_capture_from_template: Start a new capture using a saved session templatesaleae_start_loop_capture: Start a looping capture job (timed/digital-trigger sessions)saleae_stop_loop_capture: Stop the looping capture jobsaleae_get_loop_status: Get loop capture statussaleae_screenshot: Take a screenshot (macOSscreencapture)
JSON Examples (Tool Calls)
Many MCP clients represent a tool invocation as:
{ "tool": "tool_name", "arguments": { "...": "..." } }
The following examples use that format.
Claude Code (MCP JSON-RPC tools/call)
Claude Code speaks MCP over JSON-RPC. The equivalent request shape is:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "saleae_get_app_info",
"arguments": {}
}
}
GitHub Copilot (VS Code MCP tools)
Copilot can call MCP tools when configured. For Copilot, the most practical way is to paste the { "tool": ..., "arguments": ... } object and ask Copilot to execute it.
1) Save a Digital Trigger session template
{
"tool": "saleae_save_session",
"arguments": {
"session_name": "spi_trigger_rise_ch0",
"device_id": "YOUR_DEVICE_ID",
"digital_channels": [0, 1, 2, 3],
"analog_channels": [],
"digital_sample_rate": 10000000,
"digital_threshold_volts": 3.3,
"buffer_size_megabytes": 256,
"capture_mode": "digital_trigger",
"digital_trigger": {
"trigger_type": "rising",
"after_trigger_seconds": 0.2,
"trim_data_seconds": 0.0,
"trigger_channel_index": 0,
"min_pulse_width_seconds": 0.0,
"max_pulse_width_seconds": 0.0,
"linked_channels": [
{ "channel_index": 1, "state": "high" },
{ "channel_index": 2, "state": "low" }
]
}
}
}
2) Update Digital Trigger settings (partial update)
{
"tool": "saleae_update_session_trigger",
"arguments": {
"session_name": "spi_trigger_rise_ch0",
"capture_mode": "digital_trigger",
"digital_trigger": {
"trigger_type": "pulse_high",
"trigger_channel_index": 0,
"after_trigger_seconds": 0.05,
"min_pulse_width_seconds": 0.000001,
"max_pulse_width_seconds": 0.01,
"linked_channels": [
{ "channel_index": 1, "state": "high" }
]
}
}
}
3) Start a capture from a saved session
{
"tool": "saleae_capture_from_template",
"arguments": {
"session_name": "spi_trigger_rise_ch0"
}
}
4) Start loop capture (timed/digital-trigger sessions)
{
"tool": "saleae_start_loop_capture",
"arguments": {
"session_name": "spi_trigger_rise_ch0",
"iterations": 10,
"delay_seconds": 0.5
}
}
5) Get loop capture status
{
"tool": "saleae_get_loop_status",
"arguments": {}
}
6) Stop loop capture
{
"tool": "saleae_stop_loop_capture",
"arguments": {}
}
MCP Client Configuration Example
Example for Claude for Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"saleae": {
"command": "saleae-logic2-automation-mcp",
"args": [],
"env": {
"SALEAE_ADDRESS": "127.0.0.1",
"SALEAE_PORT": "10430"
}
}
}
}
References
License
This project is dual-licensed under MIT OR Apache-2.0.
This project uses proto/saleae.proto from the Saleae Logic2 Automation API,
which is licensed under the Apache License 2.0.
See the NOTICE.md for details.
