← Back to search

@intelligentelectron/pcb-lens

GitHub Actions Scanned 7d ago

MCP server for IPC-2581 PCB layout analysis and review

npm
B
80.5 / 100

Versions

1.2.0latest
Jul 16, 2026
1.1.0
Jun 23, 2026
1.0.4
Jun 18, 2026
1.0.3
Jun 18, 2026
1.0.2
Jun 18, 2026
+ show 13 moreshow less
1.0.1
Jun 17, 2026
1.0.0
Jun 17, 2026
0.1.0
Mar 13, 2026
0.0.10
Mar 3, 2026
0.0.9
Mar 2, 2026
0.0.8
Feb 27, 2026
0.0.7
Feb 27, 2026
0.0.6
Feb 27, 2026
0.0.5
Feb 27, 2026
0.0.4
Feb 24, 2026
0.0.3
Feb 23, 2026
0.0.2
Feb 23, 2026
0.0.1
Feb 23, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 7

get_pcb_net
annotations: none low

Look up nets in a PCB layout by name and inspect their connectivity and routing. Provide a net-name pattern (a regular expression); for each matching net you get the connected component pins (grouped by component), the layers the net uses, a per-layer routing summary (trace widths, number of routed segments, and total routed length), and a via summary (count per drill size). All distances are in microns. Copper that is filled as a pour or plane instead of drawn as a trace is reported as routed on its layer but without a width or length, so a net can be fully routed yet show no trace width. A net that returns pins but no routing was most likely exported without its routed-copper data. Use a specific pattern: one that matches every net in the design is rejected. Set detail='full' to additionally return exact geometry — every via coordinate and the full point-by-point shape of each routed trace (including arcs for curved traces); for very large nets this geometry is sampled and the response is marked truncated.

file string
get_pcb_component
annotations: none low

Look up a single component by its exact reference designator (refdes). Returns its placement (position, rotation, layer), package and BOM details, the nets connected to each pin, and a summary of its pads (count and the distinct pad shapes). The refdes must match exactly; it is not a pattern. Set detail='full' to additionally get the exact coordinate of every pad (sampled for components with very many pads).

file string
get_pcb_metadata
annotations: none low

Get a high-level overview of a PCB design file: file metadata, the layer stackup, design units, and the total component and net counts. Use this first to understand a design's size and layers before querying specific components or nets.

file string
export_cadence_constraints
annotations: none low

Export the design rules and constraints from a Cadence Allegro .brd file to a .tcfx file, which you can then read with get_constraints. Windows only, and requires a Cadence SPB installation (detected automatically).

board string
get_constraints
annotations: none low

Query layout constraints from a Cadence .tcfx file. Without a section name, returns an overview of all sections and object counts. With a section name, returns all constraint objects with their attributes, references, and members. Common sections: PhysicalCSet, SpacingCSet, ElectricalCSet, NetClass, Design (stackup), Region.

file string
render_net
annotations: none low

Render a net's routing geometry as SVG from an IPC-2581 file. Returns an SVG showing board outline, trace paths by layer, exact SMD pad shapes, via annular rings, and pin labels.

file string pattern string
export_cadence_ipc2581
annotations: none low

Export a Cadence Allegro .brd file to an IPC-2581 XML file, the format the other PCB query tools (get_pcb_metadata, get_pcb_component, get_pcb_net) read. Windows only, and requires a Cadence SPB installation (detected automatically).

board string

Permissions 4

network medium
Server uses network capabilities via: fetch()
filesystem low
Server uses filesystem capabilities via: fs sync ops, open(), os, pathlib, tempfile
shell high
Server uses shell capabilities via: child_process, execSync(), spawn(), subprocess
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 26

low
Tool 'get_pcb_net' has no annotations annotation_checker · 100%
low
Tool 'get_pcb_component' has no annotations annotation_checker · 100%
low
Tool 'get_pcb_metadata' has no annotations annotation_checker · 100%
low
Tool 'export_cadence_constraints' has no annotations annotation_checker · 100%
low
Tool 'get_constraints' has no annotations annotation_checker · 100%
low
Tool 'render_net' has no annotations annotation_checker · 100%
low
Tool 'export_cadence_ipc2581' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: vitest@3.2.4 (GHSA-5xrq-8626-4rwp) dependency_analyzer · 95%
info
package.json metadata manifest_parser · 100%
info
Tool: get_pcb_net manifest_parser · 85%
info
Tool: get_pcb_component manifest_parser · 85%
info
Tool: get_pcb_metadata manifest_parser · 85%
info
Tool: export_cadence_constraints manifest_parser · 85%
info
Tool: get_constraints manifest_parser · 85%
info
Tool: render_net manifest_parser · 85%
info
Tool: export_cadence_ipc2581 manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (13) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 22 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%