npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@eoinedgenpm/gowin-mcp

v0.1.0

Published

Local Gowin MCP server for isolated FPGA builds, reports and board measurements

Readme

Gowin MCP

Local MCP server for Gowin builds, reports, programming and board measurements. Vendor tools stay on the host. Each build gets its own source snapshot, logs, configuration and artifact hashes.

Install

Python 3.11+:

python -m venv .venv
# Linux/macOS
.venv/bin/python -m pip install -r requirements.txt
# Windows
.venv/Scripts/python.exe -m pip install -r requirements.txt

Launch gowin_lab.py with that Python interpreter over stdio. Set GOWIN_WORKSPACE to your FPGA repository and GOWIN_HOME to the Gowin install. The default workspace is the process's current directory. Supported project locations are 0*/gowin*/*.gprj and tangnano20k/*/*.gprj. Projects need impl/project_process_config.json with their top module. Declared sources must resolve inside the chosen workspace.

An npm launcher is also available:

npx @eoinedgenpm/gowin-mcp --check
npx @eoinedgenpm/gowin-mcp

Set GOWIN_PYTHON to the prepared virtual environment interpreter if needed. The launcher checks Python and dependencies; it does not install Python or modify your Python environment automatically. Set the same workspace/vendor environment variables as for direct Python launch.

For a local Codex client, replace these paths with your checkout and interpreter:

codex mcp add gowin --env GOWIN_WORKSPACE=C:\Users\Eoin\git\GBA-FPGA --env GOWIN_HOME=C:\Gowin\Gowin_V1.9.12.04_x64 -- C:\Python313\python.exe C:\path\to\gowin-mcp\gowin_lab.py

The registration command is documented in OpenAI's MCP guide. Other clients can launch the same command, arguments and environment using their stdio-server configuration.

Tools

| Tools | Purpose | |---|---| | environment, projects | Discover tools, serial interfaces, free space and project manifests | | prepare_run, edit_variant | Snapshot a project and edit RTL/constraints in isolation | | run_phase, run_status, cancel_job | Run synthesis, place/route or the complete flow; collect logs and artifacts | | read_artifact, read_report_tables | Read reports with original labels, units and hashes | | scan_cables, scan_chain | Identify the cable and FPGA before deployment | | program_sram | Program one selected target with a matching bitstream SHA256 | | capture_gao | Acquire internal digital signals through a matching GAO debug core | | capture_logic, analyze_vcd | Capture with sigrok and count known digital transitions | | analyze_csv, record_measurement | Analyze external scope/power exports or record operator readings | | compare_runs | Compare phase durations, source identity, reports and physical measurements separately |

See the programmer and measurement workflow and the Nano 20K handheld assessment.

Platform and device support

The server uses portable Python and is tested on Windows, Linux and macOS. Local Gowin compilation requires a vendor-supported host and working license. macOS can use report/capture analysis and programming tools that support the attached device; installing this server does not add a macOS Gowin compiler.

GAO and Power Analyzer are different instruments: GAO captures digital signals, and Power Analyzer estimates power. Neither provides measured supply voltage. FNIRSI scopes and Bus Pirate revisions need exact model/protocol details before direct control is implemented. Scope CSV import and manual measurement records are available now. Sigrok capture requires a supported device driver.

No arbitrary shell/Tcl execution, flash erase, supply setpoints or Bus Pirate pin-mode changes are exposed. One service process should own each workspace.

Tests

python test_gowin_lab.py

Tests exercise actual MCP calls and subprocess behavior using fixtures. Vendor builds were separately verified on Windows with Gowin V1.9.12.04 for ten Tang Nano 20K teaching projects and the GBA-FPGA LCD test. Hardware captures and programming have not yet been verified through this server.

MIT license. Gowin software and upstream console cores retain their own licenses.