mcp-pcb-emcopilot
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pcb_parse_layoutA | Parse a PCB layout file (KiCad, ODB++, Gerber, Altium, IPC-2581). Returns session_id for subsequent queries. If a session_id from pcb_start_professional_review is supplied, parsed data is written into that existing session (preserves playbook state). |
| pcb_get_stackupB | Get layer stackup from a parsed design. |
| pcb_get_componentsA | Get component list from a parsed design. |
| pcb_get_netsA | Get net list from a parsed design. |
| pcb_get_viasA | Get via list from a parsed design. |
| pcb_get_tracesB | Get trace summary from a parsed design. |
| pcb_get_drill_tableA | Get drill table: sizes, counts, plating types, aspect ratios. |
| pcb_get_board_outlineA | Get board outline: dimensions, area, vertices, cutouts. |
| pcb_get_design_rulesB | Get extracted DRC constraints: min trace, min space, min drill, min annular ring. |
| pcb_get_copper_poursA | Get copper pour/zone data: areas, nets, clearances per layer. |
| pcb_get_manufacturing_notesB | Get fab notes, material specs, and manufacturing info. |
| pcb_calc_microstrip_impedanceA | Calculate microstrip trace impedance using IPC-2141 formulas. |
| pcb_calc_stripline_impedanceB | Calculate stripline (buried trace between ground planes) impedance. |
| pcb_calc_differential_impedanceB | Calculate differential pair impedance for USB, HDMI, Ethernet, etc. |
| pcb_calc_trace_widthB | Calculate minimum trace width for current capacity (IPC-2221). |
| pcb_calc_cpw_impedanceA | Calculate coplanar waveguide (CPW/GCPW) impedance using conformal mapping. Supports grounded and ungrounded CPW. |
| pcb_calc_skin_effectA | Calculate skin depth, AC resistance factor, and conductor loss including Hammerstad surface roughness correction. |
| pcb_calc_dielectric_lossB | Calculate dielectric loss (dB/inch, total dB) for a trace at frequency. Accounts for material loss tangent. |
| pcb_calc_plane_resonanceC | Calculate power/ground plane cavity resonance frequencies. Identifies modes that can amplify noise and cause EMI. |
| pcb_calc_via_stitchingA | Calculate required via stitching density and spacing for EMI containment at a given frequency. Uses lambda/20 rule. |
| pcb_analyze_cavity_resonanceA | Detailed power/ground plane cavity resonance analysis. Calculates all TM modes, Q factors, peak impedances, identifies problematic modes near common clocks, and provides decoupling cap recommendations. |
| pcb_calc_insertion_lossA | Calculate frequency-swept insertion loss (S21) and return loss (S11) for a PCB trace. Models conductor loss (skin effect + Hammerstad roughness), dielectric loss, and mismatch loss. |
| pcb_calc_return_lossA | Calculate return loss (S11), mismatch loss, and VSWR from impedance mismatch. |
| pcb_analyze_mode_conversionA | Analyze differential pair mode conversion: even/odd mode impedances, SCD21 from length asymmetry, common-mode current estimate, and EMI impact. |
| pcb_analyze_timingC | Analyze timing margins for high-speed signals. |
| pcb_analyze_crosstalkB | Analyze crosstalk between parallel traces (NEXT and FEXT). |
| pcb_analyze_viaC | Analyze via electrical characteristics. |
| pcb_analyze_differential_pairC | Analyze differential pair routing quality. |
| pcb_analyze_length_matchingB | Analyze trace length matching for a group of signals. |
| pcb_calc_eye_diagramA | Calculate statistical eye diagram for a high-speed serial channel. Models lossy transmission line (conductor + dielectric loss) and estimates eye opening, jitter, and pass/fail vs standard thresholds. |
| pcb_analyze_current_loopB | Estimate radiated emissions from a current loop for EMC. |
| pcb_estimate_bandwidthC | Estimate signal bandwidth and EMC concerns from rise time. |
| pcb_analyze_shieldingC | Analyze shielding effectiveness of an enclosure. |
| pcb_analyze_esdC | Analyze ESD protection for a circuit. |
| pcb_analyze_groundingC | Analyze grounding topology. |
| pcb_predict_complianceC | Predict EMC compliance for given design parameters. |
| pcb_analyze_return_current_densityA | Estimate return current density distribution on a reference plane beneath a signal trace. Shows how current concentrates under the trace at high frequencies and spreads at low frequencies. Identifies crowding near plane gaps/edges. |
| pcb_optimize_ground_stitchingA | Optimize ground via stitching pattern for a reference plane. Calculates spacing from lambda/20 rule and suggests via locations accounting for existing vias and plane gaps. |
| pcb_analyze_ddrC | Analyze DDR memory interface routing. |
| pcb_analyze_pcieC | Analyze PCIe lane routing. |
| pcb_calc_pcie_link_budgetA | Calculate PCIe link insertion loss budget and equalizer margin. Sums trace, connector, via, and package losses then compares against the PCIe generation spec limit. |
| pcb_validate_pcie_lanesA | Validate PCIe lane-to-lane skew against generation-specific spec limits. Calculates per-lane propagation delay and max skew. |
| pcb_analyze_usbC | Analyze USB routing. |
| pcb_analyze_ethernetC | Analyze Ethernet PHY routing. |
| pcb_validate_ddr_topologyA | Auto-detect and validate DDR memory interface topology from classified nets. Checks byte-lane grouping, DQ-DQS skew, inter-byte-lane skew, addr/cmd-to-clock skew, and fly-by topology against JEDEC limits. |
| pcb_analyze_ddr_timing_budgetA | Detailed per-lane DDR timing margin analysis against JEDEC budget. Calculates setup/hold margins for each DQ bit relative to DQS. |
| pcb_analyze_pdnC | Analyze power distribution network impedance. |
| pcb_calc_pdn_impedanceA | Frequency-swept PDN impedance profiling. Models VRM, bulk caps, MLCC decaps, and plane capacitance as parallel RLC networks. Sweeps from freq_start to freq_stop and flags anti-resonance peaks exceeding the target impedance Z_target = V * ripple% / I_max. |
| pcb_analyze_decouplingD | Analyze decoupling capacitor placement. |
| pcb_analyze_vrmC | Analyze VRM placement and routing. |
| pcb_analyze_solder_pasteC | Analyze solder paste stencil design. |
| pcb_analyze_placementC | Analyze component placement for manufacturability. |
| pcb_analyze_assemblyC | Analyze board assembly process considerations. |
| pcb_analyze_toleranceC | Analyze manufacturing tolerance stackup. |
| pcb_analyze_thermalC | Analyze thermal dissipation for a component. |
| pcb_analyze_thermal_viaC | Analyze thermal via array for heat dissipation. |
| pcb_analyze_copper_spreadingC | Analyze copper area heat spreading. |
| pcb_analyze_trace_antennaB | Check if a trace could act as unintentional antenna. |
| pcb_analyze_slot_antennaB | Analyze slot in ground plane as unintentional antenna. |
| pcb_analyze_common_modeC | Analyze common-mode noise on differential pairs. |
| pcb_analyze_cable_couplingC | Analyze cable-to-cable coupling for EMI. |
| pcb_trace_return_pathA | Trace ground return current path for a specific net. Shows return path segments, loop area, split crossings, and via transition quality. |
| pcb_analyze_return_pathsA | Analyze return paths for all high-speed signal nets. Identifies split-plane crossings, inadequate return vias, and calculates effective loop areas. |
| pcb_find_split_crossingsA | Find signals crossing ground plane splits/slots. Each crossing forces return current to detour, increasing loop area and EMI risk. |
| pcb_analyze_emi_riskA | Score EMI risk per net and identify top concerns. Combines return path quality, loop area, frequency content, and current to predict emissions. |
| pcb_predict_emissionsA | Predict radiated emission spectrum vs regulatory limits. Calculates emission level at each harmonic and compares to FCC/CISPR limits. |
| pcb_get_emi_hotspotsA | Identify board regions with highest EMI risk. Clusters high-risk nets by location and returns spatial hot-spots. |
| pcb_classify_netsA | Classify all nets by function (power, ground, DDR, USB, PCIe, etc.) with confidence scores. Detects differential pairs automatically. |
| pcb_detect_interfacesA | Detect high-speed interfaces (DDR, PCIe, USB, Ethernet, LVDS, RF) with pin counts and associated nets. |
| pcb_classify_designB | Classify overall design type (rf, mixed_signal, high_speed_digital, power, simple_digital) with complexity score (1-10). |
| pcb_get_stackup_templatesA | Get common PCB stackup templates with typical impedances. |
| pcb_get_material_propertiesA | Get dielectric properties for common PCB materials. |
| pcb_parse_stepA | Parse a STEP (.step/.stp) file for 3D mechanical review. Extracts board outline, component bounding boxes, heights. Returns session_id. |
| pcb_get_3d_clearancesB | Get component-to-component and component-to-board-edge 3D clearances from STEP data. |
| pcb_check_enclosure_fitB | Check if PCB assembly fits within an enclosure with required clearances. |
| pcb_render_boardA | Render SVG board view with component placement, traces, vias. Supports layer filtering, net/component highlighting. |
| pcb_render_stackupA | Render SVG cross-section of the PCB layer stackup showing copper, dielectric, solder mask layers with thicknesses. |
| pcb_render_netA | Render SVG highlighting a specific net's traces and vias on the board. |
| pcb_annotate_boardA | Render SVG board view with annotation overlays (arrows, text callouts, highlight regions, warning markers). |
| pcb_export_render_pngB | Export an SVG render (board, stackup, net, annotated) to a PNG image file. Requires cairosvg. |
| pcb_export_all_rendersA | Generate and export all standard renders (board, stackup, key nets, annotated findings) as PNG files to a directory. Returns mapping of label to file path. |
| pcb_generate_docx_reportB | Generate a professional DOCX design review report with embedded board renders, schematic images, and analysis findings. Requires python-docx and cairosvg. |
| pcb_parse_schematic_pdfA | Parse a PDF schematic to extract component references, net labels, and page data. Uses text-layer extraction (requires pymupdf for full support). If session_id provided, attaches schematic data to existing layout session for cross-reference. |
| pcb_get_schematic_pageA | Get extracted text and annotations for a specific schematic PDF page. Returns page text, detected components, and net labels. If pymupdf is installed, can also render the page as an image. |
| pcb_cross_reference_schematicA | Cross-reference schematic components/nets against layout. Finds missing components, extra components, value mismatches, and unrouted nets. Requires both schematic and layout data in the session. |
| pcb_parse_schematicA | Parse a schematic file with auto format detection (.kicad_sch, .SchDoc, .pdf, .net). Populates schematic_components and schematic_nets on the session. Use over pcb_parse_schematic_pdf when you want format-agnostic parsing. |
| pcb_parse_bomA | Parse a BOM (CSV or Excel) and attach the items to the session for downstream cross-reference and rating analyzers. |
| pcb_analyze_power_topologyA | Walk the schematic's power nets and report missing bulk/bypass caps, ungrounded rails, and rails without an identified regulator/input source. Requires schematic data via pcb_parse_schematic. |
| pcb_analyze_protection_circuitsA | Identify external-facing nets (USB, Ethernet, antenna ports, GPIO headers, CAN/LIN buses, etc.) and check for TVS/ESD diodes, common-mode chokes on differential pairs, and fuses on power inputs. |
| pcb_analyze_decoupling_per_icA | For each IC in the schematic, count capacitors on its Vdd-class nets and flag ICs under-decoupled relative to the 1-cap-per-Vdd-pin guideline. |
| pcb_analyze_signal_flowA | Trace clock distribution, reset distribution, and JTAG/SWD accessibility through the schematic. Flags clock fan-out > 4 unbuffered loads, multi-driver reset contention, ICs without debug headers, and reset nets missing a supervisor IC. |
| pcb_three_way_cross_referenceA | Compare schematic, BOM, and layout component lists in one pass. Detects missing components, footprint mismatches, value mismatches, DNP flag inconsistencies, MPN divergence, and manufacturer differences. Severity-graded per the playbook. |
| pcb_start_professional_reviewA | ENTRY POINT for a meticulous senior-consulting-engineer design review. Call this FIRST, before any parser or analyzer. Classifies the user's input files (schematic, layout, stackup, BOM, STEP, etc.), selects the per-market question pack and standards shortlist, and returns the binding 8-pass playbook (P0-P8) that Claude must follow. See docs/CLAUDE_REVIEW_PLAYBOOK.md. |
| pcb_set_marketA | Set or add a market on an existing review session (e.g. switching from commercial to automotive, or adding wireless on top of medical for a connected device). Updates the session's question pack and standards shortlist. Call before pcb_get_review_questions to receive the merged pack. |
| pcb_get_standards_coverageA | Return the per-standard coverage report for the session: which analyzers ran, which are still required, which standards are stub or unimplemented. Surfaces gaps the human reviewer should resolve before final sign-off. |
| pcb_validate_review_completeA | Run the preflight gate. Refuses to advance unless the active markets' required questions are answered, at least one standard is selected, and no stub/unimplemented standards lack a human-review note. Returns a ValidationGate breakdown. |
| pcb_set_review_contextA | Set design review context: requirements, standards, known issues, operating conditions. Call before pcb_run_design_review. |
| pcb_get_review_questionsA | Get list of questions the tool needs answered for a complete design review. Call after parsing, before running review. Returns questions tailored to the detected interfaces and design characteristics. |
| pcb_answer_review_questionsA | Provide answers to review questions identified by pcb_get_review_questions. Call before running design review to supply missing context. |
| pcb_run_design_reviewA | Run full automated multi-domain design review. Classifies design, selects relevant analyzers, runs analysis, cross-correlates findings, and generates structured results. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/RFingAdam/mcp-pcb-emcopilot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server