pango-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PANGO_LICENSE_FILE | No | Path to the Pango Design Suite license file. | |
| PANGO_MCP_ENV_FILE | No | Path to a file (outside the install directory) containing the toolchain environment variables. | |
| PANGO_MCP_PDS_2025 | No | Path to the Pango Design Suite pds_shell.exe executable. | |
| PANGO_MCP_MODELSIM_HOME | No | Root directory of the ModelSim/Questa installation. | |
| PANGO_MCP_MODELSIM_LICENSE | No | Path to the ModelSim/Questa license file. |
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fpga_vaultA | 检索/读取/校验 knowledge-vault,并在资产被读取时写 trace asset_use;recall 只读扫描 trace 反查受影响会话,不自动改 tier/status。candidate 只由 fpga_assert 或 fpga_ila_flow 的客观绿结果写入。 |
| fpga_envA | 报告 FPGA 工作流可用工具:iverilog/vvp、verilator、gcc、node/pnpm,以及 PDS/cdt 路径、本地 PDS license 可用性/配置来源和本机 MCP server 实例归属。默认探本机;传 host 则经 SSH 探该远程执行设备(execution-device layer,与本机同一套探测逻辑)。 |
| fpga_server_cleanupA | 审计本机 pango-mcp stdio server 的 PID、父进程、年龄与私有内存;只把父进程已消失或父 PID 已复用的实例列为 orphan_candidate。默认只读;confirm:true 才终止经二次身份复核的孤儿。仍由客户端持有的实例永不跨任务强杀。 |
| fpga_project_infoB | 解析 .pds 工程文件,返回目标器件、顶层源文件、源文件列表、约束文件与括号平衡检查。 |
| fpga_pds_create_projectA | 创建一个可供 pds_shell 尝试编译的最小 .pds 工程(RTL/约束/.pds)。器件无关:目标 family/device/speedgrade/package 是板级物理信息,由用户/Target Profile 给定,工具不内置默认/不猜。推荐传 board:(config 的 boards 里一套完整 target,含引脚→自动生成 FDC);或把 4 个字段全显式给。缺则报错点名所缺。 |
| fpga_pds_create_blink_projectA | 创建面向真实板卡的 LED blink PDS 工程,生成 RTL、FDC 和 .pds。器件无关:必须提供完整目标器件 family/device/speedgrade/package(由用户/Target Profile 给定,工具不内置默认)。 |
| fpga_pds_reportsA | 解析 PDS 构建日志、时序、资源与 bitstream 输出;不运行 PDS。 |
| fpga_pds_runA | 用 pds_shell.exe -project <x.pds> -run 运行任意流程阶段。target ∈ {compile, synthesize, dev_map, pnr, report_timing, report_power, gen_bit_stream, gen_netlist}(注意 dev_map/pnr,非 device_map/place_route;早期目标如 dev_map 可快速拿资源不跑 P&R)。不信退出码,解析 E:/bitstream success line + effsoftecrypt 自检。默认紧凑摘要 + detail:'full' 兜底 + 按输入 hash 缓存。 |
| fpga_pds_compileA | fpga_pds_run 的出比特流预设:默认 runTarget=gen_bit_stream,跑全流程产 .sbit。其余行为同 fpga_pds_run(紧凑摘要 + detail/cache + effsoftecrypt 自检)。 |
| fpga_pds_batchA | 并行运行多个已准备好的独立 PDS project clone,并汇总每个 variant 的 timing/errors/artifacts。安全门:每个 pdsPath 必须位于唯一且互不嵌套的项目目录,prj_work_dir/prj_impl_dir 不得外置;同一 .pds 或共享 prj_tasks 会在启动前拒绝。默认且最高 2-way(P&R 内存密集)。任一 variant 失败则顶层 ok=false,但保留全部逐项结果。 |
| fpga_log_extractA | 对一段日志(或日志文件)按 profile 抽取关键信息:pds(错误码/阶段/时序/资源/已知问题)、cdt(IDCODE/done bit/verify)、sim(失败标记)。用于对落盘日志二次廉价提取,省 token。 |
| fpga_pds_scanA | 启动/复用 cdt_js,并用 cdt_cfg 扫 JTAG 链、读取 IDCODE。只读动作。默认本机;传 host 则在该远程设备上扫(execution-device layer)。 |
| fpga_flash_sramA | 烧 .sbit 到 FPGA SRAM。危险动作:必须 confirm=true,且内部先 scan 并校验 expectIdcode。 |
| fpga_flash_spiA | 通过 FPGA JTAG->SPI bridge 持久烧录。危险动作:必须 confirm=true,且内部先 scan 并校验 expectIdcode。 |
| fpga_gen_sfcA | 离线把 .sbit 转成 .sfc(cfg_gen_sfc),不连器件、不需 cable/confirm。flash 型号(-device_name)、读 opcode、起始地址全部参数化,可烧任意所连 FPGA 的配置 flash;不内置任何板级默认。多启动用 fpga_gen_multi_file。 |
| fpga_gen_multi_fileA | 离线把两个或更多 .sbit 合成多启动/升级数据流(黄金+应用回退、SPI/BPI 升级等)。不连器件。infile 与 sbitStartAddress 由调用方给定,偏移不写死;type 选数据流类型。 |
| fpga_gen_chain_fileA | 离线把两个或更多 .sbit 合成 SPI chain 文件。不连器件。可选生成 bin 及字节/位反转,全部参数化。 |
| fpga_jtag_scanA | 经 FT2232 直读 IDCODE,不走 cdt_js/PDS、无需 license。只读、设备安全。与 fpga_pds_scan 互斥用 cable:cdt_js 在跑时先停。 |
| fpga_jtag_gen_svfA | 经 cdt_cfg |
| fpga_jtag_flashA | 经 FT2232 回放 CRAM SVF 配置 FPGA(SRAM、易失/可逆,~15s@6MHz),校验 done bit。危险动作:必须 confirm=true,并先裸机 scan 校验 expectIdcode;SVF 内仍做第二次 IDCODE TDO 检查。给 --sbit 时自动离线生成/缓存 SVF。不走 cdt_js/GUI。 |
| fpga_jtag_captureA | 本地 ILA 的默认抓波路径:经 FT2232 武装片上 FLA、读回采样缓冲并导出(VCD/JSON/CSV/可选 raw),不走 cdt_js/GUI。通常先 fpga_jtag_flash,再调用本工具;width/depth/信号名来自设计 .fic 或显式给定。PDS 不在 .fic 暴露物理 stride:reader 先按 vendor 标准 width+1 精确探测,必要时扩大读取并仅凭 protocol padding 稀疏度推断;歧义 fail-closed,也可显式给 paddingBits。capture.framing 始终返回 paddingOneCounts/header/tail/read length。可选值/边沿触发(--trig),需 ila.mjs 建过 Match-Unit 的 FLA;窗口按触发对齐返回。导出路径的 parent 不存在时自动递归创建。 |
| fpga_cdtA | 对 cdt_js 跑任意 cfg_*(cdt_cfg) 或 dbg_*(cdt_dbg) Tcl,覆盖扫链/读属性/配置/SPI flash/ILA 抓波/virtual-IO 全套。读类(scan/read/list/help)自由;写器件类(cfg_program/cfg_jtag_flash_erase|program/dbg_program 等)需 confirm:true + expectIdcode(先 scan 校验匹配)。connect:true(默认)自动包 connect/scan_chain/disconnect,只需给 commands;raw tcl 用 {{PORT}} 占位端口。 |
| fpga_exeA | 在 PDS bin 目录跑构建/分析类工具(ip_generate/ip_compiler/ip_tar/cdt_bts/ppc/ppp/rf_analyzer/evp/pne/state/de/pce/ta)并回提取后的输出。任意 bin exe 都可用 -help/-version 探测其用法。器件/JTAG 类(cdt_cfg/cdt_dbg/cdt_js/cdt_ins)与 GUI(pds.exe/assistant) 不在此列——用 fpga_cdt / fpga_pds_run。 |
| fpga_ila_list_netsA | 解决 ILA 抽头的根本问题:综合 flatten 后的网名 ≠ RTL 名。本工具在隔离旁路副本中 compile→run_ads,再调用 Fabric Inserter 的 ins_list_nets 取得 .fic 真正可消费的全层级标量网名;不会从模块定义猜路径。可选 signals 会展开唯一总线并返回 exact/renamed/hierarchical/ambiguous/unverified/pruned,多实例同名必须传完整层级。fpga_ila_build 使用同一权威清单做 FIC 前 fail-fast。 |
| fpga_ila_generate_ficA | 低层原语:把器件 + 时钟网 + 信号网名清单写成符合 Pango .fic 规范的文本。入参必须是综合后真实网名——flatten 会改名(寄存器 tx→nt_led[0]、时钟 clk→nt_clk),勿假设 RTL 名保留;不知真名先用 fpga_ila_list_nets,或直接用 fpga_ila_build(接受期望名并自动解析)。生成后用 fpga_pds_register_fic 注册→fpga_pds_run gen_bit_stream 出仪表化 sbit。 |
| fpga_pds_register_ficA | 把已生成的 .fic 写入 .pds 工程的 Fabric-Inserter widget( |
| fpga_ila_consoleA | 无头 cdt_dbg 开不了 cable(open_cable 死锁,见 docs/ILA-FINDINGS.md);改为驱动 GUI Fabric Debugger 自带的 Tcl Console——它跑同一个 tcl 引擎且 cable 已由 GUI 打开。本工具在 GUI 所在的交互桌面(session 1)用 UIAutomation 把 tcl 打进 Console 并回读 transcript 增量,纯 AI 驱动、零人工点按。本机/远程皆可:本机(MCP 即跑在用户 session 1)直驱,远程经 SSH host 跳 session 1。可跑任意 dbg_* 命令(读 IDCODE/ADC、抓波 dbg_fla_*、import fic、program 等)。前提:目标桌面上 Fabric Debugger GUI 已打开并连好工程。写器件类命令(dbg_program 等)需 confirm:true + expectIdcode;工具先经同一 Console 只读 dbg_read_device_id 并匹配。 |
| fpga_ila_adc_readA | 便捷封装:经 GUI Tcl Console 执行 |
| fpga_ila_openA | GUI fallback,不是本地默认路径。本地普通 FLA 抓波优先 fpga_jtag_flash → fpga_jtag_capture;仅当裸机 capture 不支持目标功能,或需要远程交互桌面时使用。本工具把 Fabric Debugger 拉起并就绪:session-1 启动 cdt_dbg → Search JTAG Chain → 处理 Open Cable 弹窗 → 扫描 UIA 树检测 DebugCore。前提:projectDir 是已构建且含 FLA 核的工程目录。 |
| fpga_ila_captureA | GUI fallback,不是本地默认抓波路径;本地普通 FLA 优先 fpga_jtag_capture。仅在裸机 capture 不支持所需功能或远程 GUI 场景下,基于已完成的 fpga_ila_open 跑 dbg_fla_* 序列、导出 VCD、解析分组并生成交互波形查看器。 |
| fpga_ila_buildA | 把 ILA 仪表化构建合并成一次自纠调用:旁路综合→Fabric Inserter ins_list_nets 权威解析→FIC 前精确成员校验→生成/注册 .fic→gen_bit_stream。多实例同名回 ambiguous,未被 Inserter 验证或已优化的信号都会在修改工程前 fail-fast。返回 sbit+fic+报告;本地默认把 sbit 交给 fpga_jtag_flash,再把 fic 交给 fpga_jtag_capture。GUI flow 仅作远程/特殊功能 fallback。 |
| fpga_ila_flowA | GUI fallback:仅当裸机 fpga_jtag_flash→fpga_jtag_capture 不支持目标功能,或必须使用远程交互桌面时采用。危险动作必须 confirm:true。流程:可选推送工程→释放 cable→scan+IDCODE→烧录→fpga_ila_open→fpga_ila_capture→teardown;逐 stage 回报。普通本地 FLA 抓波不要优先走本流程。 |
| fpga_primitive_lookupA | 查 Logos2 原语库(gtp_lib.v, 153 个 GTP_* 原语):name=精确查端口/参数/最小例化模板;category=列某类(clock_pll/ff_latch/lut/mem/io_buffer/serdes_ddr/mipi/pcie/analog/config_misc);query=关键词召回;都不传=返回分类汇总。结构化、省 token。 |
| fpga_ip_lookupA | 查 PDS IP 目录(~65 核:PLL/RAM/DRM/FIFO/APM/DDR/Debug 等):slug=精确返回该核 header/支持器件/参数(含 enum 选项)/数据手册 PDF 路径;query=关键词召回;category=按类(子串匹配,如 'PLL'/'Memory'/'DDR');都不传=返回核清单汇总。每个核自带 datasheet PDF。 |
| fpga_doc_searchA | 检索 PDS 文档层:(1)已抽取的蒸馏文本 chunk(Tcl/编译流程/扫链烧录/ILA 调试,直接可用);(2)21 份 PDS 手册 + 62 份 IP 数据手册注册表(返回 PDF 路径,宿主 agent 可直接 Read 该 PDF)。query 关键词召回;kind 限定 all/chunk/manual/datasheet;不传 query 返回手册清单。无 embedding、零额外成本。 |
| fpga_waveA | 把 VCD(任意来源:fpga_sim/iverilog 或 fpga_msim_sim/ModelSim 的 artifacts.vcd)渲染成数字时序图。产出 .wave.svg + .wave.html 文件并返回路径;inlineSvg(默认 true)在结果里带完整 SVG 供能渲染的 AI 直接展示;open:true 用默认浏览器把波形弹给用户看。signals 选信号、maxSignals 控规模(默认 40)。需要交互式深查/缩放用 fpga_msim_view 打开 ModelSim GUI。 |
| fpga_simA | 用 iverilog 编译 + vvp 运行一个 Verilog/SystemVerilog 设计(含 testbench),返回日志与 ok 判定;可选注入 wrapper 生成 VCD。 |
| fpga_assertA | 对 fpga_sim 日志和/或 VCD 做声明式断言判定。支持日志包含/正则与 VCD 终值/指定时刻/永不等于。 |
| fpga_msim_simA | 用 ModelSim 头less 编译(Verilog/SV→vlog,VHDL→vcom)并运行(vsim -c -do)一个设计(含 testbench)。不信退出码:以 transcript 的 ** Error/Fatal 与 'Errors: N' 判定 ok($fatal 时 vsim 仍退 0)。可出 VCD 供 fpga_assert 判定;可选 coverage 返回结构化覆盖率(分支/语句/条件/翻转 %)。默认紧凑摘要 + detail:'full' + 按输入 hash 缓存。VHDL 是相对 fpga_sim(iverilog) 的增量能力。 |
| fpga_msim_compileA | 只编译(不运行 vsim):Verilog/SV→vlog、VHDL→vcom,做语法/早期检查。加密 IP(.vp/.svp,IEEE-1735)由 vlog 原生解密。ok 由 'Errors: N' 与 ** Error 判定,不信退出码。紧凑摘要 + detail:'full' + 缓存。 |
| fpga_msim_doA | 对 vsim -c 跑任意 do/Tcl,覆盖长尾:coverage(coverage save/report)、force/examine、add wave、UVM(+UVM_TESTNAME)、WLF 分析、自定义 run 控制等。强制 headless(-c)+末尾自动 quit -f(防挂)。纯仿真脚本自由跑;含可触达宿主的命令(Tcl exec / file delete|rename|copy|mkdir / open 写)需 confirm:true(仿 fpga_cdt 写器件护栏)。可给 top 让工具 vsim .,或在脚本内自行 vsim/vlog/vcom。 |
| fpga_msim_exeA | 在 ModelSim bin 目录跑库/覆盖率/波形/工具类 exe(vlib/vmap/vdir/vcover/wlf2vcd/vcd2wlf/vgencomp/vmake/vopt/sccom)并回提取后的输出。任意 bin exe 都可用 -help/-version 探测。编译/仿真(vlog/vcom/vsim)有专用工具(fpga_msim_compile/sim/do),不在此列。 |
| fpga_msim_viewA | 在本机打开 ModelSim 图形界面查看波形(交互式缩放/测量/层级展开)——给用户做深度查看的渠道。输入 VCD(自动 vcd2wlf 转 WLF)或 WLF;signals 可预选 add wave,省略则 add wave -r /。GUI 进程脱离 MCP 独立运行(detached),工具立即返回。注:开的是*本机 GUI(远程仿真的 VCD 已拉回本地,直接对本地路径用此工具);要静态图像/弹浏览器用 fpga_wave。launch:false 只做转换+给出命令不真正弹窗。 |
| fpga_msim_doc_searchA | 检索 ModelSim 命令参考(来自 docs/cmd_help/.txt 的结构化语料:command/description/arguments)+ 手册 PDF 注册表(docs/pdfdocs/.pdf,返回路径供宿主直接 Read)。command=精确命令(vsim/vlog/coverage/run/examine/force/vcd...)返回 description+arguments;query=关键词召回;kind=all/command/manual;不传 query 返回汇总(命令数+手册清单)。纯关键词、零额外成本。命令的完整 syntax 用 fpga_msim_exe -help 拿。 |
| fpga_capabilitiesA | 返回分层工具目录(tier0 热点/tier1 常用/tier2 专家) + 长尾能力如何经 fpga_cdt/fpga_exe 触达 + 成本/安全注意。用于发现完整 PDS 控制面而不撑大每个工具 schema。也回 serverVersion(运行实例的代码指纹)——与工作树 HEAD 不一致即服务陈旧,需重启。 |
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Renkos1/pango-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server