mcp-vcd
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-vcdshow me the value changes for signal clk from 100 to 200 ns"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 all value changes of a signal from a VCD file. Supports optional |
| Parse a |
| Return the group hierarchy defined in a |
| Return the component signals of a named bus from a |
| Get signal values from a VCD, formatted according to |
Related MCP server: EDA Tools MCP Server
Installation
uv pip install mcp-vcdClaude Desktop
Add to your claude_desktop_config.json:
"mcpServers": {
"mcp-vcd": {
"command": "uv",
"args": [
"run",
"mcp-vcd"
]
}
}See Anthropic's MCP documentation for more info.
License
MIT
Available Tools
5 toolsget-bus-signalsA
Return the component signals of a bus defined in a .gtkw file
| Name | Required | Description | Default |
|---|---|---|---|
| bus_name | Yes | Name of the bus | |
| file_name | Yes | Path to the .gtkw file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. The verb 'Return' implies a read-only operation, but the description does not elaborate on possible side effects, error handling, or return format. It adds the useful context that it works with a .gtkw file, but lacks deeper behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key information. Every word contributes meaning, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters and no output schema, the description is adequate. It clearly states the tool's purpose and context. It does not explain return values or error scenarios, but given the low complexity, it is sufficiently complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (bus_name and file_name) are fully described in the schema. The tool description does not add any additional meaning or constraints beyond what the schema already provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb 'Return' and the resource 'component signals of a bus defined in a .gtkw file'. It effectively distinguishes from sibling tools like get-signal (single signal) and get-signal-groups (groups) by focusing on bus components within a .gtkw file.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: to get component signals of a bus from a .gtkw file. It does not explicitly mention when not to use it or name alternatives, but the tool's specific scope makes this implicit. No exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-signalB
Get all value changes of a signal in a VCD file
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | End timestamp (optional) | |
| file_name | Yes | Path to the VCD file | |
| start_time | No | Start timestamp (optional) | |
| signal_name | Yes | Signal name as declared in $var |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only indicates a read operation ('Get') but does not explain the output format, the meaning of listed value changes, whether time range filtering is applied, or any other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that immediately states the tool's purpose. Every word is meaningful, with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description is insufficiently complete. It does not mention the optional time filter supported by start_time/end_time, nor does it describe the returned data structure, leaving the agent without key context for a tool with moderate complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with each parameter already documented (file_name, signal_name, start_time, end_time). The description adds no additional parameter semantics beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' and identifies the resource as 'all value changes of a signal' within a 'VCD file', clearly distinguishing it from sibling tools like get-bus-signals and get-signal-with-format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as get-signal-with-format or get-bus-signals. It only states what the tool does, with no exclusions or contextual hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-signal-groupsB
Return the group hierarchy from a parsed .gtkw file
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | Path to the .gtkw file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior, but it only provides a one-line statement. It does not mention side effects, error handling, or whether the tool requires prior parsing, leaving the agent with limited transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action and resource. It is concise and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description does not explain the structure of the returned group hierarchy. It leaves ambiguity about the return format and edge cases, which is a significant gap given the absence of annotations and output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter file_name with a clear description. The tool description reinforces the path concept but adds no additional parameter-specific meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (Return) and resource (group hierarchy from a .gtkw file). It distinguishes itself from sibling tools like get-signal and get-bus-signals by focusing specifically on the group hierarchy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool vs alternatives. It does not mention prerequisites such as requiring the file to be parsed first via load-gtkw, nor does it state any exclusions or preferred contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-signal-with-formatC
Get signal values from a VCD file, formatted according to .gtkw display hints
| Name | Required | Description | Default |
|---|---|---|---|
| end_time | No | End timestamp (optional) | |
| vcd_file | Yes | Path to the VCD file | |
| gtkw_file | Yes | Path to the .gtkw file | |
| start_time | No | Start timestamp (optional) | |
| signal_name | Yes | Signal name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must carry behavioral disclosure. It reveals that output is formatted according to a .gtkw file, but does not explain what that formatting entails, whether the operation is read-only, how start/end_time affect results, or error/return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence that is front-loaded with the key action and resource. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal: no output schema, no annotations, and no explanation of the formatting behavior or return format. While the schema covers parameters, the tool's core promise ('formatted according to .gtkw display hints') is left undefined, making it insufficient for reliable selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All five parameters have schema descriptions (100% coverage), so the baseline is 3. The tool description adds no additional meaning beyond the schema; gtkw_file and vcd_file are understandable but no further semantics are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('signal values from a VCD file'), and adds a distinguishing formatting qualifier ('.gtkw display hints'). However, it does not explicitly contrast with the sibling tool 'get-signal', so the differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool over alternatives like 'get-signal' or 'get-bus-signals' is provided. The description implies use when formatted output is desired, but gives no exclusions or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
load-gtkwB
Parse a .gtkw file and return its full structure (metadata, signals, buses, groups)
| Name | Required | Description | Default |
|---|---|---|---|
| file_name | Yes | Path to the .gtkw file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it parses and returns the structure, which implies a read-only operation, but it does not disclose potential errors, file existence requirements, or any side effects. The behavioral contract is minimally addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently communicates the tool's purpose and the components of the returned structure. There is no filler, and it is front-loaded with the action and resource. It is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists the returned components (metadata, signals, buses, groups), which gives a general idea of the output, but there is no output schema and no mention of error scenarios or the tool's role relative to siblings. For a tool with no output schema, it should more explicitly describe the return format or how it fits into the larger workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage of the only parameter (file_name), so the baseline is 3. The tool description adds no extra meaning beyond the schema's 'Path to the .gtkw file', such as format expectations or error handling. It neither enhances nor detracts from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Parse a .gtkw file and return its full structure' with a specific verb and resource. It distinguishes itself from sibling tools that retrieve specific signals, groups, or buses by returning the complete file structure. This is unambiguous and well-scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the sibling tools. It does not mention that this load might precede get-signal or get-bus-signals, nor does it offer any alternative context. There is no explicit 'when to use' or 'when not to use' information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.2.0- First observed
get-bus-signals - First observed
get-signal - First observed
get-signal-groups - First observed
get-signal-with-format - First observed
load-gtkw
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Give your AI assistant access to real Helm chart data. No more hallucinated values.yaml files.
Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…
Gives your AI assistant persistent memory and intelligence about your work patterns.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables analysis of RTL waveform files (VCD, FST) through WAL (Waveform Analysis Language). Supports signal inspection, transition extraction, and advanced waveform queries for hardware design verification.14BSD 3-Clause
- FlicenseAqualityDmaintenanceEnables AI assistants to perform Electronic Design Automation (EDA) tasks including Verilog synthesis, simulation, ASIC design flows, and waveform analysis through a unified interface.6-
- FlicenseNot gradedqualityBmaintenanceAn MCP server that provides AI assistants with a persistent, sandboxed Python environment for waveform analysis, enabling loading and manipulation of VCD/FST/FSDB files and temporal pattern matching.9-
- AlicenseNot gradedqualityCmaintenanceAn MCP server for reading and querying FSDB waveform files, enabling AI assistants to browse hierarchy, search signals, and extract waveform data with value changes.13MIT
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/key2/mcp-vcd'
If you have feedback or need assistance with the MCP directory API, please join our Discord server