Token导航 LogoToken导航TokenDH.com
Wave MCP (Devil Sx) logo
运维云端stdio官方级别未说明来源级核验

Wave MCP (Devil Sx)

MCP Server

@modelcontextprotocol/inspector

Wave MCP Server 是一个用于查看和解析 VCD 和 FST 波形文件的服务,提供统一的接口和高效的性能。

工具数

8

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude云端部署Claude

安装说明

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

作者 / 组织

Devil-SX

提供方

Devil-SX

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

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

命令预览

npx -y @modelcontextprotocol/inspector uv --directory /path/to/wave_mcp run wave-mcp

详细介绍

Wave MCP服务器

此存储库不再维护。 波形数据库不太适合MCP工具——编程工具更适合。看 高级工具使用 了解详情。

Python

MCP服务器,用于查看和解析VCD(值更改转储)和FST(快速信号跟踪)波形文件。

特性

  • VCD和FST波形格式的统一接口(从文件扩展名自动检测)
  • 带过滤的分层信号列表(模块路径、深度、模式/正则表达式)
  • 时间范围查询
  • 可配置输出格式(二进制、十六进制、十进制)的信号值提取
  • 信号名称的不区分大小写的子字符串匹配
  • IEEE 754浮点转换工具(float32、float16、bfloat16)

为什么是皮维伦?

  • 统一接口:使用单个解析器处理VCD和FST格式,无需单独 vcdvcd + pylibfst 代码路径
  • 演出:VCD加载速度比vcdvcd快~5-10x;FST值查询比pylibfst快约1.8倍
  • 简洁:4个MCP工具,而不是8个特定格式的工具

安装

先决条件

  • Python 3.12+
  • 紫外线 (推荐包管理器)
  • (仅当您的平台没有预制车轮时):

pywellen为Linux x86_64/ARM64和macOS x86_64/ARM64分发预编译的轮子。 大多数用户 不需要安装Rust.如果您使用的是不受支持的平台或从源代码构建,请安装Rust>=1.73.0:

  curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

设置

cd /path/to/wave_mcp

# Install (pywellen only — all MCP server needs)
uv sync

# Install with dev/test dependencies (includes vcdvcd, pylibfst for differential testing)
uv sync --group dev

用法

作为MCP服务器(克劳德桌面)

添加到您的Claude桌面配置(~/.config/claude/claude_desktop_config.json):

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

使用MCP检查器进行调试

npx -y @modelcontextprotocol/inspector uv --directory /path/to/wave_mcp run wave-mcp

可用工具

波形工具

工具说明
load_waveform(path, max_file_size_mb)加载VCD或FST文件(格式自动检测)
get_signals(module_path, max_depth, limit, pattern, use_regex)使用分层过滤列出信号
get_time_range()获取加载波形的总时间范围
get_signal_values(signal_names, start_time, end_time, format, limit)查询某一时间范围内的信号值

浮点转换工具

工具说明
hex_to_float(hex_value, float_type)将十六进制字符串转换为浮点数(float32/ffloat16/bfloat16)
float_to_hex(float_value, float_type)将浮点数转换为十六进制字符串
bin_to_float(bin_value, float_type)将二进制字符串转换为浮点数
float_to_bin(float_value, float_type)将浮点数转换为二进制字符串

工作流示例

# 1. Load a waveform file
load_waveform(path="/path/to/waveform.vcd")

# 2. List signals (with optional filtering)
get_signals(module_path="top.cpu", max_depth=1, limit=50)

# 3. Get time range
get_time_range()

# 4. Query signal values
get_signal_values(
    signal_names=["clk", "counter"],
    start_time=0,
    end_time=1000,
    format="hex"
)

文件大小估计

VCD文件大小

VCD是一种基于文本的格式。文件大小取决于信号计数(N)和时间步长计数(T):

VCD_size (bytes) ~= 10 * T * H(N)

哪里 H(N) = sum(1/k for k=1..N) 近似为N次谐波数 ln(N) + 0.5772.

信号(N)时间步长(T)估计VCD大小实际VCD大小
101000~23kb27kb
105000~117 KB146 KB
501000~48kb44kb
1001000~52 KB55 KB
100200万约104 MB131 MB
500200万~137 MB160 MB

FST文件大小

FST是一种压缩的二进制格式。典型压缩比与VCD: 8倍至20倍.

FST_size ~= VCD_size / compression_ratio

压缩比随信号活动而变化。低活动信号压缩得更好。

MCP输出令牌消耗

经验法则: 1000个代币~ 750个单词.

get_signals 输出

每条信号线大约有8个字。使用标题行:

限制近似单词近似令牌
10~90~120
50~410~550
100~810~1,080
500~4,010~5,350

get_signal_values 输出

每条值变化线大约有3个单词。对于每个信号有C变化的N个信号:

Words ~= 10 + N * (5 + 3 * min(C, limit))
Tokens ~= Words * 1000 / 750
信号变化/信号限制近似单词近似令牌
1100100~315~420
3100100~925~1,230
31000100~925~1,230
310000~9,015~12,020
101000100~3,050~4,070

控制代币消费的建议:

  • 使用 limit 参数(默认值:100)用于限制每个信号的值变化
  • 缩小时间范围(start_time/end_time)而不是查询完整的波形
  • 使用 module_pathpattern 过滤器在 get_signals 减少信号计数

测试

# Run all tests
uv run pytest tests/ -v

# Run benchmark (small scale, quick)
BENCHMARK_SCALE=small uv run pytest tests/test_benchmark.py -v -s

# Run benchmark (full scale: KB to 100MB+, ~6 min)
BENCHMARK_SCALE=full uv run pytest tests/test_benchmark.py -v -s

项目结构

wave_mcp/
├── mcp_server.py              # MCP server entry point
├── pyproject.toml              # Project config and dependencies
├── src/
│   ├── parsers/
│   │   ├── __init__.py         # Parser exports and global state
│   │   ├── wellen_parser.py    # Unified parser (pywellen backend)
│   │   ├── vcd_parser.py       # Legacy VCD parser (vcdvcd, for diff testing)
│   │   └── fst_parser.py       # Legacy FST parser (pylibfst, for diff testing)
│   ├── tools/
│   │   ├── __init__.py
│   │   ├── waveform_tools.py   # Unified waveform MCP tools
│   │   └── float_tools.py      # IEEE 754 float conversion tools
│   └── utils/
│       └── format.py           # Value formatting utilities
├── tests/
│   ├── test_waveform_tools.py  # Unified tool integration tests
│   ├── test_differential.py    # Old vs new parser comparison tests
│   ├── test_benchmark.py       # Performance benchmarks
│   └── ...
└── docs/
    └── benchmark_report.md     # Auto-generated benchmark report

支持格式

格式扩展名类型描述
VCD.vcd文本IEEE Std 1364值更改转储。人类可读,广泛支持
FST.fst二进制GTKWave快速信号跟踪。比VCD小8-20倍,加载速度更快

目录标签

目录标签

PythonClaude云端部署波形解析本地部署信号处理文件解析性能优化IEEE754

支持客户端

Claude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP