使用说明内容(Markdown格式)
-
项目简介
- 这是一个基于 MCP(Model Context Protocol)的服务器实现,专门用于对 VCD 与 FST 波形文件进行托管、分析与操作。通过一组可扩展的工具,LLM 客户端可以打开波形、查看信号、读取时间点的数值、获取信号元数据、以及查找信号的变化事件。服务器通过 JSON-RPC 与客户端通信,支持 STDIO 传输。
-
主要功能点(面向 MCP 客户端的核心能力)
- 打开波形文件并分配一个 waveform_id/别名用于后续操作(open_waveform)。
- 列出波形中的所有信号,支持按名称、层级前缀、递归/非递归、以及结果数量限制(list_signals)。
- 在指定时间索引读取信号的值,支持单时间点或时间点数组(read_signal)。
- 获取信号的元数据(类型、位宽、索引范围等)(get_signal_info)。
- 在给定时间范围内查找信号的所有变化事件(find_signal_events)。
- 后端实现了对波形数据的并发访问控制、信号数据加载、以及便捷的格式化输出,便于与 LLM 的上下文服务整合。
-
安装步骤
- 克隆仓库并进入项目目录。
- 安装必要的 Rust 构建环境(Rust + Cargo)。
- 构建服务器:
- cargo build
- 或发布版:cargo build --release
- 运行服务器(STDIO 传输):
- cargo run
- 构建完成后可在 target/release/waveform-mcp 获取可执行文件用于生产部署。
-
服务器配置(MCP 客户端需要此配置以连接服务器;配置信息为 JSON,包含 server name、command、args 等)
- 服务器配置示例(JSON,供 MCP 客户端读取并传递给服务器启动命令) { "server_name": "Waveform MCP Server", "command": "./target/release/waveform-mcp", "args": [] }
- 注释说明
- server_name:对服务器的简要描述名称,便于在客户端侧展示和管理。
- command:启动可执行文件的路径。对本仓库而言,在构建发布后应指向经过 cargo build --release 获得的 waveform-mcp 二进制。
- args:启动服务器时需要的命令行参数,如有特定配置可在此添加;当前实现默认无需额外参数。
-
基本使用方法
- 通过 MCP 客户端与服务器建立连接(基于 JSON-RPC、STDIO 传输)。
- 使用 open_waveform 工具打开一个波形文件,例如 .vcd 或 .fst,获得 waveform_id/别名以便后续调用。
- 使用 list_signals、read_signal、get_signal_info、find_signal_events 等工具完成波形探索和数据提取。
- 以上工具通过标准的 JSON-RPC 请求/响应格式进行交互,服务器端会返回结构化的文本或信息性结果,便于在 LLM 的上下文中进行加工呈现。
-
主要注意事项
- 服务器默认通过 STDIO 传输,适合嵌入式或需要直接进程间通信的场景。
- 波形文件需要通过 open_waveform 打开后才能对后续工具进行操作。
- 时序单位和时间格式会依据波形文件的 timescale 进行格式化输出,确保与客户端的时间表达一致。
信息
分类
AI与计算