Token导航 LogoToken导航TokenDH.com
Siglent Sds MCP logo
开发工具未说明官方级别未说明来源级核验

Siglent Sds MCP

MCP Server

一个通过本地网络让AI助手控制Siglent示波器的MCP服务器,支持通过自然语言进行测量、捕获和配置。

工具数

13

提示词数

0

GitHub Stars

2

资源数

0
TypeScriptClaude自动化测试Claude DesktopClaudeCursorWindsurf

安装说明

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

作者 / 组织

MagnusJohansson

提供方

MagnusJohansson

最后核验

2026/5/17 20:21

快速接入

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

详细介绍

siglent sds-mcp

A. 模型上下文协议 (MCP)服务器,让AI助手通过您的本地网络控制Siglent示波器。将Claude连接到您的工作台,并通过自然语言测量、捕获和配置您的示波器。

概述

此MCP服务器通过TCP套接字(端口5025)上的SCPI命令与Siglent SDS示波器通信。无需VISA驱动程序或NI-MAX安装,只需连接到您的示波器即可。

Oscilloscope screenshot captured via MCP

*通过以下方式捕获示波器显示 screenshot MCP工具。*

MCP interaction in terminal

*终端中的自然语言范围控制和测量工作流程。*

主要特点:

  • 12个工具,涵盖通道、时基、触发器、测量、波形捕获和屏幕截图
  • 启动时通过环境变量自动连接
  • 查询队列自动序列化命令——工具可以安全地并行运行
  • 波形数据作为电压/时间阵列返回,准备进行分析
  • 捕获截图并将其转换为PNG,以便在Claude中内联显示
  • 原始SCPI逃生口,用于执行内置工具未涵盖的任何命令

兼容性

状态型号
已测试SDS1104X-E
预计工作SDS1000X-E系列(SDS1202X-E、SDS1204X-E等)
可能有效其他支持TCP上SCPI的Siglent SDS模型

服务器使用来自的标准SCPI命令 SDS1000X-E编程指南支持端口5025上相同命令集的其他Siglent模型应该只需很少或不需要修改即可工作。

快速开始

您需要一个可在网络上访问的Siglent示波器(TCP端口5025)。从下面三个选项中选择一个,并将配置添加到您的 .mcp.json (在您的项目目录中,或 ~/.claude/.mcp.json 全球访问)。

替换 192.168.1.126 使用您的作用域的IP地址。

选项A:Docker(推荐)

无需安装Node.js。适用于Linux、macOS和Windows(通过WSL2或Docker桌面)。

{
  "mcpServers": {
    "siglent-sds": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "SIGLENT_IP=192.168.1.126",
        "ghcr.io/magnusjohansson/siglent-sds-mcp:latest"
      ]
    }
  }
}

选项B:npx

需要Node.js 20+。自动下载并运行包。

{
  "mcpServers": {
    "siglent-sds": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "siglent-sds-mcp"],
      "env": {
        "SIGLENT_IP": "192.168.1.126"
      }
    }
  }
}

选项C:克隆和构建

git clone https://github.com/magnusjohansson/siglent-sds-mcp.git
cd siglent-sds-mcp
npm install
npm run build
{
  "mcpServers": {
    "siglent-sds": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/siglent-sds-mcp/build/index.js"],
      "env": {
        "SIGLENT_IP": "192.168.1.126"
      }
    }
  }
}

替换 /path/to/siglent-sds-mcp 带有克隆的实际路径。

环境变量

变量必填默认描述
SIGLENT_IP--启动时自动连接的示波器IP地址
SIGLENT_PORT没有5025TCP端口(仅在设置不同时更改)

自动连接行为

如果 SIGLENT_IP 设置后,服务器会在启动后立即尝试连接到作用域。这在后台运行 阻止MCP服务器——Claude可以立即开始使用其他工具。如果作用域脱机或无法访问,服务器会记录一条警告,您可以稍后使用手动连接 connect 工具。

如果 SIGLENT_IP 如果未设置,服务器将在没有作用域连接的情况下启动。使用 connect 准备就绪时连接的工具。

与其他AI客户端一起使用

上面的快速入门示例使用Claude Code的 .mcp.json 格式,其中包括 "type": "stdio" 现场。其他AI客户端使用相同的JSON结构,但 没有"type" 字段和不同的配置文件位置。

克劳德桌面

编辑 claude_desktop_config.json:

  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

码头工人

{
  "mcpServers": {
    "siglent-sds": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "SIGLENT_IP=192.168.1.126",
        "ghcr.io/magnusjohansson/siglent-sds-mcp:latest"
      ]
    }
  }
}

新巴拿马型船舶

{
  "mcpServers": {
    "siglent-sds": {
      "command": "npx",
      "args": ["-y", "siglent-sds-mcp"],
      "env": {
        "SIGLENT_IP": "192.168.1.126"
      }
    }
  }
}
注: 更改配置文件后,您必须完全重新启动Claude Desktop。

光标

编辑以下内容之一:

  • 用户级别: ~/.cursor/mcp.json (适用于所有项目)
  • 项目级别: .cursor/mcp.json (通过版本控制与您的团队共享)

您还可以通过UI添加服务器: 设置>光标设置>MCP>添加新的全局MCP服务器.

码头工人

{
  "mcpServers": {
    "siglent-sds": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "SIGLENT_IP=192.168.1.126",
        "ghcr.io/magnusjohansson/siglent-sds-mcp:latest"
      ]
    }
  }
}

新巴拿马型船舶

{
  "mcpServers": {
    "siglent-sds": {
      "command": "npx",
      "args": ["-y", "siglent-sds-mcp"],
      "env": {
        "SIGLENT_IP": "192.168.1.126"
      }
    }
  }
}

帆板运动

编辑 mcp_config.json:

  • 窗户: %USERPROFILE%\.codeium\windsurf\mcp_config.json
  • macOS/Linux: ~/.codeium/windsurf/mcp_config.json

您还可以通过UI配置服务器: 级联面板>MCP图标>管理MCP服务器>查看原始配置.

码头工人

{
  "mcpServers": {
    "siglent-sds": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "SIGLENT_IP=192.168.1.126",
        "ghcr.io/magnusjohansson/siglent-sds-mcp:latest"
      ]
    }
  }
}

新巴拿马型船舶

{
  "mcpServers": {
    "siglent-sds": {
      "command": "npx",
      "args": ["-y", "siglent-sds-mcp"],
      "env": {
        "SIGLENT_IP": "192.168.1.126"
      }
    }
  }
}

谷歌反重力

配置通过IDE的UI进行管理:

  1. 打开 代理窗格 在工作区的右侧
  2. 点击 ... 顶部的按钮
  3. 选择 MCP服务器
  4. 点击 管理MCP服务器
  5. 点击 查看原始配置
  6. 添加下面的配置并保存

码头工人

{
  "mcpServers": {
    "siglent-sds": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "SIGLENT_IP=192.168.1.126",
        "ghcr.io/magnusjohansson/siglent-sds-mcp:latest"
      ]
    }
  }
}

新巴拿马型船舶

{
  "mcpServers": {
    "siglent-sds": {
      "command": "npx",
      "args": ["-y", "siglent-sds-mcp"],
      "env": {
        "SIGLENT_IP": "192.168.1.126"
      }
    }
  }
}

替换 192.168.1.126 在上述所有示例中,您的作用域的IP地址。

ChatGPT桌面

ChatGPT Desktop仅支持远程HTTPS MCP服务器(称为“连接器”),不支持本地stdio服务器。由于此MCP服务器使用stdio传输,因此它与ChatGPT Desktop不直接兼容。

工具

6个类别的12个工具。看 docs/tools-reference.md 有关完整参数的详细信息。

类别工具描述
连接connect通过TCP连接到示波器
disconnect关闭连接
identify查询设备ID(制造商、型号、序列号、固件)
频道get_channel读取通道配置(vdiv、偏移、耦合等)
configure_channel设置vdiv、偏移、耦合、带宽限制、跟踪、探头
收购get_acquisition_status读取时基、采样率、触发设置
configure_acquisition设置时基、触发器、运行/停止/单次
测量measure读取测量值(频率、Vpp、RMS等)
measure_statistics启用/读取/重置测量统计信息
波形get_waveform下载电压/时间数据阵列
screenshot将范围屏幕捕获为PNG格式
SCPIscpi_query / scpi_command发送任意SCPI命令

对话示例

读取通道配置

你: 频道1的当前设置是什么? 克劳德打电话来 get_channel 随着 channel: "C1" 并返回电压/div、偏移、耦合和其他设置。

测量信号

你: 测量通道2上的频率和峰间电压。 克劳德打电话来 measure 两次-一次 parameter: "FREQ" 和一次 parameter: "PKPK" 在信道C2上——并报告这两个值。

捕获并分析波形

你: 从通道1下载波形,告诉我你看到了什么。 克劳德打电话来 get_waveform 在C1上,接收电压/时间数据,并分析信号形状、频率、幅度和任何异常。

截图

你: 让我看看现在的示波器屏幕是什么样子的。 克劳德打电话来 screenshot,接收base64 BMP图像,并将其内联显示。

配置特定测量的范围

你: 为3.3V逻辑信号设置通道1——直流耦合,1V/div,在1.6V的上升沿触发。 克劳德打电话来 configure_channel (设置vdiv、耦合)和 configure_acquisition (依次设置触发源、水平、斜率)。

建筑

Claude Code  siglent-sds-mcp  Oscilloscope:5025
  • 运输: 标准输入上的MCP(JSON-RPC 2.0)
  • 协议: 原始TCP套接字上的SCPI命令,换行终止
  • 查询队列: 所有SCPI查询都通过内部队列进行序列化。示波器一次处理一个命令,因此即使工具发出并行请求(通过 Promise.all),队列确保它们按顺序发送。
  • 二进制块解析: 波形和屏幕截图数据使用IEEE 488.2定长块格式(#9XXXXXXXXX +数据字节+ \n\n).连接层自动检测并解析这些。
  • 电压重建: 原始ADC代码转换为电压: code * (vdiv / 25) - offset,对带符号的值进行two补码处理。

发展

npm run build       # Compile TypeScript
npm run watch       # Watch mode — recompile on changes
npm run dev         # Build and run
npm run inspector   # Launch with MCP Inspector for debugging

Docker(本地构建)

在本地构建映像:

docker build -t siglent-sds-mcp .

然后在您的 .mcp.json:

{
  "mcpServers": {
    "siglent-sds": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "SIGLENT_IP=192.168.1.126",
        "siglent-sds-mcp"
      ]
    }
  }
}

项目结构

src/
  index.ts              # Entry point, MCP server setup
  connection.ts         # TCP socket manager with query queue
  tools/
    connection.ts       # connect, disconnect, identify
    channel.ts          # get_channel, configure_channel
    acquisition.ts      # configure_acquisition, get_acquisition_status
    measure.ts          # measure, measure_statistics
    waveform.ts         # get_waveform, screenshot
    scpi.ts             # scpi_query, scpi_command

故障排除

“未连接到示波器”

范围尚未连接。任一组 SIGLENT_IP 在你的 .mcp.json env用于自动连接,或使用 connect 手动工具。

连接超时

  • 验证作用域的IP地址(检查作用域的实用程序>接口菜单)
  • 确保端口5025可访问(尝试 telnet 5025 从您的机器)
  • 检查是否没有防火墙阻止连接
  • 该作用域一次只接受一个TCP连接——关闭任何其他SCPI客户端

查询超时

一些SCPI查询可能需要几秒钟,特别是在较慢的作用域模型上。默认超时为5秒。对于 scpi_query,您可以使用以下命令增加超时时间 timeout_ms 参数。

Docker:无法访问示波器

默认情况下,Docker容器可以通过网桥网络(NAT)访问LAN设备。如果容器无法连接到您的作用域:

  • 验证是否可以从主机访问范围: telnet 192.168.1.126 5025
  • 在Linux上,尝试添加 --network host Docker参数:
  "args": ["run", "--rm", "-i", "--network", "host", "-e", "SIGLENT_IP=192.168.1.126", "ghcr.io/magnusjohansson/siglent-sds-mcp:latest"]

注: --network host 不适用于macOS或Windows Docker桌面。

Docker:架构错误/exec格式错误

已发布的图像支持 linux/amd64linux/arm64Docker应该自动拉取正确的一个。如果你看到exec格式错误,请显式拉取:

docker pull --platform linux/amd64 ghcr.io/magnusjohansson/siglent-sds-mcp:latest

“CHDR”出现在响应中

这不应该发生——服务器设置 CHDR OFF 在连接。如果在响应中看到命令头,请尝试断开连接并重新连接。

许可证

麻省理工学院——见 许可证 了解详情。

目录标签

目录标签

TypeScriptClaude自动化测试示波器控制本地部署SCPI命令自然语言交互波形捕获

支持客户端

Claude DesktopClaudeCursorWindsurf

接入字段

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

未说明

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

none

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

13

资源数量(resourceCount,资源数)

0

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

0

权限和风险

未说明nonelocal-only

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP