Vivado MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| start_sessionA | Start a persistent Vivado TCL session. Must be called before other commands. |
| stop_sessionA | Stop the Vivado TCL session and free resources |
| session_statusB | Get status and statistics of the current Vivado session |
| check_session_healthA | Check if Vivado session is responsive and recover if needed. Use this if commands are timing out or behaving unexpectedly. |
| get_host_statusA | Get status of this Vivado MCP server host including hostname, free memory, and session state. If free memory is below 64GB, use vivado-snoke instead. |
| open_projectB | Open a Vivado project (.xpr file) |
| close_projectB | Close the current project |
| get_project_infoC | Get information about the currently open project |
| run_synthesisD | Run synthesis on the current project |
| run_implementationB | Run implementation (place and route) on the current project |
| generate_bitstreamB | Generate bitstream for the implemented design |
| get_timing_summaryA | Get timing summary (WNS, TNS, WHS, THS). Returns parsed metrics only by default. Use generate_full_report for raw output. |
| get_timing_pathsA | Get timing paths for failing or critical paths. Returns structured summary (slack, source, dest, clocks) by default. Use generate_full_report for verbose path details. |
| get_utilizationA | Get resource utilization (LUT, FF, BRAM, DSP, IO). Returns parsed metrics only by default. Use generate_full_report for hierarchical details. |
| get_clocksA | Get clock information and constraints |
| get_messagesB | Get synthesis/implementation messages (errors, warnings) |
| get_design_hierarchyB | Get the design hierarchy (modules and instances) |
| get_portsA | Get top-level ports of the design |
| get_netsB | Search for nets in the design |
| get_cellsB | Search for cells (instances) in the design |
| run_tclA | Execute a raw TCL command in Vivado. Use for advanced operations not covered by other tools. |
| launch_simulationC | Launch behavioral simulation (xsim). Opens the simulator and loads the design. |
| run_simulationC | Run the simulation for a specified time |
| restart_simulationA | Restart the simulation from time 0 |
| close_simulationA | Close the current simulation |
| get_simulation_timeA | Get the current simulation time |
| get_signal_valueB | Get the current value of a signal in simulation |
| get_signal_valuesB | Get current values of multiple signals matching a pattern |
| add_signals_to_waveB | Add signals to the waveform viewer |
| set_simulation_topB | Set the top module for simulation |
| get_simulation_objectsA | List simulation objects (signals, variables) in a scope |
| get_scopesC | List available scopes (hierarchy) in the simulation |
| step_simulationB | Step the simulation by a delta cycle or time step |
| add_breakpointB | Add a simulation breakpoint on a signal condition |
| remove_breakpointsB | Remove all breakpoints |
| get_simulation_messagesC | Get simulation log messages (errors, warnings, info) |
| request_featureA | Request a new feature or capability for the Vivado MCP server. Use this when you encounter a limitation or wish you had a tool that doesn't exist. |
| list_feature_requestsA | List all feature requests that have been submitted |
| generate_full_reportA | Generate a full Vivado report to a file. Use when inline reports are truncated or you need the complete output. |
| read_report_sectionC | Read a section of a previously generated report file |
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
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/coreyhahn/vivado_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server