KICAD-MCP-SERVER TOOLS

157 tools from the KiCAD-MCP-Server MCP Server, categorised by risk level.

READ 64 tools
Read batch_list_symbol_pins Return pin names, numbers, types, and symbol-local coordinates for multiple symbols in a single call. Use i... Read check_clearance Check the actual clearance between two PCB items (track, via, pad, zone or component) and report whether it... Read check_courtyard_overlaps Detect courtyard overlaps between footprints and (optionally) flag courtyards that extend past the board ou... Read check_freerouting Check if Java and Freerouting JAR are available on the system. Run this before autoroute to verify prerequi... Read check_kicad_ui Check if KiCAD UI is currently running Read find_component Search for a PCB component by reference designator or value and return its position and properties. Read find_orphaned_wires Find wire segments with at least one dangling endpoint — not connected to a component pin, Read find_overlapping_elements Detect spatially overlapping symbols, wires, and labels in the schematic. Finds duplicate power symbols at ... Read find_wires_crossing_symbols Find all wires that cross over component symbol bodies. Wires passing over symbols are unacceptable in sche... Read get_backend_state Return the active backend, realtime status, loaded project/board paths, and dirty state. Read get_board_2d_view get_board_2d_view Read get_board_extents Return the bounding box (min/max X and Y) of all objects on the current PCB board. Read get_board_info Retrieve general information about the current PCB board (dimensions, layer count, DRC status). Read get_category_tools Return all tools available in a specific category. Use list_tool_categories first to find valid category na... Read get_component_list Return a list of all components on the PCB, optionally filtered by layer or bounding box region. Read get_component_pads Return all pads of a PCB component with their positions, net assignments and sizes. Read get_component_properties Return all properties of a PCB component (position, rotation, layer, value, footprint). Read get_datasheet_url Get the LCSC datasheet URL for a component by LCSC number. Returns the direct PDF URL and product page URL... Read get_design_rules Return the current PCB design rules (clearance, track width, via sizes, courtyard settings). Read get_drc_violations Return the list of current DRC violations on the PCB, optionally filtered by severity (error, warning). Read get_elements_in_region List all symbols, wires, and labels within a rectangular region of the schematic. Useful for understanding ... Read get_footprint_info Get detailed information about a specific footprint Read get_jlcpcb_database_stats Get statistics about the local JLCPCB parts database Read get_jlcpcb_part Get detailed information about a specific JLCPCB part by LCSC number Read get_layer_list Return the list of all layers defined in the current PCB board. Read get_net_at_point Returns the net name at a given (x, y) coordinate in a schematic, or null if no net label Read get_net_connections Get all connections for a named net Read get_nets_list Get a list of all nets in the PCB with optional statistics. Read get_pad_position Return the exact XY position of a specific pad on a PCB component. Use this before routing to get accurate ... Read get_project_info Get information about the current project Read get_schematic_component Get full component info from a schematic: position, every field Read get_schematic_pin_locations Returns the exact x/y coordinates of every pin on a schematic component. Use this before add_schematic_net_... Read get_schematic_view Return a rasterized image of the schematic (PNG by default, or SVG). Uses kicad-cli to export SVG, then con... Read get_schematic_view_region Export a cropped region of the schematic as an image (PNG or SVG). Specify bounding box coordinates in sche... Read get_symbol_info Get detailed information about a specific symbol (global or project-scope when projectPath is supplied or a... Read get_wire_connections Returns the net name and all wires and component pins connected at a given point. Read list_floating_labels Returns all net labels in the schematic that are not connected to any component pin. Read list_footprint_libraries List available .pretty footprint libraries and their contents (first 20 footprints per library). Read list_libraries List all available KiCAD footprint libraries Read list_library_footprints List all footprints in a specific KiCAD library Read list_library_symbols List all symbols in a specific KiCAD symbol library (global or project-scope when projectPath is supplied o... Read list_schematic_components List all components in a schematic with their references, values, positions, and pins. Essential for inspec... Read list_schematic_labels List all net labels, global labels, and power flags in the schematic. Read list_schematic_libraries List available KiCAD symbol libraries Read list_schematic_nets List all nets in the schematic with their connections. Read list_schematic_texts List all free-form text annotations (notes, headings, documentation strings) in the schematic. Read list_schematic_wires List all wires in the schematic with start/end coordinates. Read list_symbol_libraries List all available KiCAD symbol libraries from global sym-lib-table, plus the project Read list_symbol_pins Return pin names, numbers, and types for a symbol directly from the library — no schematic required. Use th... Read list_symbols_in_library List all symbol names in a .kicad_sym library file. Read list_tool_categories List all available KiCAD tool categories with their descriptions and tool counts. Use this to discover whic... Read load_schematic Load an existing KiCAD schematic Read query_traces Query traces on the board with optional filters by net, layer, or bounding box. Read query_zones Query copper zones (filled pours) on the board with optional filters by net, layer, or bounding box. Return... Read search_footprints Search for footprints matching a pattern across all libraries Read search_jlcpcb_parts Search JLCPCB parts catalog by specifications. Searches the local JLCPCB database (must be downloaded firs... Read search_symbols Search for symbols in local KiCAD symbol libraries. Searches by: symbol name, LCSC ID, description, manufa... Read search_tools Search all available KiCAD tools by keyword. Returns matching tool names and their categories. Read export_bom Export a Bill of Materials (BOM) from the PCB in CSV, XML, HTML or JSON format. Read export_schematic_svg Export schematic to SVG format using kicad-cli. Read export_svg Export the PCB layout as an SVG vector image, optionally selecting layers and colour mode. Read generate_netlist Return a structured JSON netlist from the schematic — component list (reference, value, footprint) and net ... Read open_project Open an existing KiCAD project Read suggest_jlcpcb_alternatives Suggest alternative JLCPCB parts for a given component. Finds similar parts that may be cheaper, have more...
WRITE 81 tools
Write route_arc_trace Route a copper arc trace defined by start/mid/end points. Uses true PCB arc primitives when available. Write download_jlcpcb_database Download the JLCPCB parts catalog to a local SQLite database for fast offline search. Sources (no API cred... Write enrich_datasheets Fill in missing Datasheet URLs in a KiCAD schematic using LCSC part numbers. For every placed symbol that ... Write snapshot_project Save a named checkpoint snapshot of the current project state (renders board to PDF and records step label)... Write add_board_outline Add a board outline to the PCB Write add_board_text Add a text label to a PCB layer (e.g. silkscreen, fab, courtyard). Write add_component_annotation Add a text annotation or comment to a PCB component. Write add_copper_pour Add a copper pour (ground/power plane) to the PCB Write add_gnd_stitching_vias Drop GND stitching vias across the board with collision checking against every non-GND segment, via, and pa... Write add_hierarchical_sheet Insert a hierarchical-sheet reference block into a parent schematic, pointing at an existing sub-sheet file... Write add_layer Add a new copper or technical layer to the PCB stackup. Write add_mounting_hole Place a mounting hole (NPTH or PTH) at the specified position on the PCB. Write add_net Add a new net to the PCB Write add_net_class Create a named net class with specific design rules (clearance, track width, via size) and assign nets to it. Write add_no_connect Add a no-connect flag (X marker) to a pin that is intentionally left unconnected. Write add_schematic_component Add a component to a KiCAD schematic Write add_schematic_hierarchical_label Add a hierarchical label (sheet interface port) to a sub-sheet schematic. Write add_schematic_net_label Add a net label to the schematic. Write add_schematic_text Add a free-form text annotation to the schematic. Write add_schematic_wire Add a wire connection to a KiCAD schematic Write add_sheet_pin Add a pin to a sheet symbol block on the parent schematic. Sheet pins are the Write add_via Add a via to the PCB Write add_zone Create a copper fill zone (pour) on a PCB layer for a specified net. Write align_components Align multiple PCB components horizontally, vertically or on a grid with optional spacing. Write annotate_schematic Assign reference designators to unannotated components (R? → R1, R2, ...). Must be called before tools that... Write assign_net_to_class Assign a net to an existing net class to apply its specific design rules. Write autoplace_schematic_fields Automatically reposition every component Write batch_add_and_connect Place multiple components AND wire their nets in a single call — the fewest-round-trip way to build a subci... Write batch_add_components Add multiple components to a schematic in one call (far fewer round-trips than add_schematic_component). Ea... Write batch_add_no_connects Add no-connect (X) flags to multiple pins in one call, to mark intentionally unconnected pins and silence ERC. Write batch_connect Place net labels on multiple pins in one call to wire nets quickly. Write batch_edit_schematic_components Edit multiple existing components in one call. Write batch_set_schematic_property_positions Move many Reference/Value field labels in a single file read/write — far faster than repeated set_schematic... Write connect_passthrough Connects all pins of a source connector (e.g. J1) to matching pins of a target connector (e.g. J2) via shar... Write connect_to_net Connect a component pin to a named net by adding a wire stub and net label at the exact pin endpoint. Write copy_routing_pattern Copy routing pattern (traces and vias) from a group of source components to a matching group of target comp... Write create_footprint Create a new KiCAD footprint (.kicad_mod) inside a .pretty library directory. Write create_hierarchical_subsheet Create a new sub-sheet .kicad_sch file and link it into a parent schematic in a single call (create_schemat... Write create_netclass Create a new net class with custom design rules. Write create_project Create a new KiCAD project Write create_schematic Create a new KiCAD schematic Write create_symbol Create a new schematic symbol in a .kicad_sym library file (created if missing). Write duplicate_component Duplicate an existing PCB component at an offset position, optionally with a new reference designator. Write edit_component Edit properties of an existing PCB component (reference, value, footprint). Write edit_footprint_pad Edit an existing pad inside a .kicad_mod footprint file. Write edit_schematic_component Update properties of a placed symbol in a KiCAD schematic (.kicad_sch) in-place. Use this tool to: • ass... Write export_3d Export the PCB as a 3D model (STEP, STL, VRML or OBJ) including optional copper, solder mask, silkscreen an... Write export_dsn Export the current PCB to Specctra DSN format. Useful for manual Freerouting workflow or external autorouters. Write export_gerber Export PCB Gerber manufacturing files to a directory. Optionally include drill files, map files and choose ... Write export_netlist Export the schematic netlist to a file using kicad-cli. Supports KiCad XML (default), Spice (for simulation... Write export_pdf Export the PCB layout as a PDF document, optionally selecting layers, page size and colour mode. Write export_position_file Export a component placement/position file (pick-and-place) for PCB assembly in CSV or ASCII format. Write export_schematic_pdf Export a KiCAD schematic to PDF Write export_vrml Export the PCB as a VRML 3D model for use in web viewers or simulation tools. Write group_components Group multiple PCB components together by name for easier selection and manipulation. Write import_ses Import a Specctra SES (session) file into the current PCB. Use after running Freerouting externally. Write import_svg_logo Imports an SVG file as filled graphic polygons onto a KiCAD PCB layer (default F.SilkS / front silkscreen).... Write modify_trace Modify an existing trace (change width, layer, or net). Write move_component Move a PCB component to a new position. Optionally update rotation or flip to a different copper layer. Write move_schematic_component Move a placed symbol to a new position in the schematic. By default (preserveWires=true) wire endpoints tou... Write move_schematic_net_label Move a net label (local, global, or hierarchical) to a new position in the schematic. Use currentPosition t... Write place_component Place a component on the PCB Write place_component_array Place a rectangular grid array of identical components on the PCB with configurable row/column spacing. Write register_footprint_library Register a .pretty footprint library in KiCAD Write register_symbol_library Register a .kicad_sym library in KiCAD Write replace_component Replace an existing PCB component with a different component type, optionally changing footprint and value. Write replace_schematic_component Replace a placed component Write rotate_component Rotate a PCB component to an absolute angle in degrees. Write rotate_schematic_component Rotate a placed symbol in the schematic. Write route_differential_pair Route a differential pair between two sets of points. Write route_pad_to_pad PREFERRED tool for pad-to-pad routing. Looks up pad positions automatically, detects the net from the pad, ... Write route_trace Route a trace between two points or pads Write save_project Save the current KiCAD project Write set_active_layer Set the currently active PCB layer by name (e.g. F.Cu, B.Cu). Write set_board_size Set the size of the PCB board Write set_design_rules Configure PCB design rules: clearance, track width, via dimensions and courtyard requirements. Write set_layer_constraints Set per-layer design rule constraints (minimum track width, clearance and via dimensions). Write set_schematic_component_property Add or update a single custom property on a placed schematic symbol. This is a focused convenience wrapper... Write set_schematic_property_position Move a component Write snap_to_grid Snap schematic element coordinates to the nearest grid point. Write sync_schematic_to_board Import the schematic netlist into the PCB board — equivalent to pressing F8 in KiCAD (Tools → Update PCB fr...

Route KiCAD-MCP-Server through PolicyLayer and every one of its 157 tools is checked against your policy before it runs.

CHECK YOUR STACK →

See every tool, the dangerous ones, and the token cost across your stack.

How many tools does the KiCAD-MCP-Server MCP server have? +

The KiCAD-MCP-Server MCP server exposes 157 tools across 4 categories: Read, Write, Destructive, Execute.

How do I enforce policies on KiCAD-MCP-Server tools? +

Route the KiCAD-MCP-Server server through the PolicyLayer gateway. Define allow, deny, or approval rules per tool in the dashboard; they are enforced on every call before it reaches the server.

What risk categories do KiCAD-MCP-Server tools fall into? +

KiCAD-MCP-Server tools are categorised as Read (64), Write (81), Destructive (7), Execute (5). Each category has a recommended default policy.

Enforce policy on every KiCAD-MCP-Server tool call.

Start from KiCAD-MCP-Server, add the rest of your stack, and see everything your agents can call. Then put policy on all of it.

Free to start. No card required.

43,000+ MCP servers and 220,000+ tools scanned and risk-classified.

// GET IN TOUCH

Have a question or want to learn more? Send us a message.

Message sent.

We'll get back to you soon.