waver-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WAVE_MAX_ROWS | No | Deprecated fallback for WAVE_MCP_MAX_ROWS. WAVE_MCP_MAX_ROWS takes precedence when both are set. | 1000 |
| WAVE_MAX_FILES | No | Deprecated fallback for WAVE_MCP_MAX_FILES. WAVE_MCP_MAX_FILES takes precedence when both are set. | 4 |
| WAVE_MCP_MAX_ROWS | No | Default max_changes for the waver_values tool. Defaults to 1000. | 1000 |
| WAVE_MCP_MAX_FILES | No | Maximum number of open waveform files in the LRU cache. Defaults to 4. | 4 |
| WAVE_MAX_SEARCH_RESULTS | No | Deprecated fallback for WAVE_MCP_MAX_SEARCH_RESULTS. WAVE_MCP_MAX_SEARCH_RESULTS takes precedence when both are set. | 100 |
| WAVE_MCP_MAX_SEARCH_RESULTS | No | Default 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
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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 |
| 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 |
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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