Wave MCP Server
Analyze RTL waveforms and netlists with 34 specialized tools for LLM-based debugging.
Data last scanned yesterday · Reviewed yesterday
Overview
Wave MCP Server provides a comprehensive toolset for engineers to debug RTL designs using LLMs. By leveraging FST waveforms and RTL netlists, it enables capabilities such as signal querying, hierarchical exploration, driver analysis, and X-state tracing. It performs these tasks without needing a commercial simulator license, making it a cost-effective alternative for hardware verification workflows. The server includes advanced features like waveform comparison, static analysis via pyslang, and a browser-based waveform viewer. It supports multiple deployment modes, including stdio for individual sessions or HTTP for multi-session environments, and provides offline capabilities for secure, air-gapped development setups.
Our verdict
With a high-risk security score of 38/100, this tool is community-maintained and has not yet undergone an editorial security review. While it is active with recent commits and lacks dangerous external dependencies, its reliance on a single contributor and the current lack of audit for authentication methods mean it should be used with caution in sensitive development environments.
- Supports 34 distinct tools for deep waveform and netlist analysis
- Zero commercial license requirements using a pure open-source stack
- Validated on production-level projects like OpenTitan and Xiangshan
- Zero direct dependencies reduces the total software supply-chain surface
- Security score is 38/100 due to community-only maintenance
- Authentication mechanisms have not yet been editorially reviewed
- Read-only mode implementation is not yet verified
- Single contributor increases the bus-factor project risk
Tools
| Tool | Description | Risk |
|---|---|---|
| prepare_session | Prepares a session for waveform debugging by handling waveform conversion, netlist elaboration, and session creation. | medium |
| open_static_session | Opens a session based solely on RTL source code for static analysis without requiring waveforms or simulation. | low |
| convert_vcd_to_fst | Converts VCD waveform files to FST format for faster access and reduced file size. | medium |
| convert_fsdb_to_fst | Converts FSDB waveform files to FST format. | medium |
| open_session | Opens an existing waveform analysis session. | low |
| close_session | Closes the current waveform analysis session. | low |
| session_info | Retrieves information about the current session including netlist health and definition coverage. | low |
| list_child_instances | Lists child instances within a specific design hierarchy scope. | low |
| list_modules | Lists all modules defined in the design. | low |
| instances_of_module | Lists all instances of a specific module. | low |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›What are the core system requirements to run wave-mcp?
You need Python 3.10–3.13, glibc ≥ 2.28, and MCP SDK v2.0.0 or higher. Linux x86_64 systems generally work out-of-the-box due to precompiled wheels.
›Do I need a commercial simulator license to use this server?
No, wave-mcp is entirely open-source and does not require any commercial simulation or debugger licenses. It does not run simulators itself, but instead processes waveforms and netlists generated by your existing design flow.
›Can I use this server if my machine lacks internet access?
Yes, you can use the provided deployment scripts to create an offline bundle containing all dependencies. This allows you to install and run the server in isolated or air-gapped environments.
›Which waveform formats are supported?
The server primarily uses FST format. If you have VCD or FSDB files, the 'prepare_session' tool or session creation workflow will automatically convert them to FST for you.
›Is it possible to analyze a design without a waveform file?
Yes, you can use the 'open_static_session' function to analyze the design structure and netlist using only the RTL source code, which allows for structural analysis even before simulation.
›What should I do if my system has an older version of glibc?
Standard pip installations require glibc ≥ 2.28. If you are on an older system like CentOS 7, you can use the specialized glibc 2.17 bundle or run the server inside a container such as python:3.11-slim.
Changelog
Badge
Maintain this server? Add the live badge to your README.