Token导航 LogoToken导航TokenDH.com
Logicanalyzer MCP logo
运维云端未说明官方级别未说明来源级核验

Logicanalyzer MCP

MCP Server

一款用于固件调试、逆向工程和CI/CD硬件验证的逻辑分析工具和MCP服务器,支持多种协议解码和硬件抽象层。

工具数

20

提示词数

0

GitHub Stars

1

资源数

0
逆向工程GoClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

DatanoiseTV

提供方

DatanoiseTV

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

逻辑分析器mcp

用于固件调试、逆向工程和CI/CD硬件验证的逻辑分析工具和MCP服务器。内置Go,具有DSLogic第一硬件抽象层。

它做什么

  • 捕捉 来自逻辑分析仪的数字信号(DSLogic,或用于测试的模拟/重放)
  • 解码 协议:UART、SPI、I2C、CAN、1-Wire(原生Go),通过嵌入式goja引擎使用用户定义的JS解码器
  • 分析 定时、检测异常、比较捕获、搜索解码帧
  • 触发 关于边缘、模式、超时和复合条件
  • 断言 CI/CD流水线中的信号正确性(logicanalyzer assert)
  • 交互式调试 通过MCP——让LLM驱动逻辑分析仪跟踪固件问题
  • 可视化 基于浏览器的查看器中的波形、协议解码和异常

安装

源代码(纯Go,无需硬件)

git clone --recurse-submodules https://github.com/DatanoiseTV/logicanalyzer-mcp.git
cd logicanalyzer-mcp
make build

这将生成一个二进制文件:

  • 模拟和回放设备(无需硬件)
  • 5个本地Go解码器(UART、SPI、I2C、CAN、1-Wire)
  • 用于自定义协议的JavaScript解码器运行时(goja)
  • 完整的CLI、MCP服务器、web查看器、会话管理

支持DSLogic硬件

make build-full 从包含的git子模块自动编译libsigrok4DSL:

# Install system dependencies (one time)
make install-deps   # macOS: brew install cmake pkg-config glib libusb libzip

# Full build (auto-compiles C deps from submodules)
make build-full

在Linux上:

sudo apt-get install -y cmake pkg-config libglib2.0-dev libusb-1.0-0-dev libzip-dev
make build-full

使用克劳德代码(MCP服务器)

通过CLI

claude mcp add logicanalyzer -- /path/to/logicanalyzer mcp

或者,如果已安装到PATH中:

claude mcp add logicanalyzer -- logicanalyzer mcp

通过配置文件

添加 ~/.claude/settings.json 或项目级别 .claude/settings.json:

{
  "mcpServers": {
    "logicanalyzer": {
      "command": "/path/to/logicanalyzer",
      "args": ["mcp"]
    }
  }
}

MCP工具

MCP服务器公开了18个工具,并提供了详细的LLM友好描述。LLM可以驱动完整的调试会话:

类别工具
发现device_list, device_configure, channel_survey
捕获capture_start, capture_status, capture_stop, capture_get
分析decode, analyze_timing, analyze_anomalies, compare_captures, search_frames
会议session_list, session_get, session_annotate, capture_replay
解码器decoder_list, decoder_info, decoder_install
调试investigate (自动调查+检测+捕获+解码+报告)

LLM工作流程示例:

  1. investigate --“电线上有什么?”
  2. decode 具有自动检测功能——确认SPI,解码帧
  3. analyze_anomalies --“第5帧出现CS故障”
  4. compare_captures 与已知商品相反——“此交易缺失”

命令行用法

# Discovery
logicanalyzer devices                     # List connected devices
logicanalyzer survey --duration 100ms     # Quick channel activity survey

# Capture
logicanalyzer capture \
  --channels 0,1,2 --labels CLK,MOSI,CS \
  --rate 10MHz --duration 500ms \
  --decode spi --channel-map clk=0,mosi=1,cs=2 \
  --output capture.json

# Decode
logicanalyzer decode capture.json
logicanalyzer decode capture.json --protocol spi --format json

# CI/CD assertions (exit 0 = pass, 1 = fail, 2 = error)
logicanalyzer assert capture.json \
  --no-anomalies \
  --frame-count "spi >= 10" \
  --field "spi[0].mosi == 0x9F"

# Compare two captures
logicanalyzer diff before.json after.json

# Search decoded frames
logicanalyzer search capture.json "mosi == 0x9F"

# Session management
logicanalyzer session list
logicanalyzer session show 
logicanalyzer session tag  debug,spi

# Decoders
logicanalyzer decoder list
logicanalyzer decoder info spi
logicanalyzer decoder load custom-protocol.js

# Web viewer
logicanalyzer serve --port 8080

# MCP server (stdio)
logicanalyzer mcp

网络观众

从...开始 logicanalyzer serve 并打开 http://localhost:8080.特点:

  • 可缩放/可平移波形显示(鼠标滚轮+拖动)
  • 带有帧注释的协议解码覆盖
  • 异常标记(按严重程度进行颜色编码)
  • 自动缩放时间轴
  • 会话浏览器侧边栏
  • 解码帧表
  • 统计面板

去图书馆

import (
    "github.com/DatanoiseTV/logicanalyzer-mcp/pkg/analyzer"
    "github.com/DatanoiseTV/logicanalyzer-mcp/pkg/hal/mock"
)

// Open a mock device (for testing)
a, _ := analyzer.OpenMock(analyzer.MockConfig{
    NumChannels: 3,
    Signals: []mock.SignalConfig{
        {Channel: 0, Generator: mock.SPISignal(1_000_000, []byte{0x9F}, 0, 0)},
    },
})
defer a.Close()

// Or replay from a recorded capture
a, _ := analyzer.OpenReplay("golden-capture.json")

// Capture and decode
result, _ := a.Capture(analyzer.CaptureConfig{
    Channels:   []analyzer.ChannelConfig{{Index: 0, Label: "CLK"}, {Index: 1, Label: "MOSI"}, {Index: 2, Label: "CS"}},
    SampleRate: 10_000_000,
    Duration:   100 * time.Millisecond,
})

decoded, _ := result.Decode("spi", analyzer.DecodeOpts{
    Channels: map[string]int{"clk": 0, "mosi": 1, "cs": 2},
})

fmt.Println(decoded.Frames[0].Data["mosi"]) // "0x9F"

自定义JS解码器

为专有或不常见的协议编写JavaScript解码器:

({
  id: "my_sensor",
  name: "My Sensor Protocol",
  description: "Custom protocol decoder",
  requiredChannels: [
    {name: "clk", description: "Clock"},
    {name: "data", description: "Data"}
  ],
  decode: function(stream) {
    var edges = stream.risingEdges("clk");
    var frames = [];
    var byte_val = 0, bit_count = 0, start = 0;

    for (var i = 0; i < edges.length; i++) {
      if (bit_count === 0) start = edges[i].timestamp;
      byte_val = (byte_val << 1) | stream.sample("data", edges[i].sampleIndex);
      bit_count++;
      if (bit_count === 8) {
        frames.push({
          start: start, end: edges[i].timestamp,
          data: {value: "0x" + byte_val.toString(16).toUpperCase()},
          annotation: "0x" + byte_val.toString(16).toUpperCase()
        });
        byte_val = 0; bit_count = 0;
      }
    }
    return frames;
  },
  detectApplicability: function(stream) { return 0; }
})

通过CLI加载(logicanalyzer decoder load protocol.js)或MCP(decoder_install 工具)。

建筑

cmd/logicanalyzer/        CLI + MCP server entrypoint
pkg/
  analyzer/               Public Go library API
  capture/                Capture manager, trigger engine
  decoder/                Edge detection, decoder pipeline, auto-detect
    native/               Native Go decoders
      uart/               UART 8N1
      spi/                SPI (CPOL/CPHA)
      i2c/                I2C with ACK/NACK tracking
      can/                CAN 2.0A with CRC, bit destuffing
      onewire/            Dallas 1-Wire (reset, presence, commands)
    js/                   JavaScript decoder runtime (goja)
  analysis/               Timing measurement, anomaly detection, diff, search
  session/                File-backed session & capture storage
  schema/                 JSON schema types (CaptureResult, Frame, Anomaly, ...)
  hal/                    Hardware abstraction layer
    mock/                 Mock device with signal generators
    replay/               Replay from captured files
    dslogic/              DSLogic CGo bridge (libsigrok4DSL)
  output/                 Output formatters (JSON, table, CSV)
  mcp/                    MCP server (18 tools)
  web/                    Embedded web viewer (SPA)
third_party/
  DSView/                 DreamSourceLab DSView (libsigrok4DSL source)
  libsigrokdecode/        sigrok protocol decoders (100+)
  build-libsigrok/        CMake wrapper for standalone lib build

制定目标

make build           Pure Go build (mock/replay, no hardware)
make build-full      Full build (auto-compiles libsigrok4DSL from submodule)
make build-mcp       MCP-only binary
make install-deps    Install system dependencies (brew/apt)
make test            Run all tests
make serve           Start web viewer on :8080
make mcp             Start MCP server on stdio
make check-deps      Verify system dependencies
make clean           Remove build artifacts

许可证

麻省理工学院

目录标签

目录标签

逆向工程GoClaude固件调试本地部署硬件验证协议解码MCP服务器

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

20

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP