Vivado Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Vivado Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Vivado MCP is planned as a Model Context Protocol server that lets AI clients operate AMD Vivado through safe, workflow-level tools while the user can watch and interact with the Vivado GUI.
The first design target is not GUI click automation. The preferred mode is a managed Vivado Tcl session that can open the GUI with start_gui, load a small Tcl bridge, and let the MCP server submit validated workflow commands into that same Vivado process. Batch mode remains useful for CI and fallback automation.
Current design documents:
safe: workflow tools only; no raw Tcl.trusted-local: workflow tools plus raw Tcl/source-file execution inside the managed Vivado session.unrestricted: raw Tcl with minimal policy checks for personal local use.The prototype bridge in experiments/mcp_bridge.tcl proves the core control path: an external process can submit Tcl files to a live Vivado Tcl/GUI session and receive result files back.
The MCP should expose tutorial content through both tools and resources:
vivado_helpvivado_list_skillsvivado_get_skillvivado_suggest_next_stepsvivado_official_reference_guidevivado_search_official_docsvivado_tcl_command_helpvivado_review_tclvivado_sync_official_docsvivado_download_xilinx_pdfvivado_search_xilinx_docsvivado_list_official_referencesvivado_get_official_referencevivado://skills/indexvivado://official-docs/indexSeed skill docs live in docs/skills.
The official reference layer stores document IDs, AMD URLs, scope summaries, topic routing, and local filename candidates. It does not copy the full AMD document text into this repository.
From this repo:
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e ".[dev]"This machine has been tested with:
C:\Xilinx\Vivado\2023.1\bin\vivado.batUse the installed console script as the MCP server command:
{
"mcpServers": {
"vivado": {
"command": "C:\\Workspace\\Vivado_mcp\\.venv\\Scripts\\vivado-mcp.exe",
"env": {
"VIVADO_BIN": "C:\\Xilinx\\Vivado\\2023.1\\bin\\vivado.bat",
"VIVADO_MCP_WORKSPACE": "C:\\Workspace\\Vivado_mcp",
"VIVADO_MCP_ALLOWED_ROOTS": "C:\\Workspace\\Vivado_mcp",
"VIVADO_MCP_DOCS_ROOT": "C:\\Database\\FPGA\\Vivado_docs"
}
}
}
}VIVADO_MCP_WORKSPACE is the default working directory for managed sessions. VIVADO_MCP_ALLOWED_ROOTS is a semicolon-separated list on Windows; workflow paths such as projects, sources, constraints, and Tcl files in trusted-local mode must stay under one of these roots. VIVADO_MCP_DOCS_ROOT points to the local AMD Vivado documentation library used by the official-reference index; it defaults to C:\Database\FPGA\Vivado_docs. Use unrestricted capability profile only for personal experiments that need to source Tcl outside the allowed roots.
AI clients should use the MCP in this order:
vivado_help(topic="official_docs") or read vivado://skills/official-docs-reference before planning unfamiliar Vivado actions.vivado_official_reference_guide(topic=...) to select the authoritative AMD manuals for the task.vivado_get_official_reference(doc_id=...) for the exact official URL and local PDF candidates under C:\Database\FPGA\Vivado_docs.vivado_sync_official_docs for the packaged Vivado catalog or vivado_download_xilinx_pdf for a specific AMD/Xilinx PDF.vivado_search_official_docs(query=..., doc_id=... or topic=...) for exact command names, options, and short local PDF snippets.vivado_tcl_command_help(command=...) before unfamiliar Tcl commands; it combines official search, MCP tool coverage, and optional installed Vivado help.vivado_review_tcl(tcl=...) before expert-mode execution.vivado_run_tcl or vivado_source_tcl only for commands that are not yet modeled as workflow tools; set expect_destructive=true when the review requires it.vivado_project_summary, vivado_bd_summary, vivado_report, or vivado_list_artifacts to inspect the resulting state.vivado_focus_gui only when the user explicitly wants Vivado brought to the foreground.After connecting the MCP client, use this sequence:
vivado_help with topic="gui_session".vivado_check_installation.vivado_start_session with open_gui=true, then confirm gui.visible=true.vivado_focus_gui only if the user asks to bring the Vivado window forward.vivado_official_reference_guide with topic="tcl" or the relevant task topic before expert Tcl work.vivado_tcl_command_help with command="create_project" or another command being planned.vivado_review_tcl with tcl="return \"version=[version -short]\"".vivado_run_tcl with tcl="return \"version=[version -short]\"".vivado_project_summary after opening or creating a project.vivado_list_artifacts to inspect command/result files.vivado_stop_session.vivado_check_installationvivado_start_sessionvivado_list_sessionsvivado_session_statevivado_focus_guivivado_stop_sessionvivado_run_tclvivado_source_tclvivado_review_tclvivado_tcl_command_helpvivado_create_projectvivado_open_projectvivado_add_sourcesvivado_remove_sourcesvivado_set_file_propertiesvivado_set_topvivado_list_filesetsvivado_create_filesetvivado_describe_filesetvivado_constraint_diagnosticsvivado_bd_open_or_createvivado_bd_summaryvivado_bd_applyvivado_bd_validatevivado_bd_generatevivado_run_synthesisvivado_run_implementationvivado_generate_bitstreamvivado_reportvivado_project_summaryvivado_list_artifactsvivado_read_artifactvivado_helpvivado_list_skillsvivado_get_skillvivado_suggest_next_stepsvivado_list_official_referencesvivado_get_official_referencevivado_official_reference_guidevivado_search_official_docsvivado_search_xilinx_docsvivado_download_xilinx_pdfvivado_sync_official_docsvivado_clean_bad_pdfs.\.venv\Scripts\python.exe -m pytest
.\.venv\Scripts\python.exe -m compileall srcThe test suite includes a fake Vivado process and an MCP protocol smoke test that starts the stdio server and lists tools/resources.
Command files, result files, logs, and reports are stored under the managed session directory and exposed through artifact URIs:
vivado://sessions/{session_ref}/artifacts/{artifact_id}Use vivado_list_artifacts to discover artifact URIs and vivado_read_artifact to read text artifacts. vivado_report also returns a best-effort report_summary for timing, utilization, DRC, and message reports. vivado_project_summary returns the current project, source files, runs, IP, and block designs as structured data.
The help system exposes official-reference metadata through these resources:
vivado://official-docs/index
vivado://official-docs/{doc_id}Use vivado_official_reference_guide(topic=...) for AI routing. Current topics include tcl, project, bd, ip, constraints, build, simulation, reports, hardware, dfx, methodology, io, installation, migration, libraries, and embedded.
Use vivado_search_official_docs(query=...) to search the local PDFs under C:\Database\FPGA\Vivado_docs. The server uses pdftotext from Poppler and caches extracted text under .vivado_mcp_text_cache in the docs root. Set VIVADO_MCP_PDFTOTEXT if pdftotext is not on PATH.
The MCP also includes the AMD/Xilinx PDF download workflow from the download-xilinx-pdf skill:
vivado_search_xilinx_docs(query=...): search AMD KHub.vivado_download_xilinx_pdf(source=...): resolve AMD Fluid Topics /go, /v/u, and /r/{mapId}/root pages, download through KHub content APIs, and verify the %PDF signature.vivado_sync_official_docs(doc_ids=[...]): populate or refresh the packaged Vivado official-reference catalog.vivado_clean_bad_pdfs(delete_bad=false): find local PDFs that do not start with %PDF.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.