Claude Code and MCP
The EMI Analyzer app includes an MCP server, so a coding agent such as Claude Code can review a board for you: analyze it, read what the checks found, judge each finding against the board, and compare two versions after a fix. It works with the app on your computer, so boards and results never leave it.
What you need
- EMI Analyzer 0.4.0 or newer, the desktop app, which brings the MCP server. Download it from the releases page, or on macOS:
brew install --cask embeddedci-com/tap/emi-analyzer - Docker, which runs the analysis. The app's install guide covers it.
- Claude Code, or any other MCP client.
Install the Claude Code plugin
Add the EmbeddedCI plugin marketplace, then install the plugin:
claude plugin marketplace add embeddedci-com/benchpod-mcp
claude plugin install emi-analyzer@benchpod-mcp
The marketplace also holds the BenchPod plugin; the two are separate, and you only need this one to analyze boards. The plugin finds the installed app and starts it when it is not running.
Review a board
Ask in plain words, for example:
Review ~/boards/amp/amp.kicad_pcb for EMI problems.
The plugin's emi-review skill has the agent analyze the board, read the findings worst first, and check each one against the board itself before it reports: what a net carries (a long I2C line is not a clock), what a pin is (a current monitor's sense input needs no decoupling capacitor), and whether a connector leaves the enclosure. You get a short list of real problems, each with where it is, why it matters and the fix, plus the findings it set aside and why.
After you change the layout, save the board and ask again. The agent analyzes the new version and compares it with the last one: which findings are fixed and which are new.
Other MCP clients
The server is the app's emi-local program with the mcp command, on stdio. On macOS:
"/Applications/EMI Analyzer.app/Contents/MacOS/emi-local" mcp
On Linux, the .deb and .rpm put emi-local on your PATH. Two environment variables change where it looks:
| Variable | Effect |
|---|---|
EMI_ANALYZER_URL | Use the app at this address (for example http://127.0.0.1:7465) and never start one |
EMI_ANALYZER_MCP_STATE | Where the server remembers which project each board file became, instead of the app's config folder |
In the Claude Code plugin, the same two are the app_url setting and, for a build from source, emi_local (the path to its emi-local).
Tools
| Tool | What it does |
|---|---|
status | The app, its version and data folder, and how its Docker worker is doing |
analyze_board | Analyze a .kicad_pcb (with its .kicad_pro and emi.rules.yaml), a project folder, a Gerber folder or a .zip. Each new upload is a version of the board's project |
run_status | A run's progress, waiting for it when asked |
list_projects, list_versions | Projects, and a project's versions with the analysis of each |
findings, finding | What the checks found, filtered and paginated, and one finding in full |
decoupling, nets | Supply impedance per rail and IC, and per-net lengths, delays and skew |
compare | What changed between two versions: findings fixed and new, nets whose length changed |
checks | The checks, their settings, and the emi.rules.yaml format |
run_esd, esd | Start and read an ESD simulation of the lines that leave the board |
run_cables, cables | Start and read a cable budget for the board's connectors |
open_in_app | A link to a version or a comparison in the app |
Privacy and limits
The server talks only to the app on your computer, over its loopback address, and the app runs the analysis in Docker on the same computer. Nothing is uploaded. Your AI client sees the tool calls it makes and their results, under its own privacy policy.
Results compare versions of your own board and point at likely causes. They are not a pre-compliance test and do not predict whether a board passes at a test lab.