pango-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pango-mcpSimulate my counter testbench and check the waveform for q==10"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pango-mcp
An MCP stdio server that gives any MCP-capable agent — Claude Code, Codex CLI, or your own client — hands-on control of a real FPGA toolchain: simulate, assert, synthesize, scan the JTAG chain, capture on-chip waveforms, and configure real silicon behind explicit confirmation gates.
On the name. The server is
pango-mcpbecause Pango Design Suite is the toolchain it drives end to end — synthesis, place & route, bitstream, ILA, device configuration. Its MCP tools keep thefpga_*prefix: several of them (fpga_sim,fpga_msim_*) drive Icarus Verilog and ModelSim/Questa, which have nothing to do with Pango, and naming thosepango_*would be a lie.
Who it's for
You already have an FPGA toolchain installed, and you want an agent to drive it — and to be provably wrong when it is wrong.
That second half is the point. PDS and ModelSim both exit 0 on failure. Every
tool here decides success by parsing the log (E: lines, Errors: N, the
bitstream success line, UVM error counts), never by exit code, and returns a
structured verdict — ok, parsed errors, timing/utilization, diagnostics —
instead of a raw log the model can narrate its way around.
Related MCP server: vivado-mcp-agent
What works with what
Capability | Backend | You need |
Verilog simulation, assertions, waveforms | Icarus Verilog |
|
VHDL, coverage, UVM, encrypted IP | ModelSim / Questa | install + license |
Synthesis, P&R, bitstream, reports | Pango Design Suite | install + license |
JTAG scan, SRAM/SPI configuration | PDS | board + cable |
On-chip debug (ILA/FLA capture) | PDS fabric inserter + JTAG | board + cable |
Primitive / IP / doc retrieval | offline corpus | built from your PDS install |
Platform. The server runs on any OS with Node ≥18.17 — it starts cleanly
with nothing installed and reports what is missing. The vendor tools it drives
are Windows-first in practice, and the bare-metal JTAG path
(fpga_jtag_*, fpga_ila_*) is Windows-only (it loads ftd2xx.dll through
ctypes.WinDLL). Python 3 is required for the JTAG layer only.
Install
git clone https://github.com/Renkos1/pango-mcp.git
cd pango-mcp
pnpm install
pnpm check # syntax gate over every module
pnpm test:unit # 33 tests — no toolchain, no board neededThen point it at your tools. Copy pango-mcp.env.example to a file outside
the install directory, fill in your paths, and set PANGO_MCP_ENV_FILE:
PANGO_MCP_PDS_2025=<path>\bin\pds_shell.exe
PANGO_LICENSE_FILE=<path>\pango.lic
PANGO_MCP_MODELSIM_HOME=<modelsim install root>
PANGO_MCP_MODELSIM_LICENSE=<path>\modelsim.licThe server is spawned over stdio with a safe env subset, so it does not inherit your shell's
LM_LICENSE_FILE/MGLS_LICENSE_FILE. SettingPANGO_MCP_MODELSIM_LICENSEis required for realfpga_msim_*runs.
Nothing is baked in: every path comes from config or env, and an unset one fails
with a message naming the knob. pango-mcp.config.json is an alternative to env
vars and additionally declares remote hosts and board profiles — see
pango-mcp.config.example.json.
Register with an agent
Claude Code:
claude mcp add pango -- node <ABSOLUTE_PATH_TO_REPO>/src/index.mjsCodex CLI (~/.codex/config.toml):
[mcp_servers.pango]
command = "node"
args = ["<ABSOLUTE_PATH_TO_REPO>/src/index.mjs"]Project-level .mcp.json:
{ "mcpServers": { "pango": { "command": "node", "args": ["<ABSOLUTE_PATH_TO_REPO>/src/index.mjs"] } } }Try it
Ask the agent to call
fpga_env— you should see your iverilog/PDS/ModelSim paths.Have it write a small design + testbench, then call
fpga_simwithwave:true.Have it call
fpga_asserton the result (log_contains: PASS,vcd_final_eq: q == 10).Negative control: ask for a testbench that
$fatals.okmust come backfalse. If it doesn't, that is the bug worth reporting.
Tools
43 tools, tiered. Call fpga_capabilities for the live catalog — it is the
authoritative list, generated from the same source the tests check.
The six you will actually use:
Tool | Does |
| What toolchains this machine has, with paths |
| iverilog compile + run; optional VCD and one-step waveform |
| Declarative pass/fail over a log or VCD — the real verdict |
| Any VCD → SVG/HTML timing diagram, optionally opened in a browser |
| PDS through |
| Read JTAG IDCODEs — read-only, always safe |
Everything else groups into: ModelSim (fpga_msim_*), PDS build/report
(fpga_pds_*, fpga_log_extract), device and flash (fpga_flash_*,
fpga_gen_*, fpga_cdt, fpga_exe), bare-metal JTAG (fpga_jtag_*), on-chip
debug (fpga_ila_*), and retrieval (fpga_primitive_lookup, fpga_ip_lookup,
fpga_doc_search, fpga_vault).
Full reference, including every argument: README.zh-CN.md.
Safety
This server is not a sandbox. It runs vendor binaries and writes to real silicon with your privileges. Run it as a local subprocess of a trusted agent; do not expose it to untrusted callers. Read SECURITY.md before wiring it into anything shared.
Every tool that writes to a device stops at a confirmation gate: it requires
confirm:true, a matching expectIdcode, and a real prior scan before it does
anything. Without confirmation it returns phase:"confirm" and touches nothing.
This is enforced in code and covered by tests, not just documented.
SPI flash programming is persistent and can leave a board unable to boot from flash. SRAM configuration is volatile and recoverable.
Cost control
Returns are compact by default — errors, timing, utilization, diagnostics, key
lines — with the full log written to disk and reachable via detail:"full".
Builds are cached by a hash of source content plus project semantics, so an
unchanged source returns the previous summary instantly. Knowledge retrieval is
keyword-scored with no embedding model and no API call; semantic search is
opt-in and falls back silently to keyword when unconfigured.
Docs
CONTRIBUTING.md — three contribution tiers; most of this is testable with no hardware
SECURITY.md — threat model, what's in scope, operator guidance
test/README.md — what every test needs and what it does without it
CHANGELOG.md — including the pre-1.0 stability policy
docs/ILA-FINDINGS.md — how the headless FLA capture path was derived
skills/ — the Pango PDS flow skill shipped with the server
License
Apache-2.0. See NOTICE for vendor trademarks and the exact provenance of the shipped knowledge corpora — this project bundles no vendor software and no vendor documentation text.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides AI assistants with a complete FPGA toolchain for HDL linting, simulation, synthesis, and place-and-route across various hardware targets. It features a GitHub-backed IP core registry that enables users to search for and import MIT-licensed cores directly through their chat interface.151MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for deterministic Vivado FPGA automation including project scaffolding, simulation, synthesis, implementation, and gated bitstream generation.4MIT
- AlicenseAqualityBmaintenanceAn MCP server for FPGA toolchain operations including linting, simulation, synthesis, place-and-route, bitstream programming, and IP core registry via GitHub.255MIT
- AlicenseAqualityBmaintenanceEnables AI agents to design hardware by writing C-like HDL and compiling it to Verilog, with real toolchain verification including synthesis checks.101MIT
Related MCP Connectors
Run, build, and validate firmware on virtual hardware from your AI agent. Hardware knowledge corpus.
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Remote MCP for Android CLI agent build gate, structured receipts, audit logs, and reviewer-ready evi
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