Xcelium MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_BRIDGE_PORT | No | The 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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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. |
| disconnect_simulatorB | Disconnect from the SimVision bridge. |
| 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). |
| sim_stopB | Stop a running simulation. |
| sim_restartA | Restart the simulation from time 0. |
| sim_statusA | Get current simulation status (time, scope, state). |
| set_breakpointA | Set a conditional breakpoint in the simulation. Args: condition: Tcl expression (e.g. "{/tb/dut/state == 3}"). name: Optional breakpoint name. |
| 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]"]). |
| describe_signalA | Get detailed information about a signal (type, width, direction). Args: signal: Full hierarchical signal path. |
| find_driversA | Find all drivers of a signal (useful for X/Z debugging). Args: signal: Full hierarchical signal path. |
| 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 "*"). |
| 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"). |
| release_signalB | Release a previously deposited signal, restoring driven value. Args: signal: Full hierarchical signal path. |
| 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. |
| 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"). |
| cursor_setB | Set a waveform cursor to a specific time. Args: time: Simulation time (e.g. "50ns"). cursor_name: Cursor name (default "TimeA"). |
| take_waveform_screenshotA | Capture a screenshot of the SimVision waveform window. Returns the screenshot as a PNG image that Claude can analyze. |
| 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. |
| 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. |
| 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"). |
| 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. |
| 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. |
| 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. |
| restore_checkpointA | Restore simulation to a previously saved checkpoint. Args: name: Checkpoint name to restore. Empty = last saved checkpoint. |
| 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). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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