Skip to main content
Glama
lazyverilog

LazyVerilog MCP

Official
by lazyverilog

find_references

Lists all project-wide references to a SystemVerilog symbol at a given file and line, helping you trace usage and navigate code during edits.

Instructions

List every reference to symbol (on line of file) across the project.

Input Schema

NameRequiredDescriptionDefault
fileYesSystemVerilog file path, absolute or relative to the workspace root
lineYes1-based line number
symbolYesSymbol text as written on that line
occurrenceNoWhich occurrence on the line, if the symbol appears more than once (default 1)
include_declarationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.2

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses project-wide scope (not file-local), but never states that it is a read-only operation, what the result set looks like, or whether the declaration itself is included by default.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with zero filler and the scope qualifier placed at the end where it reads naturally. It is tight, though arguably too terse for a 5-parameter tool.

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?

No output schema and no annotations, so the description is the only source of behavioral context, and it omits return shape and the meaning of `include_declaration`. Adequate to call the tool, but not complete for interpreting results.

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 80%, so the schema largely documents the parameters, and the description merely restates the file/line/symbol mapping. It adds nothing about `occurrence` or the undocumented `include_declaration`, which are the parts an agent would most need explained.

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?

Names a specific verb and resource ('List every reference to `symbol`') and anchors it to a location. An agent can distinguish it from goto_definition (which finds the declaration) and rename_symbol, though it never states that contrast explicitly.

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?

There is no when-to-use or when-not-to-use guidance and no mention of alternatives such as goto_definition, document_symbols or rename_symbol. The only usable hint is the implicit 'across the project' scope, leaving the agent to infer that this is a find-usages operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.