Vivado MCP server — 让 Claude Code / Cursor / Codex 驱动本地 FPGA 全流程。30 个精选工具、8 个证据驱动 Prompt、doctor 环境自检、GUI/Tcl/attach 会话,以及时序和 CRITICAL WARNING 中文诊断。
# Add to your Claude Code skills
git clone https://github.com/mapleleavessssssss-wq/vivado-mcpGuides for using mcp servers skills like vivado-mcp.
Last scanned: 8/14/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-14T05:37:50.081Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how vivado-mcp compares with popular alternatives.
vivado-mcp is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by mapleleavessssssss-wq. Vivado MCP server — 让 Claude Code / Cursor / Codex 驱动本地 FPGA 全流程。30 个精选工具、8 个证据驱动 Prompt、doctor 环境自检、GUI/Tcl/attach 会话,以及时序和 CRITICAL WARNING 中文诊断。. It has 141 GitHub stars.
Yes. vivado-mcp passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/mapleleavessssssss-wq/vivado-mcp" and add it to your Claude Code skills directory (see the Installation section above).
vivado-mcp is primarily written in Python. It is open-source under mapleleavessssssss-wq on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh vivado-mcp against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
让 Claude Code、Cursor、Codex 等 AI Agent 安全驱动本地 Xilinx Vivado。
32 个 MCP 工具覆盖会话、综合、实现、时序、CDC、XDC、IP、波形与烧录。可保存结构化时序结果、比较两次测量、离线查询 VCD 中的未知值与握手事件;通用 Vivado 操作由 run_tcl 承载。
| 32 个精选工具 | 11 个工作流 Prompt + 5 个 Skills | 2 个实时 Resources | GUI / Tcl / attach 三种会话 |
|---|
本项目控制的是你本机安装的 Vivado,不是云端综合服务。命令在当前用户权限下执行;工具说明和诊断建议以中文为主。
English: A local Vivado MCP server with 32 tools, structured timing evidence and baseline comparison, bounded offline VCD queries, 11 workflow prompts, and 5 reusable skills.
导航:快速开始 · 实际调试场景 · 工具设计 · 工作流 Prompts · 工具列表 · 调试指南与 Skills · CLI · 反馈
pip 会自动安装| Vivado 版本 | 支持等级 | 验证范围 |
|---|---|---|
| 2019.1 | 主要支持基线 | 作者长期实测 GUI / Tcl / attach 与完整 FPGA 流程 |
| 2018.3 | 部分路径验证 | 社区贡献者验证 IPDEF-only IP 元数据(PR #1) |
| 2022.2 | 社区现场验证 | Windows 10 GUI/XSim 问题现场(Issue #2),不代表完整回归 |
| 其他版本 | 实验性兼容 | 协议层为纯 Tcl,但未持续做真机矩阵;请先跑下方冒烟验证 |
python -m pip install vivado-mcp
多 Python 环境下,请让 MCP 客户端使用同一个 Python 解释器;必要时把下方配置中的 python 换成该解释器的绝对路径。
vivado-mcp doctor
doctor 默认完全只读,检查 Vivado 路径、init Tcl 注入、9999 端口协议、Claude Code/Codex 配置,并给出精确的修复计划。CI 或 Agent 可使用结构化输出:
vivado-mcp doctor --json
vivado-mcp install
这会修改你 Vivado 的 Vivado_init.tcl,让以后启动 GUI 时自动开启 TCP server(绑定 install 指定的单一端口,默认 9999;被占即退出,不会滑动到其他端口)。原文件会备份,vivado-mcp uninstall 可恢复。
如果 Vivado 装在受保护目录(如 C:\Program Files\),用管理员身份运行命令即可。
也可以让 doctor 执行安全修复:
vivado-mcp doctor --fix --client all
--fix 才会写文件:复用幂等的 Vivado 注入,并在备份后原子更新选定客户端配置;不会删除第三方注入、终止占用端口的进程或自动升级软件。
doctor --fix 可自动配置 Claude Code 和 Codex。手动配置时,Claude Code 使用 ~/.claude.json,Cursor 使用项目级 .cursor/mcp.json 或用户级 ~/.cursor/mcp.json;两者都在 mcpServers 中加入:
"vivado": {
"command": "python",
"args": ["-m", "vivado_mcp"],
"env": {
"VIVADO_PATH": "D:/Xilinx/Vivado/2019.1/bin/vivado.bat"
},
"type": "stdio"
}
Codex 使用 ~/.codex/config.toml:
[mcp_servers.vivado]
command = "python"
args = ["-m", "vivado_mcp"]
[mcp_servers.vivado.env]
VIVADO_PATH = "D:/Xilinx/Vivado/2019.1/bin/vivado.bat"
将
VIVADO_PATH替换为你的 Vivado 实际路径:
- Windows:
"D:/Xilinx/Vivado/2019.1/bin/vivado.bat"- Linux:
"/opt/Xilinx/Vivado/<版本>/bin/vivado"- 也可以不设置
VIVADO_PATH,将 Vivadobin目录加入系统PATH。
VIVADO_PATH负责让 MCP server 找到 Vivado 可执行文件;上一步的vivado-mcp install负责给 GUI/attach 模式注入 TCP server。其他支持 stdio MCP 的客户端使用相同的command、args和env,配置文件位置以客户端文档为准。
配置完成后重启客户端,即可加载 32 个工具、11 个工作流 Prompt 和 2 个会话状态 Resource。五个 Skills 已随 Python 包分发,可显式导出到自选目录;不会自动修改客户端配置。对应 Prompt 从同一正文读取。
在客户端中发送:
启动一个 GUI 会话,然后执行 Tcl: version -short
AI 应依次调用 start_session(mode="gui") 和 run_tcl("version -short")。成功时 Vivado GUI 会启动(已有注入服务则直接 attach),并返回版本号。失败时直接运行 vivado-mcp doctor,无需逐项猜配置。
若 MCP 启动 GUI 时出现“进程提前退出”或连接超时,先查看错误中列出的
Vivado 启动日志和 Launcher 日志。启动器的错误可能发生在 Vivado
日志创建之前,因此两份都需要检查。日志默认位于系统临时目录的
vivado-mcp/logs,可用 VIVADO_MCP_LOG_DIR 指定目录;成功后也可从
list_sessions 的 startup_log / launcher_log 字段找到路径。
这些文件会继续记录该 GUI 进程的输出,关闭会话后保留,便于后续诊断。
如果手动打开同一 Vivado 能正常工作,可先完成上述 install 注入,再手动启动
GUI,使用 start_session(mode="attach", port=9999) 连接;安装时使用自定义
端口的,填写该端口。attach 不会新建 GUI 或本次启动日志。提交问题时请附上
版本、手动启动对照结果和相关错误片段,单独一个退出码不足以确定原因。
git clone https://github.com/mapleleavessssssss-wq/vivado-mcp.git
cd vivado-mcp
pip install -e ".[dev]"
各版本的完整变更和迁移说明见 CHANGELOG。
| 你想解决的问题 | 使用方式 | 得到什么 |
|---|---|---|
| 修改 RTL 后,时序到底变了多少? | get_timing_report(output_format="json"),保存结果后在下一轮传 baseline_file |
setup / hold / pulse-width 指标、设计阶段、同阶段可比指标的差值;不会把综合估算当成最终验收 |
| 同事只发来一份时序报告 | get_timing_report(report_file="reports/timing.rpt", output_format="json") |
无需 Vivado 会话即可分析;报告的来源、缺失字段与未验证项明确列出 |
| 仿真某处出现 X/Z,或握手是否发生? | query_waveform(file_path="sim/trace.vcd", ...) |
信号层次、时间窗内变化、未知值与条件匹配;输出数量有上限 |
| 拿到 CDC 报告,想定位跨域风险 | get_cdc_report(report_file="reports/cdc.rpt") |
时钟对、规则和严重级别、明细、豁免与缺失证据;不凭零告警宣称签核 |
| 接手陌生工程,不知道从哪开始 | 工程接管 Skill | 环境与工程摸底、首个阻塞问题、后续工具调用路线 |
完整参数、可复制例子和 Skills 使用方法见 调试指南。波形查询当前支持 VCD;WDB/FST 请先使用相应工具导出 VCD。
部分同类 Vivado MCP 采用数百个细粒度工具,其中许多只是单条 Tcl 的包装。问题是:
run_tcl 或 safe_tcl 完成。本项目只保留真正有本地价值的工具——Tcl 做不了或做不好的事:
compare_xci 纯 Python 对比两个 XCI 文件,不需要 Vivado其他(BD / 仿真 / XSCT / 硬件调试 / IP 配置等)全部交给 run_tcl,让大模型自己拼 Tcl。
doctor 只读定位环境问题,doctor --fix 才执行受限、可备份的修复wait=False 立即返回 job id,再由 get_run_progress 查询safe_tcl 自动对路径/标识符做 Tcl list 转义,Windows 含空格/中文/$ 的路径也能用port=0 自动分配空闲端口启动独立实例;server 只绑单一端口,被占即退出不滑动Prompts 解决的是“按什么顺序做、什么证据才算完成”,不会增加工具数量。正文只在选择该 Prompt 时加载,不会全部常驻上下文。
五个可分发 Skill 与对应 Prompt 使用同一份正文。查看及导出:
vivado-mcp skills list
vivado-mcp skills export ./fpga-skills
vivado-mcp skills export ./fpga-skills --skill vivado-cdc-audit
将导出的目录按客户端支持的方式导入即可。导出不覆盖已有修改:内容相同则跳过,冲突则报错,可选新目录重新导出。无需安装 SynthPilot 或 oh-my-fpga。
| Prompt | 用途 | 核心门禁 |
|---|---|---|
fpga_workflow |
RTL 到 bitstream 的完整流程 | 上游失败不进入下游,post-route signoff 后才写 bitstream |
debug_timing |
setup/hold 时序收敛 | baseline → 分类 → 最小修复 → 同指标复测,禁止假 false path |
debug_gt_mapping |
GT 引脚与 Lane 映射 | 原理图/XDC/实际布局三方证据一致后再改约束 |
debug_ip_config |
IP 参数与 XCI 漂移 | golden 来源可信、修改后 regenerate + synthesis 验证 |
debug_pcie |
PCIe 分层排查 | 物理 → 时钟复位 → 时序 → 协议,上一层未过不下钻 |
simulation_bringup |
XSim 编译、运行与失败分类 | compile 不等于 pass;必须有非零测试和新鲜运行结果 |
cdc_audit |
CDC crossing 审计 | 不用 waiver 隐藏真实 crossing,约束必须有结构证据 |
ila_hardware_debug |
ILA 插入、烧录与采波 | bit/ltx 配对、明确 JTAG target、有限等待,禁止全机 kill XSim |
project_bringup |
接管或建立工程,按请求范围推进 | 静态预检、功能验证和构建逐阶段记录 |
waveform_debug |
已有 VCD 离线查询与必要时导出 | 明确信号、窗口、截断与独立测试结论 |
constraints_authoring |
编写或审查 XDC | 参数来自接口/板级事实,验证对象、min/max 与例外覆盖 |
start_session 工具支持三种模式:
| mode | 效果 | 适合 |
|---|---|---|
"gui" (默认) |
先 probe 端口(0.3.19+):已有 vmcp server 直接 attach,没有才 spawn vivado -mode gui |
交互开发、实时观察波形/原理图;支持复用你手动开的 GUI(只要装过 vivado-mcp install) |
"tcl" |
vivado -mode tcl 无头子进程 |
CI、批处理、不需要 GUI |
"attach" |
只 attach,不 spawn(端口无 server 时直接报错) | 严格保证不会启新 GUI 进程的场景 |
用户: 启动 GUI 会话
AI: [调用 start_session(mode="gui")]
→ 端口空 → spawn 新 Vivado;端口已有 → attach 到现有 GUI(0.3.19+)
用户: 我刚自己手动开了 Vivado GUI,直接接管
AI: [调用 list_sessions] → 看到 <external@9999>(你手动开的)
[调用 start_session(mode="gui")] → 自动 attach,不会再开第二个 GUI
用户: 批处理跑 10 个项目
AI: [调用 start_session(mode="tcl")] → 无 GUI,跑得更快
长时间综合/实现可以启动后立即返回,不占住一次 MCP 调用:
run_synthesis(run_name="synth_1", session_id="default", wait=False)
→ 综合已异步启动。job_id: default:synth_1
get_run_progress(run_name="synth_1", session_id="default")
→ STATUS / PROGRESS / 当前 phase / log tail / 最后更新时间
job_id 是由 session_id:run_name 组成的任务回执;查询时将两部分分别传给 get_run_progress。默认 wait=True 保持原有“等待完成并自动诊断”的兼容行为。每个 session 的命令严格串行,不同 session 可并行。
vivado://sessions:当前所有会话的结构化状态vivado://session/{session_id}/status:指定会话的状态、模式、端口与存活信息| 工具 | 说明 |
|---|---|
start_session |
启动 Vivado 会话(gui/tcl/attach 三种模式) |
stop_session |
关闭指定会话(B13 修复:taskkill /T 递归杀进程树 + 清 vivado_pid*.str) |
list_sessions |
列出所有活跃会话 |
| 工具 | 说明 |
|---|---|
run_tcl |
执行任意 Vivado Tcl 命令——AI 拼命令的主力 |
safe_tcl |
带参数模板,自动 Tcl 转义,路径含空格/中文/$ 时使用 |
| 工具 | 说明 |
|---|---|
run_synthesis |
运行综合,Python 轮询不阻塞,完成后自动 open_run + 诊断 |
run_implementation |
运行实现(布局布线) |
get_run_progress |
0.3.2 查 run 实时进度:Phase 序列 + log 尾部 + mtime,log 超 2 分钟不更新自动提示可能卡住 |
generate_bitstream |
生成比特流(默认前置 CRITICAL WARNING 安全检查) |
program_device |
编程 FPGA 设备(封装 open_hw_manager → connect → program) |
| 工具 | 说明 |
|---|---|
get_next_suggestion |
0.3.2 11 档决策表:没项目 → open/create,没顶层 → set_property TOP,综合完成 → run_implementation...每档附可执行命令 |
get_project_info |
0.3.0 一次拿齐项目摸底:名称/part/顶层/源文件/XDC/IP/runs 状态 |
get_pre_commit_summary |
**0.3. |