Skip to main content
Glama
key2
by key2

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.).

Related MCP server: EDA Tools MCP Server

Installation

uv pip install mcp-vcd

Claude 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 tools
get-bus-signalsA

Return the component signals of a bus defined in a .gtkw file

ParametersJSON Schema
NameRequiredDescriptionDefault
bus_nameYesName of the bus
file_nameYesPath to the .gtkw file

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
end_timeNoEnd timestamp (optional)
file_nameYesPath to the VCD file
start_timeNoStart timestamp (optional)
signal_nameYesSignal name as declared in $var

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYesPath to the .gtkw file

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
end_timeNoEnd timestamp (optional)
vcd_fileYesPath to the VCD file
gtkw_fileYesPath to the .gtkw file
start_timeNoStart timestamp (optional)
signal_nameYesSignal name

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
file_nameYesPath to the .gtkw file

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 5 tool updatesv0.2.0
    • First observedget-bus-signals
    • First observedget-signal
    • First observedget-signal-groups
    • First observedget-signal-with-format
    • First observedload-gtkw

TDQS

A3.5/5.0
Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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.
    14
    BSD 3-Clause
  • F
    license
    Not graded
    quality
    B
    maintenance
    An 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
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server for reading and querying FSDB waveform files, enabling AI assistants to browse hierarchy, search signals, and extract waveform data with value changes.
    13
    MIT

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/key2/mcp-vcd'

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