返回市场
逻辑分析器AI-MCP

逻辑分析器AI-MCP

作者:wegitor7 星标更新:2025-10-23

项目介绍

逻辑分析仪 MCP

该项目提供了一个用于Saleae逻辑分析仪的MCP(消息控制协议)服务器和自动化接口。它支持远程控制、自动化以及Saleae Logic设备和捕获数据的集成,使得脚本编写、管理和程序化分析逻辑分析仪数据变得容易。

功能

  • 设备配置管理
  • 捕获配置和执行
  • 多种格式的数据导出
  • 逻辑文件分析和处理
  • 协议解码和可视化
  • 图表生成和分析
  • MCP(消息控制协议)服务器集成
  • 支持Logic 16和其他Logic 2设备
  • 使用python-saleae解析和分析捕获文件

要求

  • Python 3.10或更高版本
  • 安装了Saleae Logic 2软件
  • Python-saleae模块
  • Logic 2设备(如Logic 16、Logic Pro 8等)

安装

  1. 克隆仓库

  2. 使用uv创建并激活虚拟环境:

# 创建虚拟环境
uv venv

# 激活虚拟环境
# 在Windows上:
.venv\Scripts\activate
# 在Unix/MacOS上:
source .venv/bin/activate
  1. 使用uv安装依赖项:
# 安装所有依赖项
uv pip install -e .

如果遇到依赖项问题,可以尝试直接安装它们:

# 从GitHub安装logic2-automation
uv pip install git+https://github.com/saleae/logic2-automation/#subdirectory=python

# 安装其他依赖项
uv pip install grpcio protobuf grpcio-tools saleae mcp[cli] pytest

注意:由于依赖项的要求,此项目需要Python 3.10或更高版本。

使用方法

运行MCP服务器

要启动用于远程控制的MCP服务器:

# 使用uv(推荐)
uv --directory <项目路径> run -m logic_analyzer_mcp

注意:使用uv时,请确保已安装并添加到PATH中。--directory参数应指向项目的根目录。

当前兼容性及测试版本

此项目已在适用于Windows的Saleae Logic 1.2.40上进行了测试。

  • 建议使用此版本以获得最佳兼容性。
  • 其他版本可能也能工作,但不保证或由本项目正式支持。

实验性说明(Alpha)

这是一个实验性(Alpha)版本。以下MCP工具序列已被测试且对我有效:

  1. saleae_connect(针对Saleae Logic 1.2.40)
  2. saleae_configure
  3. saleae_capture — 将捕获保存为.logicdata格式
  4. parse_capture_file(可选)
  5. get_digital_data_mcp
  6. saleae_export(可选。如有需要,使用csv)

注意事项:

  • 在使用这些工具之前,请确保Saleae Logic应用程序正在运行,并且启用了脚本套接字服务器。
  • 在调用saleae_capture时,请求.logicdata格式以与控制器方法的最佳兼容性。

故障排除及重要提示

  • 逻辑软件必须在运行中:

    • 在使用此自动化接口之前,请确保Saleae Logic软件已经在您的系统上运行。自动化脚本会尝试连接到正在运行的实例。
    • 如果软件没有运行,脚本可能会无法连接,或者可能会以模拟模式启动新实例(这将无法检测到您的实际设备)。
  • 启用脚本套接字服务器:

    • 在逻辑软件中,转到选项 > 首选项(或编辑 > 首选项),并确保“启用脚本套接字服务器”选项被选中。
    • 默认端口通常是10429。如果您更改了此设置,请相应地更新您的脚本。
    • 如果脚本服务器未启用,Python API将无法与逻辑通信,您将看到连接错误。
  • 设备未被检测到:

    • 在运行任何脚本之前,请确保您的逻辑设备已连接到计算机并且被逻辑软件识别。
    • 如果设备未被检测到,请检查USB连接并尝试重新启动逻辑软件。
  • 架构兼容性:

    • 确保逻辑软件和您的Python环境要么都是32位,要么都是64位。架构不匹配可能导致连接失败。
  • 权限:

    • 在某些系统上,您可能需要以管理员权限运行逻辑软件和/或您的Python脚本,以便允许套接字通信。
  • 支持的版本:

    • 此项目设计用于Saleae Logic 1.x/2.x自动化。一些功能可能仅在安装了适当的自动化API的Logic 2.x中可用。

关于捕获文件格式的说明

  • .logicdata格式是推荐和支持最好的捕获文件格式。所有自动化和解析功能都旨在可靠地与.logicdata文件一起工作。
  • .sal文件(由一些较旧或替代的Saleae软件使用)目前已知存在错误和兼容性问题。自动转换或处理.sal文件可能会失败或需要手动修复。为了获得最佳结果,始终使用.logicdata格式进行捕获。

API参考

SaleaeController

提供对Logic 2功能高级访问的主要控制器类。

设备配置方法:

  • create_device_config(name: str, digital_channels: List[int], digital_sample_rate: int, analog_channels: Optional[List[int]] = None, analog_sample_rate: Optional[int] = None, digital_threshold_volts: Optional[float] = None) -> str

    • 使用指定的通道和采样率创建新的设备配置
    • 返回配置名称
  • get_device_config(name: str) -> Optional[LogicDeviceConfiguration]

    • 根据名称检索设备配置
    • 如果未找到,则返回None
  • list_device_configs() -> List[str]

    • 列出所有可用的设备配置名称
  • remove_device_config(name: str) -> bool

  • 移除设备配置

  • 如果成功则返回True,如果未找到则返回False

捕获配置方法:

  • create_capture_config(name: str, duration_seconds: float, buffer_size_megabytes: Optional[int] = None) -> str

    • 使用指定的持续时间创建新的捕获配置
    • 返回配置名称
  • get_capture_config(name: str) -> Optional[CaptureConfiguration]

    • 根据名称检索捕获配置
    • 如果未找到,则返回None
  • list_capture_configs() -> List[str]

    • 列出所有可用的捕获配置名称
  • remove_capture_config(name: str) -> bool

    • 移除捕获配置
    • 如果成功则返回True,如果未找到则返回False

配置:

Claude配置(使用uv run):

{
    "mcpServers": {
        "logic-analyzer-ai-mcp": {
            "type": "stdio",
            "command": "uv",
            "args": [
                "--directory",
                "<文件夹路径>",
                "run",
                "-m",
                "logic_analyzer_mcp"
            ]
        }
    }
}

Claude配置(直接使用):

{
    "mcpServers": {
        "logic-analyzer-ai-mcp": {
            "type": "stdio",
            "command": "python",
            "args": [
                "<文件夹路径>\\src\\logic_analyzer_mcp.py"
            ]
        }
    }
}

Claude配置(使用uv run):

{
    "mcpServers": {
        "logic-analyzer-ai-mcp": {
            "type": "stdio",
            "command": "uv",
            "args": [
                "--directory",
                "<文件夹路径>",
                "run",
                "-m",
                "logic_analyzer_mcp"
            ]
        }
    }
}

Logic2参数描述

此项目包括一个可选的实验性路径用于Logic2自动化,默认情况下是禁用的。您可以通过以下三种方式之一启用它:

  • CLI标志(推荐用于一次性运行)

    • 示例:
      • python -m logic_analyzer_mcp --logic2
  • 环境变量(对于CI/持久shell方便)

    • 示例(Unix):
      • LOGIC2=1 python -m logic_analyzer_mcp
    • 示例(Windows PowerShell):
      • $env:LOGIC2='1'; python -m logic_analyzer_mcp
  • 程序化API(当嵌入库时)

    • 在注册工具之前调用辅助函数:
      • from mcp_tools import set_logic2_enabled, setup_mcp_tools
      • set_logic2_enabled(True)
      • setup_mcp_tools(mcp, controller)
    • 或者向setup_mcp_tools传递明确参数:
      • setup_mcp_tools(mcp, controller, enable_logic2=True)

注意事项:

  • 默认行为:Logic2实验性功能关闭。当禁用时,代码倾向于使用基于控制器或离线的回退方案。
  • 安全性:实验性功能可能会改变——有意启用并在生产环境中使用前测试您的环境。
  • 故障排除:如果启用Logic2失败,请检查是否已安装logic2-automation/python-saleae包,并且Saleae应用正在运行且可访问。

Claude配置(示例)

以下是您可以调整的最小Claude MCP服务器配置示例。将其放置在您的Claude配置文件或工具设置中。

{
  "mcpServers": {
    "logic-analyzer-ai-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        "<文件夹路径>",
        "run",
        "-m",
        "logic_analyzer_mcp",
        "--logic2"
      ]
    }
  }
}

注意事项:

  • 如果不想启用实验性的Logic2工具,请移除--logic2标志。
  • 调整<文件夹路径>和其他uv参数以匹配您的环境。
  • 如果您更喜欢直接调用模块而不是通过uv,请使用基于python的配置。