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

Waveform MCP

MCP Server

Waveform MCP Server 是一个用于读取和分析VCD/FST格式波形文件的MCP服务器,支持远程访问和多会话共享。

工具数

8

提示词数

0

GitHub Stars

38

资源数

0
Rust云端部署Docker

安装说明

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

作者 / 组织

jiegec

提供方

jiegec

最后核验

2026/5/17 20:41

快速接入

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

详细介绍

波形MCP服务器

](https://crates.io/crates/waveform-mcp)

MCP(模型上下文协议)服务器,用于使用 波浪 图书馆。

用法

安装

通过货物安装:

cargo install waveform-mcp

构建的二进制文件将位于 ~/.cargo/bin/waveform-mcp.

手动安装:

# Clone the repository
git clone https://github.com/jiegec/waveform-mcp
cd waveform-mcp

# Build the server
cargo build --release

构建的二进制文件将位于 target/release/waveform-mcp.

跑步

# Run the server with stdio transport (default)
target/release/waveform-mcp

# Run the server in HTTP mode
target/release/waveform-mcp --http

# Run the server in HTTP mode with custom bind address
target/release/waveform-mcp --http --bind-address 0.0.0.0:8000

服务器支持两种传输模式:

  • 标准模式 (默认):使用标准输入/输出进行MCP通信
  • HTTP模式:使用可流式传输的HTTP服务器进行远程访问 /mcp 端点

在HTTP模式下运行时,服务器会监听指定的绑定地址(默认值: 127.0.0.1:8000).HTTP模式允许在多个HTTP会话之间共享波形存储,从而实现波形文件的远程分析。

特性

  • 打开VCD(值更改转储)和FST(快速信号跟踪)波形文件
  • 列出具有分层路径的波形中的所有信号
  • 以缩进树的形式读取波形模块层次结构
  • 读取特定时间索引处的信号值(单个或多个)
  • 获取信号元数据(类型、宽度、索引范围)
  • 查找时间范围内的信号事件(变化)
  • 使用时间刻度信息格式化时间值(例如“10ns”、“5000ps”)
  • 支持远程访问的流式HTTP服务器

工具

服务器提供8个MCP工具:

  1. 开放式波形 -打开波形文件

- file_path:.vcd或.fst文件的路径 - alias:波形的可选别名(默认为文件名)

示例响应:

   Waveform opened successfully with alias: waveform.vcd
  1. 闭合波形 -关闭波形并释放其内存

- waveform_id:要关闭的波形的ID或别名

示例响应:

   Waveform 'waveform.vcd' closed successfully
  1. list_信号 -列出开放波形中的所有信号

- waveform_id:波形的ID或别名 - name_pattern:按名称过滤信号的可选子字符串(不区分大小写) - hierarchy_prefix:按层次结构路径过滤信号的可选前缀 - recursive:包含来自子层次结构的信号的可选标志(默认值:false) - limit:可选返回的最大信号数(默认值:100)

示例响应:

   Found 3 signals:
   top.clock
   top.reset
   top.data
  1. 读取层次结构 -以缩进树的形式读取波形模块层次结构

- waveform_id:波形的ID或别名 - scope_path:可选的起始作用域路径 - recursive:包含子体的可选标志(默认值:false) - limit:可选返回的最大模块数(默认值:200)

示例响应:

   Hierarchy rooted at 'top':
   top
     submodule
  1. read_信号 -读取特定时间索引处的信号值

- waveform_id:波形的ID或别名 - signal_path:信号的分层路径(例如“top.module.signal”) - time_index:要读取的可选单次索引 - time_indices:读取多个值的可选时间索引数组

示例响应:

   Time index 0 (0ns): 0
   Time index 10 (10ns): 1
   Time index 20 (20ns): 1
  1. get_signal_info -获取信号的元数据

- waveform_id:波形的ID或别名 - signal_path:信号的分层路径

示例响应:

   Signal: top.data
   Type: Wire
   Width: 8 bits
   Index: [7:0]
  1. find_signal_events -查找一个时间范围内的所有信号变化

- waveform_id:波形的ID或别名 - signal_path:信号的分层路径 - start_time_index:可选开始时间范围(默认值:0) - end_time_index:可选的时间范围结束(默认值:上次时间索引) - limit:可选返回的最大事件数(默认值:无限制)

示例响应:

   Found 3 events for signal 'top.clock' (time range: 0 to 20):
   Time index 0 (0ns): 0
   Time index 10 (10ns): 1
   Time index 20 (20ns): 0
  1. 查找条件事件 -查找满足条件的事件

- waveform_id:波形的ID或别名 - condition:要计算的条件表达式 - start_time_index:可选开始时间范围(默认值:0) - end_time_index:可选的时间范围结束(默认值:上次时间索引) - limit:可选返回的最大事件数(默认值:100)

示例响应:

   Found 2 events for condition '!$past(TOP.signal) && TOP.signal' (time range: 0 to 50):
   Time index 5 (50ns): top.signal = 8'h0A
   Time index 15 (150ns): top.signal = 8'hFF

支持的条件语法:

- 信号路径(例如。, TOP.signal) - 位运算符: ~ (不是), & (和), | (或), ^ (XOR) - 布尔运算符 && (和), || (或), ! (不) - 比较运算符: ==, != - 分组括号: (condition) - $past(signal) -从先前时间索引读取信号值 - Verilog风格的文字: 4'b0101 (二进制), 3'd2 (十进制), 5'h1A (十六进制) - 比特提取: signal[bit] 对于单比特, signal[msb:lsb] 范围

操作员优先级(从高到低):

1. ~, ! (位非,逻辑非) 1. ==, != (平等/不平等) 1. & (按位与) 1. ^ (逐位XOR) 1. | (按位OR) 1. && (逻辑与) 1. || (逻辑OR)

示例:

- 找出信号1和信号2为真的时间: TOP.signal1 && TOP.signal2 - 查找计数器何时等于特定值: TOP.counter == 4'd10 - 找到上升沿: !$past(TOP.signal) && TOP.signal - 找到下降沿: $past(TOP.signal) && !TOP.signal - 查找握手周期(当有效和就绪都被断言时): TOP.valid && TOP.ready - 复杂情况: (TOP.valid && TOP.data != 8'hFF) || TOP.error - 比特操作: TOP.flags & 4'b0001 (检查是否设置了位0) - 请注意: ~TOP.mask (反转所有位)

独立CLI

除了MCP服务器,还有一个独立的CLI工具 waveform-cli 无需MCP客户端即可直接进行命令行访问。

CLI使用情况

# Basic command
waveform-cli open_waveform /path/to/waveform.vcd

# Chain multiple commands with --
waveform-cli open_waveform test.vcd -- list_signals test.vcd --pattern clk

# Full workflow example
waveform-cli open_waveform test.vcd --alias mywave -- \\
  list_signals mywave -- \\
  read_signal mywave top.clk --time-indices 0,1,2,3 -- \\
  close_waveform mywave

CLI命令

  • 开放式波形 ` \[--别名 `\]-打开波形文件
  • 闭合波形 `` -关闭波形
  • list_信号 ` \[--图案

\]\[--层次结构 \]\[--递归 \]\[--限制 `\]

  • 读取层次结构 ` \[--范围 \]\[--递归 \]\[--限制 `\]
  • read_信号 ` \[--时间指数 |--时间指数

`\]

  • get_signal_info ` ` -获取信号元数据
  • find_signal_events ` \[--开始 \]\[--结束 \]\[--限制 `\]
  • 查找条件事件 ` \[--开始 \]\[--结束 \]\[--限制 `\]

发展

建筑

cargo build
cargo build --release

测试

cargo test

许可证

麻省理工学院

目录标签

目录标签

Rust云端部署Docker波形分析本地部署EDA工具硬件调试信号处理远程访问

接入字段

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

HTTP

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

none

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

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

0

权限和风险

HTTPnone部署方式未说明

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

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP