wtf-wave
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
wtf reads VCD, FST and GHW waveforms from digital simulations: read them with these tools, not the shell.
Start:
openthe trace (sessionslists the user's windows and their traces);signalsfinds signals and scopes. A pattern is a regex in slashes wherever one goes,/uart/.A bus or stream: decode it first.
openlists the interfaces a built-in protocol decodes, each with its line forcommand(decode bus axilite clock=aclk prefix=s_axi_); thenrecords(where,group_by,count_only): records are exact and the handshake checks built in.Anything else:
valuesfor values (fromalone for one time),findfor when a condition holds and how often.To show evidence: declare the
workspace, check it withview/render, thenpresentit.helpis the reference, a topic each with its form, recipes and details: names, patterns, times, radix, expressions, decode, records, workspace, commands.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| commandA | Run one of wtf's |
| findC | When a search expression holds, as a table of times; |
| helpA | The reference for one concept: its form, recipes and details. Topics: names, patterns, times, radix, expressions, decode, records, workspace, commands; without a topic, lists them. Call it when an argument's doc or an error isn't enough. |
| infoB | The open waveform: file, time range, signals, and the interfaces a built-in protocol decodes, each with its |
| openA | Choose the trace the other tools work on: |
| presentB | Show your workspace to the user as evidence: it replaces the view of every wtf window on this trace (theirs is one |
| protocolsB | What can be decoded; with a name, its roles, params, streams and fields ( |
| recordsA | Records of a decoded stream, or of several in start order (a decode's name: its results), as a table: n, start (the rising edge that starts the record's first clock cycle), end (the edge that samples its last) and the fields; |
| renderB | Draw signals over a time range as text, as wtf's screen does; without signals, the workspace. |
| sessionsA | The open sessions: the user's wtf windows and agents' workspaces, with ids and traces, yours marked. |
| signalsB | Search the waveform's design, scopes (instances) and signals, by a regex in slashes found anywhere in the path, as grep does ( |
| user_viewB | What the user is looking at in their wtf window on this trace, worded as |
| valuesA | Values of signals from |
| viewA | Describe the workspace in words: rows, cursors with the time between them, visible range. Drawn: |
| workspaceB | Set up the whole workspace in one call: rows, cursors, range, decodes ( |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 15 tools
The analysis tools (find, values, records, signals) are clearly separated by query type, and view/render/present/user_view describe distinct outputs. However, workspace, view, present, info, and sessions all cluster around workspace and UI state, so the names alone leave some room for misselection.
Names are all lowercase and mostly single-word CLI-style commands, but they mix nouns and verbs unpredictably and only user_view uses an underscore. There is no consistent verb_noun pattern, so agents must rely on descriptions.
15 tools is reasonable for a rich waveform debugging workflow with trace inspection, values, edge finding, protocol decoding, and workspace management. It is slightly heavy because several tools cover related view/workspace presentation concerns.
The set covers opening traces, inspecting signals, reading values, finding events, decoding protocols, querying records, configuring workspaces, rendering, and presenting to the user. Minor gaps exist around explicit close/delete/export operations and cursor manipulation, though command and workspace partly mitigate them.