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:

VariableEffect
EMI_ANALYZER_URLUse the app at this address (for example http://127.0.0.1:7465) and never start one
EMI_ANALYZER_MCP_STATEWhere 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

ToolWhat it does
statusThe app, its version and data folder, and how its Docker worker is doing
analyze_boardAnalyze 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_statusA run's progress, waiting for it when asked
list_projects, list_versionsProjects, and a project's versions with the analysis of each
findings, findingWhat the checks found, filtered and paginated, and one finding in full
decoupling, netsSupply impedance per rail and IC, and per-net lengths, delays and skew
compareWhat changed between two versions: findings fixed and new, nets whose length changed
checksThe checks, their settings, and the emi.rules.yaml format
run_esd, esdStart and read an ESD simulation of the lines that leave the board
run_cables, cablesStart and read a cable budget for the board's connectors
open_in_appA 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.