Vivado MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| 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 | |
TDQS
Scored across 40 tools
Most tools have clearly distinct purposes, but there is some overlap between get_simulation_objects and get_scopes (both list simulation objects), and between get_signal_value and get_signal_values (single vs pattern). Overall, an agent can distinguish most tools.
All tool names consistently use verb_noun in snake_case (e.g., add_breakpoint, generate_bitstream, run_synthesis). No mixed conventions or inconsistent patterns.
40 tools is high but appropriate for a comprehensive FPGA design tool covering synthesis, implementation, simulation, reporting, and session management. Slightly above typical MCP server count, but each tool serves a specific purpose.
The tool surface covers the main Vivado workflows: project management, synthesis, implementation, bitstream generation, simulation, and reporting. Minor gaps exist (e.g., updating constraints, IP management), but core operations are present.