Tools

The DVT MCP Server offers a collection of specialized tools designed to provide AI agents with compiler-backed project information.

The following section lists all available tools, including their parameters and brief descriptions.

dvt_get_symbol_definitions

Retrieves the full source code definitions of symbols (e.g., classes, modules, interfaces).

Parameters:
  • symbol_query (string) - Symbol name or wildcard pattern

  • page (number, optional) - Page number to request. Pages start at 1

dvt_get_symbol_locations

Finds where symbols are defined in the project (file path and line range).

Parameters:
  • symbol_query (string) - Symbol name or wildcard pattern

  • page (number, optional) - Page number to request. Pages start at 1

dvt_get_symbol_references

Retrieves all usages of a symbol across the project.

Parameters:
  • symbol_name (string) - Exact symbol name

  • page (number, optional) - Page number to request. Pages start at 1

dvt_get_identifier_references

Retrieves all usages of a specific identifier (e.g., variable, function parameter) across the project.

Parameters:
  • file_path (string) - File containing the identifier

  • identifier_surrounding_code (string) - One or more lines that can be uniquely located in the file and contain the identifier to search references for, with the identifier marked by <IDENTIFIER> and </IDENTIFIER> tags

  • page (number, optional) - Page number to request. Pages start at 1

dvt_get_symbol_dependencies

Retrieves source code definitions of all symbols that a given symbol depends on.

Parameters:
  • symbol_name (string) - Exact symbol name

  • page (number, optional) - Page number to request. Pages start at 1

dvt_get_identifier_info

Retrieves an overview of a specific identifier (module, class, field, function, struct, signal, etc).

Parameters:
  • identifier_name (string) - The name of the identifier to get the overview for. Supports hierarchical names, with . or :: as separator

  • detail_level (string, optional) - Controls how much information about the identifier is provided. Supported values: basic, standard and full. Defaults to standard

  • file_path (string, optional) - File path where the identifier is located

dvt_get_compiled_files

Retrieves all compiled files in the project.

Parameters:
  • filter (string, optional) - Glob pattern to include only compiled files whose paths match it

  • page (number, optional) - Page number to request. Pages start at 1

dvt_get_design_top

Retrieves the top-level design element(s) in the project.

Parameters:

None

dvt_set_design_top

Sets the top-level design element in the project.

Parameters:
  • design_top (string) - Name of the design top that is to be set

dvt_search_design_hierarchy

Retrieves elaborated design hierarchy paths of design instances that match specific filters.

Parameters:
  • start_instance_path (string) - Hierarchical path of the design instance whose subinstances are to be searched

  • instance_name_filter (string, optional) - Name of the design instance(s) to search for

  • port_name_filter (string, optional) - Name of the port or parameter that the design instance(s) being searched must contain

  • search_max_depth (number, optional) - Maximum number of levels to search in the design hierarchy. Default value is 6

  • page (number, optional) - Page number to request. Pages start at 1

dvt_get_verification_top

Gets the top-level UVM component.

Parameters:

None

dvt_set_verification_top

Sets the top-level UVM component.

Parameters:
  • verification_top (string) - The name of the UVM verification top element to be set

dvt_search_verification_hierarchy

Retrieves verification hierarchy paths of verification components that match specific filters.

Parameters:
  • start_component_path (string) - Hierarchical path of the verification component whose subcomponents are to be searched

  • component_name_filter (string, optional) - Name of the verification component(s) to search for

  • port_name_filter (string, optional) - Name of the TLM port that the verification component(s) being searched must contain

  • search_max_depth (number, optional) - Maximum number of levels to search in the verification hierarchy. Default value is 6

  • page (number, optional) - Page number to request. Pages start at 1

dvt_get_file_identifiers

Lists all identifiers in a file, grouped by line.

Parameters:
  • file_path (string) - File name or path

  • page (number, optional) - Page number to request. Pages start at 1

dvt_get_problems

Retrieves compilation problems (errors/warnings) for a given list of files.

Parameters:
  • file_paths (array) - File names or paths

  • include_warnings (boolean, optional) - Include warnings in results

  • include_linting_problems (boolean, optional) - Include Verissimo linting problems in results

  • page (number, optional) - Page number to request. Pages start at 1

dvt_get_field_constraints

Retrieves the constraints associated with a given random field.

Parameters:
  • field_name (string) - The hierarchical name of the random field to get constraints for

  • file_path (string, optional) - File path where the field is located

  • page (number, optional) - Page number to request. Pages start at 1

dvt_build_project

Performs a full DVT project build, retrieving up-to-date information about possible compilation problems.

Parameters:
  • include_warnings (boolean) - Include warnings in results

dvt_get_simulation_log_messages

Retrieves a list of log messages matching specific filters from a simulation log.

Parameters:
  • log_file_path (string) - Absolute path of the simulation log file

  • severity (object, optional) - Filter by UVM severity range

    • min (string, optional) - Minimum severity (inclusive). Supported values: UVM_INFO, UVM_WARNING, UVM_ERROR, UVM_FATAL

    • max (string, optional) - Maximum severity (inclusive). Supported values: UVM_INFO, UVM_WARNING, UVM_ERROR, UVM_FATAL

  • timestamp (object, optional) - Filter by simulation time interval

    • min (number, optional) - Start of the time range (inclusive)

    • max (number, optional) - End of the time range (inclusive)

  • timeunit (string, optional) - Filter by simulation time unit (e.g. ps, ns, us, ms)

  • log_line (object, optional) - Filter by line number range within the simulation log file

    • min (number, optional) - Minimum line number (inclusive)

    • max (number, optional) - Maximum line number (inclusive)

  • file_path (string, optional) - Filter by reporting source file path

  • file_line (object, optional) - Filter by line number range from the reporting source file

    • min (number, optional) - Minimum line number (inclusive)

    • max (number, optional) - Maximum line number (inclusive)

  • message_id (string, optional) - Filter by UVM message ID

  • report_object_name (string, optional) - Filter by reporting object name. Supports regex

  • message (string, optional) - Filter by log message body. Supports regex

  • sort_by (string, optional) - Field to sort results by. Prepend - for descending order. Supported values: log_line, timestamp, severity, file_line. Defaults to log_line

  • entry_structure (string, optional) - Filter by message template name. Prepend ! for inequality. Supported values: Default UVM message, N/A

  • page (number, optional) - Page number to request. Pages start at 1.

dvt_compile_changed_files (available only for CLI AI agents)

Compiles a list of files using the DVT compiler, retrieving up-to-date information about possible compilation problems.

Parameters:
  • include_warnings (boolean) - Include warnings in results

  • changed_files (array) - Files to be compiled

dvt_get_cursor_scope (available only for DVT AI Assistant and GUI AI agents)

Retrieves information at the current cursor position including file path and line, type scope, design hierarchy scope, and verification hierarchy scope.

Parameters:

None

dvt_waveform_load_file

Loads a waveform dump file (.dst, .vcd, .wcfg, .trn, .fsdb or any other format).

Parameters:
  • waveform_file (string) - Absolute or relative path to the waveform dump file. Bare filenames are not accepted

  • force (boolean) - When true, loads the waveform even if another waveform is already loaded, overwriting existing data. Set to true when switching to a different waveform or when the current waveform is outdated. When false, skips loading if a waveform is already loaded

dvt_waveform_search_signals_paths

Retrieves waveform design hierarchy paths of signals that match specific filters.

Parameters:
  • start_instance_path (string, optional) - Hierarchical path of the design instance whose subinstances are to be searched. Path segments are separated by .

  • instance_name_filter (string, optional) - Name of the design instance(s) to search for. Supports * and ? globbing. Defaults to *

  • signal_name_filter (string, optional) - Name of the signal(s) to search for. Can be a path of segments separated by .. Supports * and ? globbing. Defaults to *

  • search_max_depth (number, optional) - Maximum number of levels to search in the design hierarchy. Should be between 0 and 10, where 0 means search only the start_instance_path. Defaults to 6

  • page (number, optional) - Page number to request. Pages start at 1

dvt_waveform_get_signal_value_changes

Retrieves all value changes by time for a given signal from the loaded waveform dump file.

Parameters:
  • signal_path (string) - Hierarchical name of the signal, starting from a top-level design element. Segments are separated by .

  • start_timestamp (number, optional) - Timestamp from which to start listing changes (inclusive). Omit or set to null to start from the beginning of the waveform. The timestamp unit matches the waveform file’s time unit (e.g. ps, ns, us, ms)

  • end_timestamp (number, optional) - Timestamp to which to stop listing changes (inclusive). Omit or set to null to include all changes until the end of the waveform. The timestamp unit matches the waveform file’s time unit (e.g. ps, ns, us, ms)

  • page (number, optional) - Page number to request. Pages start at 1

dvt_start_runtime_elaboration

Starts the Runtime Elaboration for the SystemVerilog project currently loaded in DVT MCP.

Parameters:
  • uvmTestName (string) - The UVM test name to run (e.g. my_test). This is mandatory for UVM projects

  • argumentsFile (string, optional) - Path to a .args or .f file containing runtime elaboration arguments. Takes priority over arguments

  • arguments (string, optional) - Manual runtime arguments (e.g. +UVM_VERBOSITY=UVM_MEDIUM). Only use this if no .args/.f file is found

  • isDebug (boolean, optional) - Start runtime elaboration in debug mode

dvt_stop_runtime_elaboration

Stops the currently active Runtime Elaboration session.

Parameters:

None

dvt_debugger_wait (available only for DVT AI Assistant and GUI AI agents)

Waits for the currently running SystemVerilog Runtime Elaboration to hit a breakpoint or finish.

Parameters:

None

dvt_debugger_stepping (available only for DVT AI Assistant and GUI AI agents)

Controls the execution flow of the suspended SystemVerilog Runtime Elaboration debugger.

Parameters:
  • action (string) - The debug step action to perform. Supported values: step_over, step_into, step_return, continue, drop_to_frame

  • frameIndex (number, optional) - Set the frame in which the action will be executed. Defaults to 0 (the top of the call stack)

dvt_debugger_evaluate_expression (available only for DVT AI Assistant and GUI AI agents)

Evaluates a SystemVerilog expression in the context of the current debugger suspension.

Parameters:
  • expression (string) - The SystemVerilog expression to evaluate (e.g. my_var, my_array[5], counter + offset, obj.get_value())

dvt_debugger_toggle_breakpoint (available only for DVT AI Assistant and GUI AI agents)

Toggles a breakpoint, watchpoint, or tracepoint in the SystemVerilog project.

Parameters:
  • type (string) - The type of breakpoint to set. Supported values: breakpoint, watchpoint, tracepoint

  • file (string) - The absolute file path where the breakpoint should be set or removed

  • line (number) - The line number where the breakpoint should be set or removed. For watchpoints, use the declaration line

  • condition (string, optional) - The condition expression for conditional breakpoints

  • traceMessage (string, optional) - The message to log for tracepoints (only for tracepoint type)

dvt_debugger_get_active_breakpoints (available only for DVT AI Assistant and GUI AI agents)

Retrieves a list of all currently active breakpoints, watchpoints, and tracepoints in the SystemVerilog project.

Parameters:

None

read_file (available only for DVT AI Assistant)

Reads and returns the content of a given file.

Parameters:
  • file_path (string) - File name or path

  • start_line (number, optional) - Starting line number. Lines start at 1

  • end_line (number, optional) - Ending line number. Lines start at 1

edit_file (available only for DVT AI Assistant)

Edits specific sections of a given file using search/replace blocks.

Parameters:
  • file_path (string) - File name or path

  • search_replace_blocks (array) - One or more search/replace blocks

write_file (available only for DVT AI Assistant)

Writes content to a file (overwrites existing file or creates new file).

Parameters:
  • file_path (string) - File name or path

  • content (string) - The content to write in the file

get_open_files (available only for DVT AI Assistant)

Lists all currently open files in the editor, marking the active one.

Parameters:

None

run_agent (available only for DVT AI Assistant)

Launches a new agent to handle complex, multi-step tasks autonomously.

Parameters:
  • description (string) - Short description of the agent’s task

  • prompt (string) - The complete task prompt to send as the first user message

  • tools (array, optional) - Which tools to make available to the agent. Defaults to all tools except ‘run_agent’

  • agent_name (string, optional) - Name of a built-in agent to use. Supported values: ‘Plan’, ‘Explore’, ‘Write Code’

bash (available only for DVT AI Assistant, not available on Windows)

Executes a given bash command and returns its output.

Parameters:
  • command (string) - The bash command to be executed

  • description (string) - Short description of what the command does

  • timeout (number, optional) - Maximum time (in milliseconds) allowed for command execution before it is terminated

There are two modes in which this tool can operate:

  • Restricted mode (default): Only a predefined list of commands can be run. The command is first simulated in a virtual filesystem, with all the filesystem modifications displayed to the user for approval before any real execution occurs. Reading symbolic links is restricted to the same top-level directory under root.

  • Unrestricted mode: Any command or script can be executed. The command is NOT simulated first and the user cannot validate filesystem modification before its execution.

You can toggle between the two modes in the Configure Tools panel.

Some commands that run by default in Restricted mode may be slower that native binaries. You can configure them to run in Unrestricted mode (when it is enabled), using the following preference:

  • Eclipse: DVT ‣ AI Assistant ‣ Bash Tool Unrestricted Commands

  • VS Code: DVT ‣ AI ‣ Bash Tool Unrestricted Commands

load_skill (available only for DVT AI Assistant)

Loads the full content of an agent skill by name.

Parameters:
  • skill_name (string) - The exact name of the agent skill to load

Note

When the -project argument is not provided to dvt_mcp.sh, an additional project_path argument, containing the absolute path of the project, is required for every tool.

This helps the MCP Connector determine the project it needs to retrieve information about.