Xcelium MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Xcelium MCP Serverfind when top.dut.error_flag becomes 1'b1 using binary search"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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: Verilator 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.shmThe bridge listens on TCP port 9876 by default. Override with:
export MCP_BRIDGE_PORT=9877Bridge 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:9876Available Tools (25)
Connection & Control (1-7)
Tool | Description |
| Connect to bridge (host, port, timeout) |
| Disconnect (for reconnection only) |
| Run simulation with duration and timeout (default 600s for gate sim) |
| Stop a running simulation |
| Restart from time 0 |
| Get current time, scope, state |
| Set conditional breakpoint |
Signal Inspection (8-13)
Tool | Description |
| Read current signal values |
| Get signal type, width, direction |
| Find all drivers (X/Z debugging) |
| List signals in a scope |
| Force a value onto a signal |
| Release a deposited signal |
Waveform (14-16)
Tool | Description |
| Add signals to waveform viewer |
| Set waveform time range |
| Set waveform cursor position |
Debug & Screenshot (17-18)
Tool | Description |
| Capture waveform as PNG |
| Full debug snapshot with checklist |
Advanced Debug (19-25)
Tool | Description |
| Safe shutdown preserving SHM waveform data |
| Set watchpoint to stop at exact clock edge when condition is true |
| Clear watchpoints (specific ID or all) |
| Enable/disable SHM recording, optionally per scope |
| Save simulation state for later restoration |
| Restore to a saved checkpoint |
| 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 disconnectAutomated 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
Always specify duration in
sim_runto prevent hang on infinite loopsAlways use
shutdown_simulatorto end sessions (preserves SHM data)Never use
disconnect_simulatorto end sessions (SHM not flushed)Gate-level sim: increase timeout with
sim_run(timeout=1800)if neededBridge 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 |
| Health check |
| Close connection |
| Capture waveform to PostScript |
| Safe shutdown (database close + finish) |
| Non-blocking sim run |
| Query sim time during async run |
| Set signal watchpoint |
| List active watchpoints |
| Delete watchpoints |
| Toggle SHM recording |
| Save checkpoint |
| Restore checkpoint |
| 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
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityFmaintenanceA comprehensive Model Context Protocol server that connects AI assistants to Electronic Design Automation tools, enabling RTL-to-GDSII automation including Verilog synthesis, simulation, ASIC design flows, and waveform analysis.Last updated696
- AlicenseAqualityFmaintenanceEnables 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.Last updated44MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to perform Electronic Design Automation (EDA) tasks including Verilog synthesis, simulation, ASIC design flows, and waveform analysis through a unified interface.Last updated6
- AlicenseAqualityCmaintenanceConnects AI assistants to Siemens Questa Visualizer, enabling natural language control of HDL simulation such as opening waveforms, running simulation, and examining signal values.Last updated122MIT
Related MCP Connectors
33 tools that make AI write, implement, and verify intent against explicit, testable constraints.
Debug, build, and manage Power Automate cloud flows with AI agents
Build, validate, and deploy multi-agent AI solutions from any AI environment.
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