波形查看器控制服务器

一个MCP服务器,允许AI助手控制Surfer,一个用于硬件设计和验证的开源波形查看器。

  • by PaoloRondot
  • Python
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 PaoloRondot/surfer-mcp

使用说明

冲浪者mcp

让AI助手控制的MCP服务器 冲浪者,一个用于硬件设计和验证的开源波形查看器。它通过以下方式与Surfer通信 波形通信协议(WCP) 也可以通过直接读取波形文件 皮韦伦.

特性

  • 加载和重新加载 波形文件(VCD、FST、GHW等)
  • 浏览层次结构 --列出设计中的范围和信号
  • 控制查看器 --添加/删除信号、设置光标位置、缩放、设置视口范围、添加标记、更改信号颜色
  • 读取信号数据 --获取时间戳的值,查找边,搜索值,获取时间窗口中的所有转换
  • 截图 Surfer窗口(macOS)

需求

  • Python 3.10+
  • 冲浪者 安装在您的 PATH
  • macOS(屏幕截图功能使用Quartz;如果删除 pyobjc 依赖性)

安装

# Clone the repo
git clone https://github.com/PaoloRondot/surfer-mcp.git
cd surfer-mcp

# Install with uv (recommended)
uv pip install -e .

# Or with pip
pip install -e .

使用Claude代码

添加到您的Claude Code MCP设置中(~/.claude/settings.json 或项目 .mcp.json):

{
  "mcpServers": {
    "surfer": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/surfer-mcp", "surfer-mcp"]
    }
  }
}

或者,如果您是全局安装的:

{
  "mcpServers": {
    "surfer": {
      "command": "surfer-mcp"
    }
  }
}

与其他MCP客户端一起使用

服务器运行超时 标准。从以下内容开始:

surfer-mcp

或者不安装:

uv run --directory /path/to/surfer-mcp surfer-mcp

可用工具

工具 说明
load_waveform 将波形文件加载到Surfer中
reload_waveform 重新加载电流波形
list_scopes 列出层次结构中的所有作用域(模块/实例)
list_signals 列出范围内的信号
add_signals 按名称向查看器添加信号
add_scope 在一个范围内添加所有信号
add_items / remove_items 按路径/ID添加或删除项目
get_item_list / get_item_info 查询显示的项目
set_cursor 将光标移动到时间戳
set_viewport_range / set_viewport_to 控制可见时间范围
zoom_to_fit 缩放以适应所有数据
add_markers 添加命名时间标记
focus_item 滚动到项目
set_item_color 更改信号显示颜色
get_signal_values 读取时间戳处的信号值
find_rising_edge / find_falling_edge 查找信号的下一个边缘
find_value 查找特定值的下一次出现
get_transitions 在时间窗口中获取所有转换
get_time_range 获取模拟时间范围和时间刻度
screenshot 捕获Surfer窗口(macOS)
clear 从查看器中清除所有项目
shutdown_surfer 关闭Surfer

运作原理

当首次调用工具时,服务器会自动:

  1. 启动启用WCP的Surfer
  2. 通过TCP连接并执行WCP握手
  3. 发送命令并返回结果

Surfer进程在工具调用之间保持运行,因此您可以交互式地探索波形。

许可证

麻省理工学院