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
}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 100 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
让 Claude Code、Cursor、Codex 等 AI Agent 安全驱动本地 Xilinx Vivado。
30 个精选 MCP 工具覆盖会话、综合、实现、时序、XDC、IP、波形与烧录;其余 Vivado 能力由通用 run_tcl 承载。相比把每条 Tcl 命令包装成工具,这种设计占用更少上下文,也更容易跨 Vivado 版本维护。
| 30 个精选工具 | 8 个证据驱动工作流 | 2 个实时 Resources | GUI / Tcl / attach 三种会话 |
|---|
本项目控制的是你本机安装的 Vivado,不是云端综合服务。命令在当前用户权限下执行;工具说明和诊断建议以中文为主。
English: A lean MCP server for driving local Xilinx Vivado from AI agents. It provides 30 curated tools, 8 evidence-gated workflow prompts, GUI/headless/attach sessions, and raw Tcl escape hatches.
导航:快速开始 · 为什么是 30 个工具 · 工作流 Prompts · 工具列表 · 会话模式 · 架构 · 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,配置文件位置以客户端文档为准。
配置完成后重启客户端,即可加载 30 个工具、8 个工作流 Prompt 和 2 个会话状态 Resource。
在客户端中发送:
启动一个 GUI 会话,然后执行 Tcl: version -short
AI 应依次调用 start_session(mode="gui") 和 run_tcl("version -short")。成功时 Vivado GUI 会启动(已有注入服务则直接 attach),并返回版本号。失败时直接运行 vivado-mcp doctor,无需逐项猜配置。
git clone https://github.com/mapleleavessssssss-wq/vivado-mcp.git
cd vivado-mcp
pip install -e ".[dev]"
各版本的完整变更和迁移说明见 CHANGELOG。
部分同类 Vivado MCP 采用数百个细粒度工具,其中许多只是单条 Tcl 的包装。问题是:
create_bd_cell 这种就是写一行 Tcl 的事)run_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 时加载,不会全部常驻上下文。
| 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 |
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.4 生成 markdown 工程摘要直接贴 commit body:项目/时序 WNS+WHS/资源/CW/READY-WARN-BLOCK 门禁 |
| 工具 | 说明 |
|---|---|
get_critical_warnings |
提取并按 ID 分类 CRITICAL WARNING + ERROR,含 18+ 种已知 ID 的中文修复建议。0.3.9 加 compare_with_last=True 差分。0.3.14 errors=0+cw=0 但 STATUS=ERROR 时 tail runme.log 扫非标关键词(TclStackFree/segfault/中文路径 cmd 报错)。0.3.15/16 run_name='sim_*' 时:先 glob xsim/*.log;全空就自动 launch_simulation -scripts_only + Vivado session 内 exec 跑 compile/elaborate.bat 抓真错 |
check_bitstream_readiness |
0.3.0 烧板前一键 READY/WARN/BLOCK 综合判定 |
verify_io_placement_tool |
对比 XDC 约束(-dict/传统两种语法)与实际 IO 布局,GT 不匹配标为 CRITICAL |
xdc_lint |
0.3.0 纯 Python 静态 XDC 检查(PIN_CONFLICT / 漏 IOSTANDARD / DUPLICATE_PORT / CLOCK_NO_PERIOD / 跨文件冲突),不需 Vivado |
xdc_auto_fix |
0.3.3 自动补 IOSTANDARD + create_clock -period,dry_run 预览 + 板卡 profile(basys3/nexys-a7/arty-a7/zybo/kc705),不碰 PIN_CONFLICT |
verilog_compile_check |
0.3.4 用 iverilog / verilator 做语法 + 连接性检查,通常远快于完整 Vivado 综合。未装返回 SKIP + 安装指引,支持 Windows+scoop 路径自动发现 |
| 工具 | 说明 |
|---|---|
inspect_ip_params |
查询 IP 实例所有 CONFIG.* 参数(含 GUI 隐藏项),支持关键词过滤 |
compare_xci |
纯 Python 对比两个 XCI 文件的参数差异(无需 Vivado 会话) |
get_ip_status |
0.3.4 检查哪些 IP 需要升级 / 被锁定 / 已最新,附 upgrade_ip 批量建议 |
| 工具 | 说明 |
|---|---|
parse_xpr |
0.3.23 离线解析 .xpr 工程文件——不启 Vivado 秒级拿 part/顶层/源文件(按 fileset 分组,含 .v/.mem/.xci IP)/XDC/runs。对照 get_project_info 需先 open_project(中文路径会 TclStackFree 崩) |
parse_bit_header |
0.3.23 离线解析 .bit 头部——设计名/part(原始 7k325tffg900 + 规整 xc7k325tffg900)/构建日期时间/SHA256。烧前防错板 + 交付对账,Vivado 无 Tcl 命令读离线 .bit |
| `parse_lt |