Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WAVE_MAX_ROWSNoDeprecated fallback for WAVE_MCP_MAX_ROWS. WAVE_MCP_MAX_ROWS takes precedence when both are set.1000
WAVE_MAX_FILESNoDeprecated fallback for WAVE_MCP_MAX_FILES. WAVE_MCP_MAX_FILES takes precedence when both are set.4
WAVE_MCP_MAX_ROWSNoDefault max_changes for the waver_values tool. Defaults to 1000.1000
WAVE_MCP_MAX_FILESNoMaximum number of open waveform files in the LRU cache. Defaults to 4.4
WAVE_MAX_SEARCH_RESULTSNoDeprecated fallback for WAVE_MCP_MAX_SEARCH_RESULTS. WAVE_MCP_MAX_SEARCH_RESULTS takes precedence when both are set.100
WAVE_MCP_MAX_SEARCH_RESULTSNoDefault number of signal search results returned by waver_search. Defaults to 100.100

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
waver_openA

What is in this waveform file?

Answers "what's in this FST? how long did the simulation run? what's the timescale?". Call it first for any file you have not inspected yet; the timescale and duration it reports frame every window you pass to the other waver_* tools. Use waver_search to list the individual signals.

waver_searchA

Which signals are in this waveform file?

Answers "what signals does this FST contain? is there a signal named X?". Pass a case-insensitive substring of pattern to narrow the list on large designs. The names shown are what you pass to waver_values, waver_analyze, waver_latency, waver_find and waver_plot — full names or unique suffixes. Header-only: nothing is decoded, so this is fast even on big files.

waver_valuesA

What values did this signal have in this time window?

Answers "what did do between A and B?". Times are human-readable ('10ns', '1.5us') or integer file ticks; the window is [start, end) — omit end to run to the signal's last change. Wide (>= 32 bit) values are shown in hex; X/Z samples and enum/ string values are kept as-is. For statistics instead of a change list, use waver_analyze; for one time point, waver_value_at.

waver_value_atA

What were these signals at this exact time?

Answers "what was at 10ns?" (batch: pass several signals in one call). Returns the value held at that instant (the last change at or before the time). Time is human-readable ('10ns') or integer file ticks. If the time is past the end of the file, the last recorded value is returned and flagged. For a whole window of changes, use waver_values.

waver_analyzeA

How fast, how long, how much is this signal?

Answers "what's the period / frequency / duty cycle of ?", "how much time is in X/Z?", "what's the min/max/mean of this real?", "which values does take and how often?". This is the statistics tool: it summarizes a window instead of listing changes. Times are human-readable ('10ns') or integer ticks; the window is [start, end) — omit end to run to the signal's last change. For a raw change list use waver_values; for edge-to-edge timing between two signals use waver_latency.

waver_latencyA

How long from A's edge to B's edge?

Answers "what's the propagation delay from to ?", "how long after 's rising edge does rise?". For every edge of A in [start, end) it finds the first edge of B at or after that moment and reports min/max/mean/p50/stddev over all such pairs, plus the first and last pairs. edge='rise' needs both signals to be binary (0/1); use edge='any' for any change. Times are human-readable or ticks. For one signal's own timing use waver_analyze.

waver_findA

When was the signal equal to this value?

Answers "when did become ?", "when is the bus in X?", "when does the FSM enter ?". Int signals take decimal or hex ('0x1f'); string/enum signals match case-insensitively; on logic vectors 'x' or 'z' matches an all-X/all-Z bus. Returns each interval the value is held, with its duration, from start onwards. For a single time point use waver_value_at; for statistics use waver_analyze.

waver_plotA

Show me the waveforms: a PNG plot of these signals in this window.

Answers "show me <signal(s)> around time A" / "what does the bus look like here?". One lane per signal: binary signals step between 0 and 1, small numeric signals draw as a line, and wide buses plus string/enum signals show their held values as text labels with X/Z spans shaded. Times are human-readable ('10ns', '1.5us') or integer file ticks; the window is [start, end) — omit end to run to the end of the file. Dense signals are decimated to ~10000 points so large files stay fast. Returns the plot as an image plus a text summary; the PNG is also written to a temp file whose path is in the summary. For statistics use waver_analyze; for exact values use waver_values.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ru551n/waver-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server