KiCAD MCP Server - Complete Tool Inventory
Version: 2.1.0-alpha
Total Tools: 137 (verifiziert via VS Code MCP Discovery Log)
Last Updated: 2026-05-02
How Tools Are Organized
Tools are registered directly via server.tool()
The Access column below uses legacy labels from when a router pattern was planned:
- Direct — High-frequency tools, originally intended as always-visible
- Routed — Originally planned for router dispatch; now also registered directly
- Additional — Registered directly (always visible)
Project Management (5 tools)
Source: src/tools/project.ts
| Tool |
Description |
Access |
create_project |
Create a new KiCAD project (.kicad_pro, .kicad_pcb, .kicad_sch) |
Direct |
open_project |
Open an existing KiCAD project |
Direct |
save_project |
Save the current project |
Direct |
get_project_info |
Get project metadata and information |
Direct |
snapshot_project |
Save a named checkpoint snapshot (renders PDF, saves step label) |
Direct |
Board Management (12 tools)
Source: src/tools/board.ts
| Tool |
Description |
Access |
set_board_size |
Set PCB dimensions (width, height, unit) |
Direct |
add_board_outline |
Add board outline (rectangle, circle, polygon, rounded_rectangle) |
Direct |
get_board_info |
Get board metadata and properties |
Direct |
add_layer |
Add copper/technical/signal layer |
Routed (board) |
set_active_layer |
Change the active working layer |
Routed (board) |
get_layer_list |
List all layers on the board |
Routed (board) |
add_mounting_hole |
Add mounting hole with optional pad |
Routed (board) |
add_board_text |
Add text annotation to board |
Routed (board) |
add_zone |
Add copper zone/pour with clearance settings |
Routed (board) |
get_board_extents |
Get bounding box of board |
Routed (board) |
get_board_2d_view |
Render 2D board view (PNG/JPG/SVG) |
Routed (board) |
import_svg_logo |
Import SVG file as polygons on silkscreen layer |
Additional |
Component Management (16 tools)
Source: src/tools/component.ts
| Tool |
Description |
Access |
place_component |
Place footprint on PCB (position, rotation, reference, value) |
Direct |
move_component |
Move component to new position |
Direct |
rotate_component |
Rotate component (absolute angle) |
Routed (component) |
delete_component |
Remove component from board |
Routed (component) |
edit_component |
Edit component properties (reference, value, footprint) |
Routed (component) |
find_component |
Search components by reference or value |
Routed (component) |
get_component_properties |
Get all properties of a component |
Routed (component) |
add_component_annotation |
Add annotation/comment to component |
Routed (component) |
group_components |
Group multiple components together |
Routed (component) |
replace_component |
Replace component with different footprint |
Routed (component) |
get_component_pads |
Get all pad information for a component |
Additional |
get_component_list |
List all components with optional filters |
Additional |
get_pad_position |
Get precise position of a specific pad |
Additional |
place_component_array |
Place array of components (rows x columns) |
Additional |
align_components |
Align components (horizontal, vertical, grid) |
Additional |
duplicate_component |
Duplicate component with offset |
Additional |
Routing (13 tools)
Source: src/tools/routing.ts
| Tool |
Description |
Access |
add_net |
Create a new net on the PCB |
Direct |
route_trace |
Route trace segment between XY points (single layer) |
Direct |
add_via |
Add via (through/blind/buried) |
Routed (routing) |
add_copper_pour |
Add copper pour / ground plane |
Routed (routing) |
delete_trace |
Delete traces by UUID, position, or bulk by net |
Additional |
query_traces |
Query/filter traces by net, layer, or bounding box |
Additional |
get_nets_list |
List all nets with statistics |
Additional |
modify_trace |
Modify existing trace (width, layer, net) |
Additional |
create_netclass |
Create net class with design rules |
Additional |
route_differential_pair |
Route differential pair traces |
Additional |
refill_zones |
Refill all copper zones |
Additional |
route_pad_to_pad |
Route trace between two pads with auto-via insertion |
Additional |
copy_routing_pattern |
Copy routing from source to target component groups |
Additional |
Design Rules and DRC (8 tools)
Source: src/tools/design-rules.ts
| Tool |
Description |
Access |
set_design_rules |
Set global design rules (clearance, track width, via sizes) |
Routed (drc) |
get_design_rules |
Get current design rules |
Routed (drc) |
run_drc |
Run design rule check |
Routed (drc) |
add_net_class |
Add net class with custom rules |
Routed (drc) |
assign_net_to_class |
Assign net to a net class |
Routed (drc) |
set_layer_constraints |
Set layer-specific constraints |
Routed (drc) |
check_clearance |
Check clearance between two items |
Routed (drc) |
get_drc_violations |
Get DRC violation list (filter by severity) |
Routed (drc) |
Export (8 tools)
Source: src/tools/export.ts
| Tool |
Description |
Access |
export_gerber |
Export Gerber files for fabrication |
Routed (export) |
export_pdf |
Export PDF with layer selection and page size |
Routed (export) |
export_svg |
Export SVG vector graphics |
Routed (export) |
export_3d |
Export 3D model (STEP, STL, VRML, OBJ) |
Routed (export) |
export_bom |
Export Bill of Materials (CSV, XML, HTML, JSON) |
Routed (export) |
export_netlist |
Export netlist (KiCad, Spice, Cadstar, OrcadPCB2) |
Routed (export) |
export_position_file |
Export component position file for pick and place |
Routed (export) |
export_vrml |
Export VRML 3D model |
Routed (export) |
Schematic (43 tools)
Source: src/tools/schematic.ts
Component Operations (10)
| Tool |
Description |
Access |
add_schematic_component |
Add component to schematic (symbol from library) |
Direct |
delete_schematic_component |
Remove component from schematic |
Additional |
edit_schematic_component |
Edit footprint, value, reference, label positions, and arbitrary custom properties (MPN, Manufacturer, DigiKey, …) |
Additional |
set_schematic_component_property |
Add or update a single custom property (BOM/sourcing field) on a component |
Additional |
remove_schematic_component_property |
Delete a single custom property from a component |
Additional |
get_schematic_component |
Get component info: built-in fields + all custom properties + label positions |
Additional |
list_schematic_components |
List all components in schematic |
Direct |
move_schematic_component |
Move component to new position |
Routed (schematic) |
rotate_schematic_component |
Rotate component |
Routed (schematic) |
annotate_schematic |
Auto-annotate reference designators |
Direct |
Wiring and Connections (10)
| Tool |
Description |
Access |
add_schematic_wire |
Add wire segment between two points |
Routed (schematic) |
delete_schematic_wire |
Delete wire segment |
Routed (schematic) |
add_schematic_net_label |
Add net label to schematic |
Direct |
delete_schematic_net_label |
Delete net label |
Routed (schematic) |
add_no_connect |
Add no-connect flag (X marker) to an unconnected pin |
Direct |
move_schematic_net_label |
Move net label to new position |
Routed (schematic) |
connect_to_net |
Connect component pin to named net |
Direct |
connect_passthrough |
Connect all matching pins between two connectors |
Direct |
get_schematic_pin_locations |
Get pin locations for a component |
Additional |
get_wire_connections |
Get all connections at a wire endpoint |
Additional |
Hierarchical Schematics (2)
| Tool |
Description |
Access |
add_schematic_hierarchical_label |
Add hierarchical label for multi-sheet connections |
Routed (schematic) |
add_sheet_pin |
Add a sheet pin to a hierarchical sheet symbol |
Routed (schematic) |
Net Analysis (5)
| Tool |
Description |
Access |
get_net_connections |
Get all connections for a net |
Routed (schematic) |
get_net_at_point |
Get the net name at an XY coordinate |
Additional |
list_schematic_nets |
List all nets in schematic |
Routed (schematic) |
list_schematic_wires |
List all wires in schematic |
Routed (schematic) |
list_schematic_labels |
List all net labels |
Routed (schematic) |
Text Annotations (2)
| Tool |
Description |
Access |
add_schematic_text |
Add free-form text annotation to schematic |
Routed (schematic) |
list_schematic_texts |
List all text annotations (with optional filter) |
Routed (schematic) |
Visual / Geometry Helpers (8)
| Tool |
Description |
Access |
get_schematic_view |
Render schematic as image (PNG/SVG) |
Routed (schematic) |
get_schematic_view_region |
Render a specific region of the schematic as image |
Additional |
find_overlapping_elements |
Find schematic elements that visually overlap |
Additional |
get_elements_in_region |
Get all elements inside an XY bounding box |
Additional |
find_wires_crossing_symbols |
Find wires that cross through symbol bodies (DRC helper) |
Additional |
list_floating_labels |
List net labels not connected to any wire |
Additional |
find_orphaned_wires |
Find wire segments not connected at one or both ends |
Additional |
snap_to_grid |
Snap an XY coordinate to the nearest schematic grid point |
Additional |
Schematic Creation and Export (3)
| Tool |
Description |
Access |
create_schematic |
Create a new schematic file |
Routed (schematic) |
export_schematic_svg |
Export schematic to SVG |
Routed (schematic) |
export_schematic_pdf |
Export schematic to PDF |
Routed (schematic) |
Validation and Synchronization (3)
| Tool |
Description |
Access |
run_erc |
Run electrical rule check |
Additional |
generate_netlist |
Generate netlist from schematic |
Routed (schematic) |
sync_schematic_to_board |
Sync schematic components/nets to PCB (F8 equivalent) |
Direct |
Source: src/tools/library.ts
| Tool |
Description |
Access |
list_libraries |
List all footprint libraries |
Routed (library) |
search_footprints |
Search footprints across libraries |
Routed (library) |
list_library_footprints |
List footprints in a specific library |
Routed (library) |
get_footprint_info |
Get detailed footprint information |
Routed (library) |
Symbol Libraries (4 tools)
Source: src/tools/library-symbol.ts
| Tool |
Description |
Access |
list_symbol_libraries |
List all symbol libraries from sym-lib-table |
Additional |
search_symbols |
Search symbols by name, LCSC ID, or description |
Additional |
list_library_symbols |
List symbols in a specific library |
Additional |
get_symbol_info |
Get detailed symbol information |
Additional |
Source: src/tools/footprint.ts
| Tool |
Description |
Access |
create_footprint |
Create custom .kicad_mod footprint (SMD/THT pads, courtyard, silkscreen) |
Additional |
edit_footprint_pad |
Edit pad in existing footprint (size, position, drill, shape) |
Additional |
register_footprint_library |
Register .pretty library in fp-lib-table |
Additional |
list_footprint_libraries |
List available .pretty libraries |
Additional |
Symbol Creator (4 tools)
Source: src/tools/symbol-creator.ts
| Tool |
Description |
Access |
create_symbol |
Create custom .kicad_sym symbol (pins, rectangles, polylines) |
Additional |
delete_symbol |
Remove symbol from library |
Additional |
list_symbols_in_library |
List all symbols in a .kicad_sym file |
Additional |
register_symbol_library |
Register library in sym-lib-table |
Additional |
Datasheet Tools (2 tools)
Source: src/tools/datasheet.ts
| Tool |
Description |
Access |
enrich_datasheets |
Fill missing datasheet URLs using LCSC part numbers |
Additional |
get_datasheet_url |
Get LCSC datasheet URL for a component |
Additional |
JLCPCB Integration (5 tools)
Source: src/tools/jlcpcb-api.ts
| Tool |
Description |
Access |
download_jlcpcb_database |
Download 2.5M+ parts catalog to local SQLite database |
Additional |
search_jlcpcb_parts |
Search parts by specs (category, package, library type) |
Additional |
get_jlcpcb_part |
Get detailed part info with pricing |
Additional |
get_jlcpcb_database_stats |
Get database statistics |
Additional |
suggest_jlcpcb_alternatives |
Find cheaper or in-stock alternatives |
Additional |
Freerouting Autorouter (4 tools)
Source: src/tools/freerouting.ts
| Tool |
Description |
Access |
autoroute |
Run Freerouting autorouter (export DSN, route, import SES) |
Routed (autoroute) |
export_dsn |
Export Specctra DSN file for manual routing |
Routed (autoroute) |
import_ses |
Import routed SES file back into PCB |
Routed (autoroute) |
check_freerouting |
Check Java and Freerouting JAR availability |
Routed (autoroute) |
UI Management (2 tools)
Source: src/tools/ui.ts
| Tool |
Description |
Access |
check_kicad_ui |
Check if KiCAD UI is running |
Direct |
launch_kicad_ui |
Launch KiCAD UI (optionally with project) |
Routed (board) |
Router / Discovery Tools (3 tools)
Source: src/tools/router.ts
Registriert via registerRouterTools() in src/server.ts. Ermöglichen Tool-Discovery durch den LLM.
| Tool |
Description |
Access |
list_tool_categories |
Browse all available tool categories |
Direct |
get_category_tools |
View tools in a specific category |
Direct |
search_tools |
Find tools by keyword |
Direct |
Summary by Access Type
| Access Type |
Count |
Description |
| Direct |
21 |
Always visible |
| Routed |
72 |
Always visible (registered directly) |
| Additional |
44 |
Always visible, registered directly |
| Router/Discovery |
3 |
Tool-Discovery (router.ts, registered) |
| Total registered |
137 |
Verifiziert via VS Code MCP Discovery |
Summary by Category
| Category |
Tool Count |
| Project Management |
5 |
| Board Management |
12 |
| Component Management |
16 |
| Routing |
13 |
| Design Rules / DRC |
8 |
| Export |
8 |
| Schematic |
43 |
| Footprint Libraries |
4 |
| Symbol Libraries |
4 |
| Footprint Creator |
4 |
| Symbol Creator |
4 |
| Datasheet |
2 |
| JLCPCB Integration |
5 |
| Freerouting |
4 |
| UI Management |
2 |
| Router / Discovery |
3 |
| Total registered |
137 |
Verified: VS Code MCP Discovery Log meldet 137 registrierte Tools.
Token Impact
Alle 137 registrierten Tools sind stets für den LLM sichtbar. Die Discovery-Tools in router.ts ermöglichen dem Modell, Tools nach Kategorie oder Stichwort zu durchsuchen.