About Saleae Logic2 Automation MCP
Saleae Logic2 Automation MCP is an MCP server in the Automation category: mCP server for Saleae Logic2.
Install
git clone https://github.com/AkiyukiOkayasu/saleae-logic2-automation-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Saleae Logic2 Automation MCP
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
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.
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.