Skip to content

KiCad Capability Parity (generated)

Machine-generated from docs/compatibility/capability-parity-matrix.yaml. Refresh with uv run python scripts/build_parity_matrix.py.

KiCad baseline: 10.0.x · Updated: 2026-06-17

Overall: 57 / 76 programmatically-reachable capabilities driven = 75.0% (17 partial, 2 gap; 4 GUI-only with no KiCad API, excluded from the denominator).

Coverage by domain

Domain Coverage Covered Partial Gap GUI-only (no API)
schematic_edit 84.6% 11 2 0 1
pcb_edit 93.8% 15 1 0 1
routing 66.7% 4 2 0 1
library 57.1% 4 3 0 0
analysis 23.1% 3 9 1 0
export 100.0% 9 0 0 0
project 100.0% 5 0 0 0
cosmetics 85.7% 6 0 1 1
Overall 75.0% 57 17 2 4

Closeable surface (gap, then partial)

Domain Capability Status Channel MCP tool Notes
analysis 2D/3D field / EM solver for impedance & coupling gap file No field-solver integration yet; this is the Phase 3 (P3-T1/T3) accuracy upgrade.
cosmetics Import a logo/bitmap as board art (bitmap2component) gap cli KiCad's bitmap-to-silkscreen conversion has no MCP driver yet.
analysis Copper-plane thermal spreading (2-D FD solve) partial file thermal_simulate_plane_spreading Genuine 2-D finite-difference steady-state heat-spreading solve over the copper plane (utils/thermal_solver + solver_seams.thermal_fd_method) with peak/average temperature rise and a PASS/WARN/FAIL verdict; not a 3-D FEA with airflow / board-stack conduction (full FEA remains a future upgrade).
analysis DC IR-drop / voltage-drop analysis partial file pdn_calculate_voltage_drop pdn_calculate_voltage_drop is a first-order single-trace lumped estimate, now with an IPC-2221 current-density fusing / temperature-rise PASS/WARN/FAIL verdict; check_power_integrity runs a genuine distributed multi-load resistive PDN mesh (DC drop + frequency-domain Z(f)), labeled solver-grade via the seam (utils/solver_seams.pdn_mesh_method). Remaining P3-T2 upgrade: a 2-D copper-plane field solve.
analysis Decoupling recommendation / power-plane generation partial file pdn_recommend_decoupling_caps pdn_generate_power_plane covered; frequency-domain PDN target-Z checking now delivered via check_power_integrity (pdn_mesh Z(f) vs target_impedance_ohm with violations); a full plane-capacitance field model remains a future upgrade.
analysis Differential-pair skew gate partial file si_check_differential_pair_skew Real PASS/WARN/FAIL verdict with intent-derived skew budget (P1-T3); localized intra-pair phase-skew / mode-conversion is Phase 3 (P3-T3).
analysis EMC layout compliance checks partial file emc_run_full_compliance Presence/heuristic checks with fixed Er (work order K2/K10); EM-result-based, standard-named, fail-capable checks are Phase 3 (P3-T5).
analysis High-speed channel insertion-loss / eye analysis partial file si_analyze_high_speed_channel Closed-form lossy-line insertion loss (conductor skin-effect + dielectric loss) with a loss-limited eye and PASS/WARN/FAIL verdict; when an ngspice CLI is present the insertion loss is measured from an RLGC-ladder AC sweep (utils/channel + solver seam). Full S-parameter / IBIS-AMI channel simulation remains a future upgrade.
analysis Length-matching validation partial file si_validate_length_matching Three-level PASS/WARN/FAIL verdict against a tolerance budget (P1-T3); track-length based heuristic.
analysis Single-ended / differential trace impedance partial file si_calculate_trace_impedance First-order closed-form (IPC-2141/Wheeler) estimate ~5-10% (work order K4); field-solver accuracy is Phase 3 (P3-T1).
analysis Thermal via / copper-pour sizing partial file thermal_calculate_via_count thermal_check_copper_pour; first-order theta_JA / via-count rule of thumb labeled honestly via the solver seam (utils/solver_seams.thermal_method); for distributed spreading use thermal_simulate_plane_spreading.
library Generate an IPC-7351 footprint partial file lib_generate_footprint_ipc7351 Footprint family coverage is limited (work order K10: SOT-23 implemented, SOT-223/SOT-89 not yet); datasheet/IPC validation hard-gate is Phase 4 (P4-T3).
library Recommend / bind a part to a symbol partial file lib_recommend_part lib_bind_part_to_symbol; depends on the same sourcing backends as above.
library Source live component data (price/stock/lifecycle) partial file lib_search_components Live JLCPCB, Nexar, DigiKey, and Mouser sourcing clients are implemented; Nexar/DigiKey/Mouser are opt-in and auth-gated. Remaining P4-T3 work is full AVL/lifecycle policy enforcement and datasheet-grounded footprint/3D hard gates.
pcb_edit Auto-place footprints from schematic partial ipc pcb_auto_place_by_schematic Force-directed placement now stops by deterministic convergence and disables the wall-clock safety valve by default (K7); remaining P4-T2 work is deeper electrical/thermal/return-path scoring beyond net-weighted placement.
routing Export Specctra DSN / import routed SES partial cli route_export_dsn route_export_dsn attempts headless kicad-cli specctra export, else a clear human-gated manual step; the routed SES is applied fully headlessly by route_apply_ses (deterministic, idempotent, round-trip-safe via utils/router_core, P4-T1) -- no GUI import. Export side stays partial when kicad-cli lacks headless specctra export.
routing Full autoroute (FreeRouting orchestration) partial cli route_autoroute_freerouting Routes headlessly (Docker/JAR); the routed SES is now applied headlessly by route_apply_ses (utils/router_core writes segments/vias into the .kicad_pcb), closing the former GUI step (P4-T1). Status stays partial: FreeRouting's own determinism is bounded and the SES coordinate transform assumes KiCad's standard Specctra export convention (verified end-to-end only in the KiCad CI job).
schematic_edit Modify a symbol property by reference partial ipc sch_modify_property Round-trip-safe edit primitive (utils/schematic_roundtrip) with a corruption guard exists (P2-T1); testing showed kicad-sch-api 0.5.x drops global_label on save, so writes refuse+restore rather than silently corrupt (K5). Migrating each regex write path through the guarded primitive is incremental.
schematic_edit Swap pins / gates partial file sch_swap_pins Experimental; sch_swap_gates is also experimental and profile-gated.

Full matrix

schematic_edit

Symbol/wire/label/bus/hierarchy/power/no-connect/annotate/ERC editing of .kicad_sch.

Capability Channel MCP tool Status KiCad Notes
Place a library symbol at an absolute coordinate file sch_add_symbol covered 10.0.x sch_add_component covers the by-library convenience path.
Move a placed symbol file sch_move_symbol covered 10.0.x
Delete a placed symbol and attached wires file sch_delete_symbol covered 10.0.x
Add a wire between points / between pins file sch_route_wire_between_pins covered 10.0.x sch_add_wire for raw segments; sch_add_missing_junctions repairs T-junctions.
Add local / global / hierarchical labels file sch_add_label covered 10.0.x sch_add_global_label, sch_add_hierarchical_label, sch_move_label, sch_delete_label.
Add a bus and bus-wire entries file sch_add_bus covered 10.0.x sch_add_bus_wire_entry for member entries.
Add a power symbol / power flag file sch_add_power_symbol covered 10.0.x sch_check_power_flags audits coverage.
Add no-connect markers file sch_add_no_connect covered 10.0.x
Create and wire hierarchical sheets file sch_create_sheet covered 10.0.x sch_list_sheets / sch_get_sheet_info for inspection.
Annotate references file sch_annotate covered 10.0.x
Run ERC and inspect violations cli run_erc covered 10.0.x erc_set_rule_severity / erc_list_rules tune severities.
Modify a symbol property by reference ipc sch_modify_property partial 10.0.x Round-trip-safe edit primitive (utils/schematic_roundtrip) with a corruption guard exists (P2-T1); testing showed kicad-sch-api 0.5.x drops global_label on save, so writes refuse+restore rather than silently corrupt (K5). Migrating each regex write path through the guarded primitive is incremental.
Swap pins / gates file sch_swap_pins partial 10.0.x Experimental; sch_swap_gates is also experimental and profile-gated.
Interactive symbol graphic drawing in the editor gui-only gui-only-no-api 10.0.x Custom symbol bodies are created via lib_create_custom_symbol; freehand editor drawing is GUI-only.

pcb_edit

Footprint place/move, track/via/zone/stackup/rules/groups/teardrops/fanout on .kicad_pcb.

Capability Channel MCP tool Status KiCad Notes
Place / move a footprint ipc pcb_place_component covered 10.0.x pcb_move_footprint / pcb_move_component for relocation.
Add a track / route a trace ipc pcb_add_track covered 10.0.x pcb_route_trace, pcb_add_tracks_bulk for batches.
Add through / blind / micro vias ipc pcb_add_via covered 10.0.x pcb_add_blind_via, pcb_add_microvia.
Add and refill copper zones ipc pcb_add_copper_zone covered 10.0.x pcb_add_zone, pcb_refill_zones.
Read / set the layer stackup file pcb_set_stackup covered 10.0.x pcb_get_stackup for inspection.
Read / set design rules file pcb_set_design_rules covered 10.0.x pcb_get_design_rules; drc_rule_create/delete/enable for custom rules.
Assign net classes file pcb_set_net_class covered 10.0.x route_set_net_class_rules for routing constraints.
Add teardrops ipc pcb_add_teardrops covered 10.0.x
BGA / fine-pitch fanout ipc pcb_bga_fanout covered 10.0.x
Set the board outline ipc pcb_set_board_outline covered 10.0.x
Auto-place footprints from schematic ipc pcb_auto_place_by_schematic partial 10.0.x Force-directed placement now stops by deterministic convergence and disables the wall-clock safety valve by default (K7); remaining P4-T2 work is deeper electrical/thermal/return-path scoring beyond net-weighted placement.
Run DRC and inspect violations cli run_drc covered 10.0.x drc_add_exclusion / drc_validate_exclusions manage waivers.
Manage design blocks / reusable groups file pcb_block_create_from_selection covered 10.0.x pcb_block_list, pcb_block_place.
Read / set board groups ipc pcb_get_groups covered 10.0.x pcb_get_groups for inspection; pcb_group_by_function and pcb_block_* for grouping.
Read / set drawing origin ipc pcb_set_origin covered 10.0.x pcb_get_origin / pcb_set_origin.
Begin / push / revert an IPC commit transaction ipc pcb_push_commit covered 10.0.x pcb_begin_commit / push_commit / drop_commit / revert.
Interactive push-and-shove routing gui-only gui-only-no-api 10.0.x KiCad's interactive router (push/shove, walkaround) has no IPC/CLI surface.

routing

Autoroute, length/skew tuning, diff-pair, and interactive routing.

Capability Channel MCP tool Status KiCad Notes
Route a single track / pad-to-pad ipc route_single_track covered 10.0.x route_from_pad_to_pad.
Route a differential pair ipc route_differential_pair covered 10.0.x
Tune track / diff-pair length file route_tune_length covered 10.0.x tune_diff_pair_length, route_tune_time_domain, tuning-profile tools.
Full autoroute (FreeRouting orchestration) cli route_autoroute_freerouting partial 10.0.x Routes headlessly (Docker/JAR); the routed SES is now applied headlessly by route_apply_ses (utils/router_core writes segments/vias into the .kicad_pcb), closing the former GUI step (P4-T1). Status stays partial: FreeRouting's own determinism is bounded and the SES coordinate transform assumes KiCad's standard Specctra export convention (verified end-to-end only in the KiCad CI job).
Export Specctra DSN / import routed SES cli route_export_dsn partial 10.0.x route_export_dsn attempts headless kicad-cli specctra export, else a clear human-gated manual step; the routed SES is applied fully headlessly by route_apply_ses (deterministic, idempotent, round-trip-safe via utils/router_core, P4-T1) -- no GUI import. Export side stays partial when kicad-cli lacks headless specctra export.
Set per-net-class routing rules file route_set_net_class_rules covered 10.0.x
Interactive length tuning / meander drawing gui-only gui-only-no-api 10.0.x Interactive trace tuning UX is GUI-only; programmatic tuning is modeled by route_tune_length.

library

Symbol/footprint/3D generation + assignment + part sourcing.

Capability Channel MCP tool Status KiCad Notes
Search symbols / footprints file lib_search_symbols covered 10.0.x lib_search_footprints, lib_list_libraries, lib_rebuild_index.
Assign a footprint to a symbol file lib_assign_footprint covered 10.0.x
Create a custom symbol file lib_create_custom_symbol covered 10.0.x lib_generate_symbol_from_pintable for pin-table-driven generation.
Generate an IPC-7351 footprint file lib_generate_footprint_ipc7351 partial 10.0.x Footprint family coverage is limited (work order K10: SOT-23 implemented, SOT-223/SOT-89 not yet); datasheet/IPC validation hard-gate is Phase 4 (P4-T3).
Assign / manage 3D models file lib_set_3d_model_path covered 10.0.x lib_bulk_assign_3d_models, lib_search_3d_models, lib_remove_3d_model.
Source live component data (price/stock/lifecycle) file lib_search_components partial 10.0.x Live JLCPCB, Nexar, DigiKey, and Mouser sourcing clients are implemented; Nexar/DigiKey/Mouser are opt-in and auth-gated. Remaining P4-T3 work is full AVL/lifecycle policy enforcement and datasheet-grounded footprint/3D hard gates.
Recommend / bind a part to a symbol file lib_recommend_part partial 10.0.x lib_bind_part_to_symbol; depends on the same sourcing backends as above.

analysis

SI / PI / EMC / thermal / DFM / SPICE analysis.

Capability Channel MCP tool Status KiCad Notes
Single-ended / differential trace impedance file si_calculate_trace_impedance partial 10.0.x First-order closed-form (IPC-2141/Wheeler) estimate ~5-10% (work order K4); field-solver accuracy is Phase 3 (P3-T1).
Differential-pair skew gate file si_check_differential_pair_skew partial 10.0.x Real PASS/WARN/FAIL verdict with intent-derived skew budget (P1-T3); localized intra-pair phase-skew / mode-conversion is Phase 3 (P3-T3).
Length-matching validation file si_validate_length_matching partial 10.0.x Three-level PASS/WARN/FAIL verdict against a tolerance budget (P1-T3); track-length based heuristic.
Synthesize a stackup for target interfaces file si_synthesize_stackup_for_interfaces covered 10.0.x si_generate_stackup, si_bind_interfaces_to_net_classes, si_list_dielectric_materials.
High-speed channel insertion-loss / eye analysis file si_analyze_high_speed_channel partial 10.0.x Closed-form lossy-line insertion loss (conductor skin-effect + dielectric loss) with a loss-limited eye and PASS/WARN/FAIL verdict; when an ngspice CLI is present the insertion loss is measured from an RLGC-ladder AC sweep (utils/channel + solver seam). Full S-parameter / IBIS-AMI channel simulation remains a future upgrade.
DC IR-drop / voltage-drop analysis file pdn_calculate_voltage_drop partial 10.0.x pdn_calculate_voltage_drop is a first-order single-trace lumped estimate, now with an IPC-2221 current-density fusing / temperature-rise PASS/WARN/FAIL verdict; check_power_integrity runs a genuine distributed multi-load resistive PDN mesh (DC drop + frequency-domain Z(f)), labeled solver-grade via the seam (utils/solver_seams.pdn_mesh_method). Remaining P3-T2 upgrade: a 2-D copper-plane field solve.
Decoupling recommendation / power-plane generation file pdn_recommend_decoupling_caps partial 10.0.x pdn_generate_power_plane covered; frequency-domain PDN target-Z checking now delivered via check_power_integrity (pdn_mesh Z(f) vs target_impedance_ohm with violations); a full plane-capacitance field model remains a future upgrade.
Thermal via / copper-pour sizing file thermal_calculate_via_count partial 10.0.x thermal_check_copper_pour; first-order theta_JA / via-count rule of thumb labeled honestly via the solver seam (utils/solver_seams.thermal_method); for distributed spreading use thermal_simulate_plane_spreading.
Copper-plane thermal spreading (2-D FD solve) file thermal_simulate_plane_spreading partial 10.0.x Genuine 2-D finite-difference steady-state heat-spreading solve over the copper plane (utils/thermal_solver + solver_seams.thermal_fd_method) with peak/average temperature rise and a PASS/WARN/FAIL verdict; not a 3-D FEA with airflow / board-stack conduction (full FEA remains a future upgrade).
EMC layout compliance checks file emc_run_full_compliance partial 10.0.x Presence/heuristic checks with fixed Er (work order K2/K10); EM-result-based, standard-named, fail-capable checks are Phase 3 (P3-T5).
DFM manufacturer checks and cost file dfm_run_manufacturer_check covered 10.0.x dfm_load_manufacturer_profile, dfm_calculate_manufacturing_cost.
SPICE simulation (op / AC / transient / DC sweep) cli sim_run_transient covered 10.0.x ngspice engine; sim_run_operating_point/ac_analysis/dc_sweep, sim_check_stability.
2D/3D field / EM solver for impedance & coupling file gap 10.0.x No field-solver integration yet; this is the Phase 3 (P3-T1/T3) accuracy upgrade.

export

Gerber/drill/BOM/POS/STEP/ODB/IPC2581/SVG/PDF/3D manufacturing outputs.

Capability Channel MCP tool Status KiCad Notes
Gerber export cli export_gerber covered 10.0.x
Drill export cli export_drill covered 10.0.x
BOM export cli export_bom covered 10.0.x export_sch_python_bom for the Python BOM path.
Pick-and-place (POS/CPL) export cli export_pick_and_place covered 10.0.x mfg_correct_cpl_rotations for fab rotation fixups.
STEP / 3D model export cli export_step covered 10.0.x export_stepz, export_glb, export_vrml, export_stl, export_ply, export_brep, export_u3d.
IPC-2581 / ODB++ interchange export cli export_ipc2581 covered 10.0.x export_odb.
SVG / PDF / DXF documentation export cli export_pcb_pdf covered 10.0.x export_sch_pdf, export_svg, export_dxf, export_sch_svg, export_sch_dxf.
Netlist export cli export_netlist covered 10.0.x export_spice_netlist.
Release-gated manufacturing package cli export_manufacturing_package covered 10.0.x Hard-gated on project_quality_gate PASS.

project

Variants, embedded files, jobsets, VCS, and design intent.

Capability Channel MCP tool Status KiCad Notes
Assembly variants (create / activate / diff / export) file variant_create covered 10.0.x variant_set_active, variant_diff_bom, variant_export_bom, variant_clone.
Embedded project files file project_embed_file covered 10.0.x project_list_embedded_files, project_extract_embedded_file, project_remove_embedded_file.
Job sets (export automation) cli jobset_export covered 10.0.x jobset_list_templates, jobset_run, jobset_validate.
Version-control checkpoints file vcs_commit_checkpoint covered 10.0.x vcs_init_git, vcs_list_checkpoints, vcs_restore_checkpoint, vcs_diff_with_checkpoint, vcs_tag_release.
Capture / infer design intent and spec file project_set_design_intent covered 10.0.x project_get_design_spec, project_infer_design_spec, project_validate_design_spec.

cosmetics

Silk, board art, drawing sheet / title block, fab notes, fiducials, mounting holes.

Capability Channel MCP tool Status KiCad Notes
Add silkscreen / fab text ipc pcb_add_text covered 10.0.x
Add a barcode / data-matrix file pcb_add_barcode covered 10.0.x
Add fiducials ipc pcb_add_fiducial_marks covered 10.0.x
Add mounting holes ipc pcb_add_mounting_holes covered 10.0.x
Add inner-layer graphics to a footprint file add_footprint_inner_layer_graphic covered 10.0.x
Set drawing-sheet title-block fields ipc pcb_set_title_block_info covered 10.0.x pcb_set_title_block_info.
Import a logo/bitmap as board art (bitmap2component) cli gap 10.0.x KiCad's bitmap-to-silkscreen conversion has no MCP driver yet.
Custom drawing-sheet (.kicad_wks) template design gui-only gui-only-no-api 10.0.x The page-layout editor is interactive; no headless drawing-sheet authoring surface.