Skip to main content
Glama

Xcelium MCP Server

MCP (Model Context Protocol) server that enables AI assistants to control Cadence Xcelium/SimVision in real time via a Tcl socket bridge. Supports automated RTL/gate-level debugging with watchpoints, binary search, checkpoints, and SHM probe control.

Architecture

┌──────────────┐  stdio   ┌───────────────────┐  TCP    ┌─────────────────────┐
│ AI Assistant  │ <------> │ Python FastMCP     │ <-----> │ mcp_bridge.tcl      │
│ (Claude, etc) │          │ Server (25 tools)  │ :9876  │ inside xmsim/SV     │
└──────────────┘          └────────────────────┘        │ (13 meta commands)  │
                                                         └─────────────────────┘

Related MCP server: EDA Tools MCP Server

Installation

pip install -e .

# With screenshot support (requires ghostscript)
pip install -e ".[screenshot]"

# With dev dependencies
pip install -e ".[dev]"

Setup

1. Simulator Side (Linux server)

Load the Tcl bridge when launching xmsim or SimVision:

# Batch mode (no GUI license needed)
xmsim -64bit -input mcp_bridge.tcl top

# SimVision GUI mode
simvision -64bit -input mcp_bridge.tcl dump.shm

The bridge listens on TCP port 9876 by default. Override with:

export MCP_BRIDGE_PORT=9877

Bridge signals readiness by creating /tmp/mcp_bridge_ready_9876.

2. AI Tool Configuration

Claude Code (~/.claude.json):

{
  "mcpServers": {
    "xcelium-mcp": {
      "type": "stdio",
      "command": "ssh",
      "args": ["-o", "BatchMode=yes", "sim-server", "/path/to/xcelium-mcp"]
    }
  }
}

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "xcelium": {
      "command": "xcelium-mcp"
    }
  }
}

3. SSH Tunnel (remote server)

# Forward port 9876 in ~/.ssh/config
Host sim-server
    LocalForward 9876 localhost:9876

Available Tools (25)

Connection & Control (1-7)

Tool

Description

connect_simulator

Connect to bridge (host, port, timeout)

disconnect_simulator

Disconnect (for reconnection only)

sim_run

Run simulation with duration and timeout (default 600s for gate sim)

sim_stop

Stop a running simulation

sim_restart

Restart from time 0

sim_status

Get current time, scope, state

set_breakpoint

Set conditional breakpoint

Signal Inspection (8-13)

Tool

Description

get_signal_value

Read current signal values

describe_signal

Get signal type, width, direction

find_drivers

Find all drivers (X/Z debugging)

list_signals

List signals in a scope

deposit_value

Force a value onto a signal

release_signal

Release a deposited signal

Waveform (14-16)

Tool

Description

waveform_add_signals

Add signals to waveform viewer

waveform_zoom

Set waveform time range

cursor_set

Set waveform cursor position

Debug & Screenshot (17-18)

Tool

Description

take_waveform_screenshot

Capture waveform as PNG

run_debugger_mode

Full debug snapshot with checklist

Advanced Debug (19-25)

Tool

Description

shutdown_simulator

Safe shutdown preserving SHM waveform data

watch_signal

Set watchpoint to stop at exact clock edge when condition is true

watch_clear

Clear watchpoints (specific ID or all)

probe_control

Enable/disable SHM recording, optionally per scope

save_checkpoint

Save simulation state for later restoration

restore_checkpoint

Restore to a saved checkpoint

bisect_signal

Binary search to find when a condition first becomes true

Debugging Workflows

Quick Bug Hunt (watchpoint)

connect_simulator()
watch_signal(signal="top.dut.r_state", op="==", value="4'hF")
sim_run(duration="100us")          # stops at exact clock edge
get_signal_value(signals=["top.dut.r_state", "top.dut.r_data"])
watch_clear()
shutdown_simulator()               # always use this, never disconnect

Automated Time Search (bisect)

connect_simulator()
bisect_signal(
    signal="top.dut.r_error", op="==", value="1'b1",
    start_ns=0, end_ns=1000000,    # 0-1ms range
    precision_ns=100                # 100ns precision
)
# Returns iteration log + final narrowed time range
shutdown_simulator()

Long Simulation with SHM Control

connect_simulator()
probe_control(mode="disable")       # no SHM recording
sim_run(duration="50ms")            # skip uninteresting region
probe_control(mode="enable")        # start recording
sim_run(duration="10ms")            # capture region of interest
shutdown_simulator()

Checkpoint & Replay

connect_simulator()
sim_run(duration="10ms")
save_checkpoint(name="before_bug")
sim_run(duration="5ms")             # analyze bug region
restore_checkpoint(name="before_bug")  # go back
sim_run(duration="5ms")             # try different analysis
shutdown_simulator()

Key Rules

  1. Always specify duration in sim_run to prevent hang on infinite loops

  2. Always use shutdown_simulator to end sessions (preserves SHM data)

  3. Never use disconnect_simulator to end sessions (SHM not flushed)

  4. Gate-level sim: increase timeout with sim_run(timeout=1800) if needed

  5. Bridge ready: check /tmp/mcp_bridge_ready_<port> file instead of TCP ping

Tcl Bridge Meta Commands

The bridge (mcp_bridge.tcl) accepts these meta commands over TCP:

Command

Description

__PING__

Health check

__QUIT__

Close connection

__SCREENSHOT__ <path>

Capture waveform to PostScript

__SHUTDOWN__

Safe shutdown (database close + finish)

__RUN_ASYNC__ <dur>

Non-blocking sim run

__PROGRESS__

Query sim time during async run

__WATCH__ <sig> <op> <val>

Set signal watchpoint

__WATCH_LIST__

List active watchpoints

__WATCH_CLEAR__ <id|all>

Delete watchpoints

__PROBE_CONTROL__ <mode> [scope]

Toggle SHM recording

__SAVE__ <name>

Save checkpoint

__RESTORE__ <name>

Restore checkpoint

__BISECT__ <sig> <op> <val> <start> <end> [precision]

Binary search

Any other input is evaluated as a raw Tcl/SimVision command.

Testing

pytest tests/

Requirements

  • Python >= 3.10

  • mcp >= 1.0.0

  • xmsim or SimVision (Cadence Xcelium) with Tcl console

  • ghostscript (optional, for EPS to PNG screenshot conversion)

License

MIT

Available Tools

25 tools
bisect_signalA

Find when a signal condition first becomes true using automated binary search.

Internally saves checkpoints and repeatedly restores/runs with watchpoints to narrow down the exact time. Returns iteration log and final time range.

Args: signal: Full hierarchical signal path. op: Comparison operator (e.g. "=="). value: Target value (e.g. "8'h11"). start_ns: Start of search range in nanoseconds. end_ns: End of search range in nanoseconds. precision_ns: Stop when range is narrower than this (default 1000ns).

ParametersJSON Schema
NameRequiredDescriptionDefault
signalYes
opYes
valueYes
start_nsYes
end_nsYes
precision_nsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full disclosure burden. It admirably explains the internal mechanism (checkpoint/restore cycles with watchpoints) and return format ('iteration log and final time range'). However, it omits whether the simulation state is restored to original or left at the found time upon completion, and whether the operation is blocking.

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 front-loaded with the core purpose in the first sentence. Subsequent paragraphs logically flow from mechanism to parameters. Every sentence adds value beyond the structured schema; there is no redundancy or filler. The Args list format is efficient for the missing schema documentation.

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 complex 6-parameter tool with zero annotations, the description adequately covers the operational mechanism, parameter semantics, and return structure (sufficient since output schema exists). Minor gap: it lacks mention of error conditions, permission requirements, or the simulator state post-execution (restored vs. positioned at result).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given 0% schema description coverage (titles only), the Args section fully compensates by providing semantic meaning for all 6 parameters. It includes critical context like units (nanoseconds), format examples ('8'h11'), hierarchical path guidance ('Full hierarchical signal path'), and default value documentation for precision_ns.

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 opens with a specific verb-resource pair ('Find when a signal condition...') and precisely defines the scope (temporal binary search). It clearly distinguishes from siblings like get_signal_value (point-in-time) and watch_signal (continuous monitoring) by emphasizing 'automated binary search' over a time range.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the mechanism explanation ('narrow down the exact time'), but lacks explicit guidance on when to prefer this over alternatives like watch_signal or manual stepping. It does not state prerequisites (e.g., requiring an active simulation) or when-not-to-use conditions.

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

connect_simulatorA

Connect to a SimVision instance running mcp_bridge.tcl.

Args: host: SimVision host (use localhost with SSH tunnel for remote). port: TCP port of the Tcl bridge (default 9876). timeout: Connection timeout in seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostNolocalhost
portNo
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/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 but fails to disclose idempotency, error conditions, state persistence, or side effects of establishing the connection.

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?

Well-structured docstring format with purpose front-loaded and efficient Args section. No redundant text, though slightly informal formatting.

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?

Adequate for a connection tool with output schema present (excusing return value documentation), but lacks critical behavioral context regarding connection state management and error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Effectively compensates for 0% schema description coverage by documenting all three parameters (host, port, timeout) with meaningful semantics, including usage hints and default values.

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 action (Connect) and target resource (SimVision instance running mcp_bridge.tcl), distinguishing it from sibling tools like disconnect_simulator or sim_run.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides operational context for the host parameter (SSH tunnel recommendation), but lacks explicit guidance on when to use this tool versus disconnect_simulator or prerequisites for other simulator operations.

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

cursor_setB

Set a waveform cursor to a specific time.

Args: time: Simulation time (e.g. "50ns"). cursor_name: Cursor name (default "TimeA").

ParametersJSON Schema
NameRequiredDescriptionDefault
timeYes
cursor_nameNoTimeA

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the action but fails to disclose whether this creates a new cursor if the name doesn't exist versus moving an existing one, error conditions, or persistence behavior across simulation restarts.

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?

The description is front-loaded with the purpose statement followed by an Args block. While the Args format is slightly technical, it efficiently conveys parameter semantics without redundancy given the empty schema descriptions.

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 tool has an output schema (not shown), so return value documentation is unnecessary. However, for a state-mutating operation, the description lacks context on cursor lifecycle (creation vs. update) and interaction with the waveform viewer state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates effectively by documenting both parameters: it provides a concrete format example for `time` ('50ns') and explicitly states the default value for `cursor_name` ('TimeA').

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 clearly states the verb (set), resource (waveform cursor), and scope (specific time). It effectively distinguishes from siblings like `waveform_zoom` or `sim_run` by specifying the cursor manipulation domain, though it doesn't explicitly reference sibling tools.

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 like `waveform_zoom` or signal probes. It lacks prerequisites (e.g., whether a waveform viewer must be active) and exclusion criteria.

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

deposit_valueB

Force-deposit a value onto a signal.

Args: signal: Full hierarchical signal path. value: Value to deposit (e.g. "1'b1", "8'hFF", "0").

ParametersJSON Schema
NameRequiredDescriptionDefault
signalYes
valueYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 full burden of behavioral disclosure. The term 'Force-deposit' implies an overriding action, but the description does not explicitly state that this modifies simulation state, requires cleanup, or whether it is destructive/reversible. Value format examples partially compensate but do not address operational semantics.

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?

The description is extremely compact at three lines, with the purpose statement front-loaded and parameter details structured efficiently under 'Args:'. The dense formatting trades slight readability for precision, with zero redundant content.

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?

While the input parameters are adequately documented and an output schema exists (covering return values), the description lacks safety disclosures typical for state-modifying simulation tools. Without annotations declaring destructiveHint or readOnlyHint, the description should explicitly warn that this operation alters simulation behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description effectively compensates by providing 'Full hierarchical signal path' semantics for the signal parameter and concrete HDL literal examples ('1'b1', '8'hFF') for the value parameter. This adds critical type and format information absent from the raw schema.

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 specific domain terminology ('Force-deposit') and identifies the target resource ('signal'), distinguishing it from siblings like get_signal_value or describe_signal. However, it assumes familiarity with HDL simulation terminology without clarifying that 'force' implies overriding natural signal drivers.

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, nor does it mention prerequisites like an active simulator connection. It fails to mention the sibling 'release_signal' tool that likely reverses this operation, leaving agents unaware of the lifecycle management required.

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

describe_signalA

Get detailed information about a signal (type, width, direction).

Args: signal: Full hierarchical signal path.

ParametersJSON Schema
NameRequiredDescriptionDefault
signalYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Explains what information is retrieved (type, width, direction) but lacks safety disclosure (read-only nature) and error handling (behavior if signal path is invalid).

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?

Extremely concise with zero wasted words. Two-sentence structure front-loads purpose and documents the single parameter efficiently despite schema limitations.

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?

Adequate for a single-parameter inspection tool. Presence of output schema means return values don't need description. Covers essential domain concept (hierarchical paths) but misses safety/error context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage. Description compensates by specifying signal parameter requires 'Full hierarchical signal path', providing essential context for HDL/simulator environments that schema lacks.

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?

States specific action (Get detailed information) and resource (signal), with helpful parenthetical specifying what details (type, width, direction). Implicitly distinguishes from get_signal_value (current value) and list_signals (enumeration), though explicit comparison would strengthen it.

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 guidance on when to use this versus siblings like get_signal_value or list_signals. Does not mention prerequisites such as requiring an active simulation connection.

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

disconnect_simulatorB

Disconnect from the SimVision bridge.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 bears full responsibility for behavioral disclosure. It omits critical details: whether disconnecting affects running simulations, idempotency (safe to call if already disconnected), error conditions, or what the output schema represents.

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?

Extremely concise single sentence with zero redundancy. Appropriate length for a parameter-less utility function where the operation is self-evident from the name and description.

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?

While the output schema reduces the need to describe return values and there are no parameters to document, the description lacks essential context for a state-changing operation: prerequisites (must be connected), side effects on the simulation state, and differentiation from 'shutdown_simulator'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool accepts zero parameters, triggering the baseline score of 4 per evaluation rules. No additional parameter context is needed or 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 ('Disconnect') and clear resource ('SimVision bridge'), distinguishing this from sibling 'connect_simulator'. However, it doesn't clarify the distinction from 'shutdown_simulator' or explicitly state this is the inverse operation of connecting.

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 explicit guidance provided on when to use this tool versus alternatives, or prerequisites such as requiring an active connection first. The description states what it does but not when to do it.

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

find_driversA

Find all drivers of a signal (useful for X/Z debugging).

Args: signal: Full hierarchical signal path.

ParametersJSON Schema
NameRequiredDescriptionDefault
signalYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 full burden. It adds valuable behavioral context by mentioning X/Z debugging, but omits safety information (read-only vs. destructive), performance characteristics, or output format details that would help the agent understand side effects.

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?

Extremely efficient two-sentence structure: the first states the purpose and use case, the second documents the parameter. No redundant words or filler content.

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?

Given this is a single-parameter query tool with an output schema available, the description covers the essential input semantics adequately. It appropriately delegates return value documentation to the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage (only a title). The description compensates effectively by specifying that the signal parameter requires a 'Full hierarchical signal path,' providing essential semantic context missing from the structured 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 specific action (find all drivers) and target resource (signal), and distinguishes itself from siblings like describe_signal or get_signal_value by specifying the unique use case of X/Z debugging.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The mention of 'useful for X/Z debugging' provides implied usage context, but lacks explicit guidance on when NOT to use this tool or which sibling tools (like describe_signal) might be better alternatives for non-debugging scenarios.

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

get_signal_valueA

Read current values of one or more signals.

Args: signals: List of signal paths (e.g. ["/tb/dut/clk", "/tb/dut/data[7:0]"]).

ParametersJSON Schema
NameRequiredDescriptionDefault
signalsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries full disclosure burden. While 'Read' implies non-destructive access, the description fails to disclose return value format, error behavior (e.g., invalid signal paths), or timing characteristics (snapshot vs. sampled).

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 efficiently structured with a clear one-sentence summary followed by an Args section documenting the single parameter. No redundant or wasted text.

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 single-parameter read operation with an output schema (which obviates the need to describe return values), the description is adequate. It could be improved by noting the hardware simulation context or error handling, but covers the essential contract.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by documenting the signals parameter as 'List of signal paths' and providing concrete hardware simulation examples (e.g., '/tb/dut/clk', '/tb/dut/data[7:0]').

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 states a specific verb ('Read') and resource ('current values of one or more signals'), clearly distinguishing it from siblings like deposit_value (write operation), describe_signal (metadata), and list_signals (enumeration).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through the word 'Read' (suggesting this is for retrieval vs. modification), but provides no explicit when-to-use guidance, prerequisites, or comparisons to alternatives like describe_signal.

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

list_signalsB

List signals in a scope, optionally filtered by pattern.

Args: scope: Hierarchical scope path (e.g. "/tb/dut"). pattern: Glob pattern to filter signals (default "*").

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeYes
patternNo*

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to indicate whether this is a read-only operation, what happens if the scope path is invalid, or performance characteristics (e.g., if listing large scopes is expensive). It only states the functional purpose, not 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.

Conciseness4/5

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

The description is appropriately sized with clear front-loading: the first sentence establishes purpose, followed by structured Args documentation. The docstring-style format is slightly informal but efficient, with no redundant or wasted text.

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?

For a 2-parameter tool with simple types and an existing output schema, the description adequately covers the input parameters. However, given zero annotations and no mention of error handling, safety (read-only status), or relationships to the 20+ sibling simulator tools, it has notable gaps in contextual completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage (properties lack descriptions), the description fully compensates by providing precise semantics for both parameters: 'scope' includes format context 'Hierarchical scope path' with example '/tb/dut', and 'pattern' explains it is a 'Glob pattern' with default value '*'.

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 clearly states the tool 'List signals in a scope' with specific verb (List) and resource (signals). The optional filtering clause adds specificity. However, it doesn't explicitly differentiate from siblings like 'describe_signal' (detailed inspection vs. enumeration) or 'waveform_add_signals'.

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 like 'describe_signal' or 'get_signal_value'. While the Args section explains parameter syntax, there is no 'when-to-use' or workflow guidance (e.g., 'use this first to discover signals before inspecting values').

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

probe_controlA

Control SHM waveform recording to manage dump file size.

Disable probes during uninteresting simulation periods to save disk space. Re-enable before the region of interest. Optionally target a specific scope.

Args: mode: "enable" to start recording, "disable" to pause, "status" to check. scope: Hierarchical scope to target (e.g. "top.hw.u_ext"). Empty = all probes.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYes
scopeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It adds valuable context about disk space management and clarifies mode semantics ('pause', 'start', 'check'). However, it omits safety details like whether changes are persistent, if operations are idempotent, or potential error conditions—critical gaps for a control tool with zero annotation coverage.

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?

Efficient three-paragraph structure: purpose statement, usage context, then Args documentation. Every sentence delivers value—no generic filler. The Args block uses standard formatting that parses clearly despite being free text.

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?

Appropriate for a 2-parameter control tool. Given that an output schema exists, the description correctly omits return value speculation. Parameters are fully documented. Minor gap: could mention prerequisite simulator connection (given 'connect_simulator' sibling), but functional completeness is high.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, requiring full compensation. The Args section documents both parameters comprehensively: mode enumerates valid values ('enable', 'disable', 'status') with semantic mapping, and scope provides hierarchical syntax example ('top.hw.u_ext') plus default behavior ('Empty = all probes'). Fully compensates for schema deficiencies.

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?

Description opens with specific verb ('Control') + resource ('SHM waveform recording') + explicit purpose ('manage dump file size'). It clearly distinguishes from siblings like waveform_add_signals or take_waveform_screenshot by focusing on recording enablement/disablement rather than signal selection or visualization.

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?

Provides clear temporal guidance: 'Disable probes during uninteresting simulation periods' and 'Re-enable before the region of interest.' Indicates scope parameter is optional. Lacks explicit 'use X instead for Y' alternatives, but the when-to-use guidance is concrete.

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

release_signalB

Release a previously deposited signal, restoring driven value.

Args: signal: Full hierarchical signal path.

ParametersJSON Schema
NameRequiredDescriptionDefault
signalYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/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 full burden. It successfully conveys that the operation restores the 'driven value' (natural simulation value), indicating state mutation. However, it omits timing behavior, what happens if the signal wasn't deposited, or the structure of the output despite output schema existing.

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?

The description is compact with two distinct sections (description and Args). No redundant words, though the Args section is extremely terse. The structure follows standard docstring format appropriately for a single-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?

For a single-parameter tool with an existing output schema, the description covers the core concept adequately. However, given this is a state-modifying simulation operation with no annotations, it should mention prerequisites (signal must be deposited first) and ideally acknowledge the output schema's existence.

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 0% (parameter lacks description). The description compensates by specifying 'Full hierarchical signal path' under Args, clarifying the expected format. This is minimally sufficient but lacks examples, format constraints, or validation rules that would help the agent construct valid inputs.

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 clearly states the action (release) and effect (restoring driven value) with specific domain terminology ('deposited signal'). However, it does not explicitly distinguish when to use this versus sibling tools like deposit_value, though it implicitly references the relationship.

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 guidance provided on when to use this tool versus alternatives, prerequisites (e.g., signal must have been deposited first), or error conditions. The description assumes the agent knows what 'previously deposited' implies without context.

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

restore_checkpointA

Restore simulation to a previously saved checkpoint.

Args: name: Checkpoint name to restore. Empty = last saved checkpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While it states the simulation is restored, it fails to clarify critical side effects: whether this stops a running simulation, destroys unsaved current state, or requires specific simulator connection status first.

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?

The description is appropriately brief with a clear purpose statement followed by Args documentation. The structure is efficient, though the docstring-style 'Args:' format is slightly rigid compared to integrated prose.

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?

Given the output schema exists, return values need not be described. The single parameter is documented despite schema gaps. However, for a state-mutating simulation tool, the absence of behavioral warnings (destructive nature, state loss) leaves significant gaps in contextual completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description successfully compensates by explaining that 'name' is a 'Checkpoint name' and crucially documenting that empty string means 'last saved checkpoint'—semantic meaning absent from the raw 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 uses a specific verb ('Restore') with clear resources ('simulation', 'checkpoint'), clearly distinguishing this tool from siblings like 'save_checkpoint' and 'sim_restart' by indicating it loads previous state rather than saving or restarting fresh.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the default behavior when 'name' is empty ('Empty = last saved checkpoint'), which guides usage. However, it lacks explicit guidance on when to use this versus 'sim_restart' or what prerequisites exist (e.g., requiring a previous save).

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

run_debugger_modeB

Comprehensive debug snapshot: simulation state + signal values + screenshot + debugging guide.

Returns a combined text report and waveform screenshot for AI-assisted hardware debugging.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It states what is returned (text report + screenshot) but fails to clarify side effects (does it pause simulation? modify waveform view?), performance characteristics, or whether the operation is read-only. The 'debugging guide' component is mentioned but not explained.

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?

The description consists of two efficient sentences totaling under 30 words. The first sentence front-loads the value proposition (comprehensive snapshot), while the second clarifies the return format. Minor deduction for the first sentence being a sentence fragment rather than a complete sentence.

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?

Given the absence of both an output schema and annotations, the description adequately covers the high-level return value (text + screenshot) but lacks detail on the report structure, the nature of the 'debugging guide,' or formatting details that would help the agent parse the response. Sufficient for basic invocation but leaves gaps for response handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema contains zero parameters, establishing a baseline score of 4. The description appropriately requires no additional parameter explanation since the tool operates as a stateless snapshot request with no configuration options.

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 clearly identifies the tool as providing a 'Comprehensive debug snapshot' for hardware debugging, listing specific components (simulation state, signal values, screenshot, debugging guide). It implies aggregation of multiple data sources, distinguishing it from siblings like take_waveform_screenshot or get_signal_value, though it could explicitly state this aggregation benefit.

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?

While the word 'Comprehensive' hints at using this for full-context debugging, the description provides no explicit guidance on when to use this tool versus granular alternatives like describe_signal or sim_status. It does not specify prerequisites (e.g., simulator connection required) or when the snapshot is most valuable.

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

save_checkpointA

Save a simulation checkpoint for later restoration.

Checkpoints capture the complete simulator state. Use restore_checkpoint to return to this point without re-simulating from time 0.

Args: name: Checkpoint name (alphanumeric, e.g. "chk_10ms"). Auto-generated if empty.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and successfully discloses that checkpoints capture the 'complete simulator state' and that names are 'auto-generated if empty'. It does not mention potential overwrites or storage limits, but covers the core behavioral contract.

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?

Front-loaded with purpose ('Save a simulation checkpoint'), followed by behavioral context and sibling relationship, then the Args section. No redundant or wasteful sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema (so return values need not be described) and only one parameter, the description is complete. It adequately explains the relationship to the restoration workflow and the checkpoint naming behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description excellently compensates by specifying the format constraint ('alphanumeric'), providing a concrete example ('chk_10ms'), and explaining the default behavior when empty.

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 a specific verb ('Save') and resource ('simulation checkpoint') and clearly distinguishes this from sibling tools by contrasting it with 'restore_checkpoint' in the text.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the sibling tool 'restore_checkpoint' as the mechanism to return to the saved point, and provides the specific use case of avoiding 're-simulating from time 0'.

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

set_breakpointA

Set a conditional breakpoint in the simulation.

Args: condition: Tcl expression (e.g. "{/tb/dut/state == 3}"). name: Optional breakpoint name.

ParametersJSON Schema
NameRequiredDescriptionDefault
conditionYes
nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/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 full burden. It provides valuable behavioral context via the Tcl expression example showing signal path syntax, but fails to disclose what happens when the condition is met (e.g., pauses simulation, triggers callback) or whether the breakpoint persists across checkpoints.

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?

Extremely concise with zero waste. The single sentence purpose statement followed by the Args block provides immediate clarity. Every element serves a specific function.

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?

Appropriate for a 2-parameter tool with an output schema (which handles return value documentation). The description adequately covers both parameters given the schema lacks descriptions, though it could mention breakpoint lifecycle or interaction with sim_run.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given 0% schema description coverage, the description effectively compensates by explaining that 'condition' expects a Tcl expression format and that 'name' is optional. The example '{/tb/dut/state == 3}' is critical semantic information not present in the schema.

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 clearly states the tool sets a 'conditional breakpoint in the simulation' with a specific verb and resource. It distinguishes from siblings like watch_signal or sim_stop by focusing on conditional halting, though it could clarify how it differs from watch_signal.

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 guidance provided on when to use this tool versus alternatives like watch_signal, sim_stop, or run_debugger_mode. No mention of prerequisites (e.g., requiring an active simulation connection) or when breakpoints are preferable to single-stepping.

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

shutdown_simulatorA

Safely shutdown the simulator, preserving SHM waveform data.

Closes all SHM databases and terminates xmsim gracefully. Always use this instead of disconnect_simulator when ending a debug session. WARNING: exit or pkill will lose SHM data. This is the only safe way.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/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 effectively communicates safety-critical behavior: closing SHM databases, graceful termination of xmsim, and data preservation guarantees. It warns about data loss risks of alternative shutdown methods.

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?

Four sentences with zero waste. Front-loaded with the core action, followed by implementation details, usage guidelines, and safety warnings. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists (per context signals), the description appropriately focuses on safety-critical domain context (SHM data preservation, xmsim termination) rather than return values. Complete for this tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema coverage is 100% (trivially). Per the rubric, 0 parameters warrants a baseline score of 4.

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 provides a specific verb (shutdown) + resource (simulator) + scope (preserving SHM waveform data). It explicitly distinguishes itself from the sibling disconnect_simulator by stating when to use each.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Always use this instead of disconnect_simulator when ending a debug session.' Also warns against unsafe alternatives (exit or pkill), giving clear when-to-use and when-not-to-use guidance.

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

sim_restartA

Restart the simulation from time 0.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 full burden of behavioral disclosure. It specifies the time reset aspect but omits side effects (e.g., whether waveforms are cleared, signal values reset, or checkpoints affected) and safety characteristics that would help an agent understand the operation's impact.

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 consists of a single, front-loaded sentence with zero waste. Every word ('Restart', 'the simulation', 'from time 0') conveys essential information about the action, target, and scope.

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?

Given the tool's conceptual simplicity (no parameters) and the presence of an output schema (which handles return value documentation), the description is sufficiently complete for basic invocation. However, given the lack of annotations and the state-changing nature of the operation in a complex simulation environment, it could benefit from brief mention of prerequisites or side effects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters with 100% schema description coverage. Per scoring guidelines, zero-parameter tools receive a baseline score of 4, as there are no parameter semantics to clarify beyond what the empty schema already communicates.

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 provides a specific verb ('Restart'), clear resource ('the simulation'), and scope ('from time 0') that distinguishes it from siblings like restore_checkpoint (which restores arbitrary saved states) and sim_run (which continues execution). It precisely defines the temporal scope of the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While 'from time 0' implies this returns to initial conditions, the description lacks explicit guidance on when to use this versus restore_checkpoint or prerequisites (e.g., whether the simulator must be stopped first). Usage is implied but not explicitly contrasted with alternatives.

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

sim_runA

Run the simulation, optionally for a specified duration.

Args: duration: Simulation time to run (e.g. "100ns", "1us"). Empty = run until breakpoint or end. timeout: MCP response timeout in seconds (default 600s for gate-level sim support).

ParametersJSON Schema
NameRequiredDescriptionDefault
durationNo
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Clarifies that timeout refers to MCP response timeout (not simulation duration), implying blocking behavior. Explains empty duration behavior. Missing: side effects, idempotency, or output schema contents.

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?

Front-loaded with clear purpose statement. Args section is structured and information-dense. No redundant text, though 'optionally' in first sentence slightly duplicates the optional nature evident in schema defaults.

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?

Parameters well-covered despite poor schema. However, given 24 sibling tools and complex simulation domain, description should distinguish from run_debugger_mode and sim_restart. Output schema exists but description gives no hint about returned data (simulation time? status?).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, description fully compensates by documenting both parameters: duration includes format examples (100ns, 1us) and empty-string semantics; timeout clarifies it is MCP-level (not simulation) and explains the 600s default rationale.

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?

States 'Run the simulation' with clear verb and resource. Distinguishes from siblings like sim_stop and sim_status, but fails to differentiate from run_debugger_mode which is also a 'run' operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides implicit guidance via 'Empty = run until breakpoint or end' explaining when to omit duration. Mentions gate-level sim context for timeout default. However, lacks explicit comparison to sim_restart or run_debugger_mode for when to use each.

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

sim_statusA

Get current simulation status (time, scope, state).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/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 full burden of behavioral disclosure. It effectively communicates the return payload composition (time, scope, state) but omits operational details such as whether the call is read-only, blocking behavior, or error scenarios when the simulator is disconnected.

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 consists of a single efficient sentence that immediately communicates the tool's purpose without filler. Every word serves to identify the operation ('Get'), target ('simulation status'), and return value contents ('time, scope, state'). It is appropriately front-loaded with the verb and resource identifier.

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?

Given the tool's simplicity (zero parameters) and the presence of an output schema, the description adequately covers the essential information needed for invocation. It identifies the key data fields returned, allowing agents to determine utility without exhaustively listing implementation details that belong in the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema defines zero parameters, establishing a baseline score of 4. The description appropriately requires no additional parameter clarification since no arguments are accepted. No parameter semantics need to be added beyond the empty schema definition.

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 'Get current simulation status' clearly identifies the verb and resource. It distinguishes from siblings like get_signal_value or sim_run by specifying it returns metadata fields (time, scope, state) rather than signal data or execution control. The specificity of the returned fields helps agents select this for status checks over other operations.

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 like get_signal_value or control commands such as sim_run. It does not mention prerequisites such as requiring an active simulator connection via connect_simulator. No exclusions or error conditions are documented.

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

sim_stopB

Stop a running simulation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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, yet fails to explain what 'stop' means (pause vs. halt), whether the state is preserved, or what the output schema returns. It restates the tool name without adding operational context.

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?

The single sentence is front-loaded with the action and contains no wasted words. However, given the absence of annotations and output schema details, the description may be overly terse rather than appropriately concise.

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?

For a simulation control tool with behavioral ambiguity (stop vs. shutdown) and no annotations, the description is insufficient. It fails to clarify the simulation state after stopping or leverage the fact that an output schema exists to explain what information is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema contains zero parameters, establishing a baseline of 4. The description correctly implies no configuration is needed to stop the simulation, which aligns with the empty schema.

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 ('Stop') and resource ('simulation'), clearly indicating the tool halts execution. It distinguishes from query tools like 'get_signal_value' and from 'sim_run', though it could clarify the difference from 'shutdown_simulator' (stop pauses execution, shutdown terminates the process).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Stop a running simulation' implies the precondition (simulation must be running), but provides no explicit guidance on when to prefer this over 'shutdown_simulator' or whether the simulation can be resumed afterward. Usage is implied rather than stated.

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

take_waveform_screenshotA

Capture a screenshot of the SimVision waveform window.

Returns the screenshot as a PNG image that Claude can analyze.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full burden. It discloses the return format ('PNG image') and intended consumer ('Claude can analyze'), but lacks disclosure of prerequisites, error states (e.g., window not open), or side effects.

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?

Two efficient sentences with zero redundancy: first states the action, second states the return value. Every word earns its place and the description is appropriately front-loaded.

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?

Given zero parameters and no output schema, the description adequately covers the essential contract (action and return type). However, for a media-generating tool without annotations, it could briefly mention prerequisites like simulator connection status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the baseline score applies. The description requires no parameter clarification since the schema is empty, though it could have mentioned any implicit parameters like output path or quality settings if they existed.

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 action ('Capture a screenshot'), the target ('SimVision waveform window'), and distinguishes itself from siblings like waveform_add_signals or get_signal_value by focusing on visual capture rather than data manipulation or querying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the purpose implies visual inspection use cases, there is no explicit guidance on when to use this versus alternatives like describe_signal or get_signal_value, nor are prerequisites (e.g., requiring a connected simulator) stated.

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

watch_clearC

Clear watchpoints. Use "all" to clear all, or a specific stop ID.

Args: watch_id: Watchpoint ID to clear, or "all" for all watchpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
watch_idNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/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 that watchpoints are cleared but fails to mention side effects (e.g., whether clearing is permanent), error behavior (invalid ID handling), or reversibility. The disclosure is limited to the basic operation name.

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?

The description is brief and front-loaded with the action. While the Python-style 'Args:' section is slightly unconventional for MCP descriptions, it efficiently conveys the necessary parameter information without excessive verbosity. Every sentence contributes necessary information.

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?

For a single-parameter deletion operation with an output schema present, the description meets minimum viability by explaining the parameter and special values. However, it lacks context on error states, valid ID formats, and the simulator state requirements given the complex debugger environment suggested by sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, leaving the description to carry all semantic weight. It successfully documents that `watch_id` accepts either a specific watchpoint identifier or the special string 'all', compensating effectively for the lack of schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool clears watchpoints (specific verb+resource), but introduces confusion by referring to a 'stop ID' in the first sentence while the Args section and parameter name use 'Watchpoint ID'. This terminology inconsistency hinders clarity, and it fails to distinguish from sibling tool `watch_signal`.

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 operational syntax guidance (use 'all' vs specific ID) but offers no strategic guidance on when to clear watchpoints versus keeping them, and does not mention the complementary relationship with `watch_signal` or prerequisites like being connected to a simulator.

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

watch_signalA

Set a watchpoint to stop simulation when a signal matches a condition.

The simulation will automatically stop at the exact clock edge where the condition becomes true. Much more efficient than manual probing.

Args: signal: Full hierarchical signal path (e.g. "top.dut.r_state[3:0]"). op: Comparison operator ("==", "!=", ">", "<", ">=", "<="). value: Target value in Verilog format (e.g. "8'h10", "4'b1010").

ParametersJSON Schema
NameRequiredDescriptionDefault
signalYes
opNo==
valueNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/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 full burden. It successfully discloses critical timing behavior ('stop at the exact clock edge where the condition becomes true'), but omits safety/prerequisite context such as whether the watchpoint persists across simulation restarts, requires debugger mode, or how it interacts with multiple concurrent watchpoints (sibling `watch_clear` exists).

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 front-loaded with the core purpose in the first sentence, followed by behavioral detail and value proposition. The Args section is structured and contains zero redundant text. Every sentence earns its place.

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 3-parameter tool with an output schema, the description adequately covers inputs and behavior. It appropriately omits return value details (covered by output schema). Minor deduction for not mentioning prerequisites (e.g., simulator connection state) or lifecycle management (relationship to `watch_clear`).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given 0% schema description coverage (properties lack descriptions), the description fully compensates via the Args section. It defines 'signal' with hierarchical path examples, 'op' with explicit valid operators, and 'value' with Verilog format examples—adding essential semantic meaning absent 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 explicitly states the tool 'Set[s] a watchpoint to stop simulation when a signal matches a condition'—a specific verb with clear resource and outcome. It implicitly distinguishes from sibling `set_breakpoint` by using 'watchpoint' and 'signal' (vs. code breakpoints), and from `get_signal_value` by emphasizing the automatic stopping behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides implied guidance by stating it is 'Much more efficient than manual probing,' suggesting when to prefer this tool. However, it lacks explicit when-to-use/when-not-to-use rules regarding siblings like `set_breakpoint` (code vs. signal breakpoints) or `watch_clear` (management of multiple watchpoints).

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

waveform_add_signalsB

Add signals to the SimVision waveform viewer.

Args: signals: List of signal paths to add. group_name: Optional group name for organizing signals.

ParametersJSON Schema
NameRequiredDescriptionDefault
signalsYes
group_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It fails to mention idempotency, what happens if signal paths are invalid, UI update behavior, or the content of the output schema (which exists). Only mentions 'SimVision' as context for the target system.

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?

Extremely compact with no filler text. The 'Args:' structure efficiently documents parameters given the schema's lack of descriptions. Front-loaded with the core action sentence followed by parameter details. Could be slightly more informative without becoming verbose.

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?

Minimum viable for a 2-parameter tool with an output schema (which obviates the need to describe return values). However, given the EDA domain complexity and zero annotations, it lacks critical context: error handling for invalid signals, prerequisite state requirements, and relationship to the waveform viewer's lifecycle.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage (titles only), the Args section compensates by explaining that 'signals' expects signal paths and 'group_name' is for organization. This adds necessary semantic meaning missing from the structured schema, though it lacks format details (e.g., hierarchical path syntax) or default behavior when group_name is omitted.

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?

Clearly states the action ('Add signals') and target system ('SimVision waveform viewer'), providing specific verb and resource identification. However, it does not differentiate from similar sibling tools like 'watch_signal' or 'probe_control' that also handle signal monitoring.

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?

Provides no guidance on when to use this tool versus alternatives (e.g., when to use 'waveform_add_signals' vs 'watch_signal'), prerequisites (e.g., requiring an active simulation or waveform viewer session), or error conditions. The description assumes the user already knows the workflow.

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

waveform_zoomB

Set the waveform viewer time range (zoom to region).

Args: start_time: Start time (e.g. "0ns"). end_time: End time (e.g. "100ns").

ParametersJSON Schema
NameRequiredDescriptionDefault
start_timeYes
end_timeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/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 but offers minimal details. It does not mention what the tool returns (despite having an output schema), whether the operation is persistent, what happens if start_time exceeds end_time, or if this affects simulation state versus just the view.

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?

The description is appropriately brief with no wasted words. It uses a docstring-style 'Args:' section which efficiently maps parameters to their example values. Every element serves a purpose: the first sentence defines the action, while the Args section provides critical format examples.

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?

For a tool with 2 parameters and an output schema, the description is minimally adequate. It covers the parameter semantics through examples, and since an output schema exists, it need not detail return values. However, it lacks completeness regarding error conditions, side effects, or behavioral edge cases that would help an agent use the tool robustly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage (only titles), but the description compensates effectively by providing concrete examples ('0ns', '100ns') for both parameters. These examples clarify the expected string format and time unit syntax, which would otherwise be ambiguous given the generic 'string' type in the schema.

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 clearly states the tool sets the 'waveform viewer time range' with the parenthetical '(zoom to region)' clarifying the specific action. It effectively distinguishes itself from sibling tools like waveform_add_signals or take_waveform_screenshot by focusing specifically on the time range/zoom aspect of the viewer.

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. While distinct from siblings, there is no explicit 'use this when...' or mention of prerequisites (e.g., requiring an active simulation or waveform viewer), forcing the agent to infer appropriate usage context.

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes (e.g., deposit_value vs. release_signal, save_checkpoint vs. restore_checkpoint). Minor potential confusion exists between disconnect_simulator and shutdown_simulator (both end sessions but differ in data preservation), and between watch_signal and bisect_signal (both detect conditions but via different mechanisms). Descriptions clarify these distinctions.

Naming Consistency4/5

Generally follows verb_noun convention (e.g., connect_simulator, set_breakpoint, find_drivers). Consistent prefixes group related functionality (sim_*, watch_*, waveform_*). Minor deviations include cursor_set (noun_verb inversion compared to set_breakpoint) and run_debugger_mode (slightly vague compared to specific action names).

Tool Count3/5

With 25 tools, this is at the upper boundary of the 16-25 range, feeling heavy for an MCP server. While the hardware simulation domain is complex and justifies extensive coverage (signals, checkpoints, waveforms, debugging), the surface area is large enough that an agent may struggle to select the optimal tool without careful description reading.

Completeness4/5

Provides comprehensive coverage for hardware debugging workflows: connection lifecycle, simulation control (run/stop/restart), signal inspection/manipulation, checkpoint management, conditional breakpoints/watchpoints, and waveform visualization. Minor gaps include lack of explicit 'step' (single-cycle advance) or direct Tcl command execution, though set_breakpoint allows Tcl expressions.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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
    A
    quality
    F
    maintenance
    Enables RTL simulation and hardware verification with Verilator through automatic testbench generation, natural language queries about simulations, waveform analysis, and protocol-aware testing for Verilog/SystemVerilog designs.
    4
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Connects AI assistants to Siemens Questa Visualizer, enabling natural language control of HDL simulation such as opening waveforms, running simulation, and examining signal values.
    12
    2
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables LLMs to interact with hardware designs (Verilog/SystemVerilog), formal verification tools, waveform logs, protocol specifications, and bug databases through 34 structured tools.

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/hslee-cmyk/xcelium-mcp'

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