使用说明内容(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 的上下文服务整合。
  • 安装步骤

    1. 克隆仓库并进入项目目录。
    2. 安装必要的 Rust 构建环境(Rust + Cargo)。
    3. 构建服务器:
      • cargo build
      • 或发布版:cargo build --release
    4. 运行服务器(STDIO 传输):
      • cargo run
    5. 构建完成后可在 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与计算