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 patternpage(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 patternpage(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 namepage(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 identifieridentifier_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> tagspage(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 namepage(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 separatordetail_level(string, optional) - Controls how much information about the identifier is provided. Supported values:basic,standardandfull. Defaults tostandardfile_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 itpage(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 searchedinstance_name_filter(string, optional) - Name of the design instance(s) to search forport_name_filter(string, optional) - Name of the port or parameter that the design instance(s) being searched must containsearch_max_depth(number, optional) - Maximum number of levels to search in the design hierarchy. Default value is 6page(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 searchedcomponent_name_filter(string, optional) - Name of the verification component(s) to search forport_name_filter(string, optional) - Name of the TLM port that the verification component(s) being searched must containsearch_max_depth(number, optional) - Maximum number of levels to search in the verification hierarchy. Default value is 6page(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 pathpage(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 pathsinclude_warnings(boolean, optional) - Include warnings in resultsinclude_linting_problems(boolean, optional) - Include Verissimo linting problems in resultspage(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 forfile_path(string, optional) - File path where the field is locatedpage(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 fileseverity(object, optional) - Filter by UVM severity rangemin(string, optional) - Minimum severity (inclusive). Supported values:UVM_INFO,UVM_WARNING,UVM_ERROR,UVM_FATALmax(string, optional) - Maximum severity (inclusive). Supported values:UVM_INFO,UVM_WARNING,UVM_ERROR,UVM_FATAL
timestamp(object, optional) - Filter by simulation time intervalmin(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 filemin(number, optional) - Minimum line number (inclusive)max(number, optional) - Maximum line number (inclusive)
file_path(string, optional) - Filter by reporting source file pathfile_line(object, optional) - Filter by line number range from the reporting source filemin(number, optional) - Minimum line number (inclusive)max(number, optional) - Maximum line number (inclusive)
message_id(string, optional) - Filter by UVM message IDreport_object_name(string, optional) - Filter by reporting object name. Supports regexmessage(string, optional) - Filter by log message body. Supports regexsort_by(string, optional) - Field to sort results by. Prepend-for descending order. Supported values:log_line,timestamp,severity,file_line. Defaults tolog_lineentry_structure(string, optional) - Filter by message template name. Prepend!for inequality. Supported values:Default UVM message,N/Apage(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 resultschanged_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 acceptedforce(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 between0and10, where0means search only thestart_instance_path. Defaults to6page(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 projectsargumentsFile(string, optional) - Path to a.argsor.ffile containing runtime elaboration arguments. Takes priority overargumentsarguments(string, optional) - Manual runtime arguments (e.g.+UVM_VERBOSITY=UVM_MEDIUM). Only use this if no.args/.ffile is foundisDebug(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_frameframeIndex(number, optional) - Set the frame in which the action will be executed. Defaults to0(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,tracepointfile(string) - The absolute file path where the breakpoint should be set or removedline(number) - The line number where the breakpoint should be set or removed. For watchpoints, use the declaration linecondition(string, optional) - The condition expression for conditional breakpointstraceMessage(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 pathstart_line(number, optional) - Starting line number. Lines start at 1end_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 pathsearch_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 pathcontent(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 taskprompt(string) - The complete task prompt to send as the first user messagetools(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 executeddescription(string) - Short description of what the command doestimeout(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:
VS Code:
- 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.