Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MCP_BRIDGE_PORTNoThe TCP port the bridge listens on (default is 9876). This is also used to determine the path of the readiness signal file (/tmp/mcp_bridge_ready_<port>).9876

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
connect_simulator

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.

disconnect_simulator

Disconnect from the SimVision bridge.

sim_run

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

sim_stop

Stop a running simulation.

sim_restart

Restart the simulation from time 0.

sim_status

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

set_breakpoint

Set a conditional breakpoint in the simulation.

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

get_signal_value

Read current values of one or more signals.

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

describe_signal

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

Args: signal: Full hierarchical signal path.

find_drivers

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

Args: signal: Full hierarchical signal path.

list_signals

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

deposit_value

Force-deposit a value onto a signal.

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

release_signal

Release a previously deposited signal, restoring driven value.

Args: signal: Full hierarchical signal path.

waveform_add_signals

Add signals to the SimVision waveform viewer.

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

waveform_zoom

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

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

cursor_set

Set a waveform cursor to a specific time.

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

take_waveform_screenshot

Capture a screenshot of the SimVision waveform window.

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

run_debugger_mode

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

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

shutdown_simulator

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.

watch_signal

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

watch_clear

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

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

probe_control

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.

save_checkpoint

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.

restore_checkpoint

Restore simulation to a previously saved checkpoint.

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

bisect_signal

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

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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