mcp-vcd
# mcp-vcd
A Model Context Protocol (MCP) server for analyzing **VCD waveforms** and **GTKWave save files** (`.gtkw`).
Give your AI assistant direct access to hardware simulation results — signal values, bus definitions, display formats, and signal groupings — without dumping entire files into the context window.
## Tools
| Tool | Description |
|------|-------------|
| **`get-signal`** | Get all value changes of a signal from a VCD file. Supports optional `start_time` / `end_time` range filtering. |
| **`load-gtkw`** | Parse a `.gtkw` save file and return its full structure: metadata, signals, buses, and groups. |
| **`get-signal-groups`** | Return the group hierarchy defined in a `.gtkw` file. |
| **`get-bus-signals`** | Return the component signals of a named bus from a `.gtkw` file. |
| **`get-signal-with-format`** | Get signal values from a VCD, formatted according to `.gtkw` display hints (hex, decimal, binary, etc.). |
## Installation
```bash
uv pip install mcp-vcd
```
### Claude Desktop
Add to your `claude_desktop_config.json`:
```json
"mcpServers": {
"mcp-vcd": {
"command": "uv",
"args": [
"run",
"mcp-vcd"
]
}
}
```
See [Anthropic's MCP documentation](https://modelcontextprotocol.io/quickstart/user) for more info.
## License
MIT
TDQS
Scored across 5 tools
Tools are generally distinct, but get-signal and get-signal-with-format overlap in purpose (both retrieve signal values from VCD), though the formatting difference is clearly described. Other tools target distinct aspects of GTKW structure.
All tool names follow a consistent lowercase hyphenated verb_noun pattern (get-*, load-*), making the naming predictable and easy to understand. The use of 'load' for gtwk parsing and 'get' for data retrieval is a consistent semantic distinction.
With 5 tools, the server is well-scoped for its purpose of reading and inspecting VCD/GTKW files. Each tool covers a necessary aspect without redundancy or bloat.
The toolset covers the core workflows: parsing GTKW structure, querying groups/buses, and retrieving signal values. A minor gap is the lack of a direct way to enumerate all signals from a VCD file without a GTKW file, but this matches the typical workflow where GTKW provides the signal hierarchy.