New Your team’s decisions, in one playbook every coding agent works from. Never answer your agent twice

KiCAD-MCP-Server

231 tools. 139 can modify or destroy data without limits.

12 destructive tools with no built-in limits. Policy required.

Last updated:

139 can modify or destroy data
92 read-only
231 tools total

Community server · catalogue entry checked 22/08/2026

How to control KiCAD-MCP-Server ↓

What KiCAD-MCP-Server exposes to your agents

Read (92) Write / Execute (127) Destructive / Financial (12)
Critical Risk

The most dangerous KiCAD-MCP-Server tools

139 of KiCAD-MCP-Server's 231 tools can modify, destroy, or commit something on every call — and an agent calls them with no built-in limits.

How to control KiCAD-MCP-Server

PolicyLayer is an MCP gateway — it sits between your AI agents and KiCAD-MCP-Server, and nothing reaches the server without passing your rules. These are the rules we recommend:

Deny destructive operations
{
  "clear_board_outline": {
    "deny_if": [
      {
        "conditions": [],
        "on_deny": "Blocked by default. Requires approval."
      }
    ]
  }
}

Destructive tools should never be available to autonomous agents without human approval.

Rate limit write operations
{
  "add_board_outline": {
    "limits": [
      {
        "counter": "add_board_outline_per_hour",
        "window": "hour",
        "max": 30,
        "scope": "grant"
      }
    ]
  }
}

Prevents bulk unintended modifications from agents caught in loops.

Cap read operations
{
  "batch_list_symbol_pins": {
    "limits": [
      {
        "counter": "batch_list_symbol_pins_per_minute",
        "window": "minute",
        "max": 60,
        "scope": "grant"
      }
    ]
  }
}

Controls API costs and prevents retry loops from exhausting upstream rate limits.

  1. Create a free account and register KiCAD-MCP-Server — nothing to install.
  2. Add these rules — paste them, or build them visually. Tune the limits to your setup.
  3. Point your MCP client (Claude, Cursor, anything) at your gateway URL.
ENFORCE POLICY ON KICAD-MCP-SERVER →

Instant setup, no code required.

All 231 KiCAD-MCP-Server tools

WRITE 120 tools
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_3d_model Attach a 3D model to one or more PLACED footprints on the open board, live via 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_footprint_3d_model Attach (or replace) a 3D model — .step/.stp/.wrl — to a .kicad_mod footprint file. Write add_gnd_stitching_vias Drop GND stitching vias across the board with collision checking against every non-GND segment, via, and pad o Write add_hierarchical_sheet Insert a hierarchical-sheet reference block into a parent schematic, pointing at an existing sub-sheet file. A Write add_layer Add a new copper or technical layer to the PCB stackup. Write add_library_symbol_property Add or update a custom property (Manufacturer, MPN, LCSC, etc.) on a symbol definition in the lib_symbols sect 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_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_symbol_property Add or update a custom property (Manufacturer, MPN, LCSC, etc.) on a symbol in a .kicad_sym 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 re 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 backannotate_footprints Copy footprint assignments from a .kicad_pcb back into the schematic Write batch_add_and_connect Place multiple components AND wire their nets in a single call — the fewest-round-trip way to build a subcircu Write batch_add_components Add multiple components to a schematic in one call (far fewer round-trips than add_schematic_component). Each 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_move_components Move multiple PCB components transactionally. If one reference/spec is invalid, no components are moved. Saves Write batch_set_schematic_property_positions Move many Reference/Value field labels in a single file read/write — far faster than repeated set_schematic_pr Write close_project Close the currently loaded KiCAD project: optionally save, then drop the in-memory board and clear session sta Write connect_passthrough Connects all pins of a source connector (e.g. J1) to matching pins of a target connector (e.g. J2) via shared 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 compone Write create_board_from_schematic Create a new .kicad_pcb file from a schematic, then update the PCB from that schematic so footprints and nets 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_schematic Write create_netclass Create a new net class with custom design rules, optionally assigning nets to it immediately. 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 download_jlcpcb_database Download the JLCPCB parts catalog to a local SQLite database for fast offline search. Sources (no API credent 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: • assign Write enrich_datasheets Fill in missing Datasheet URLs in a KiCAD schematic using LCSC part numbers. For every placed symbol that has Write export_3d Export the PCB as a 3D model (STEP, STL, VRML or OBJ) including optional copper, solder mask, silkscreen and c Write export_dsn Export the current PCB to Specctra DSN format. Useful for manual Freerouting workflow or external autorouters. Write export_gencad Export the PCB in GenCAD format via kicad-cli. Assembly/test interchange format. Exposes padstack flip, unique Write export_gerber Export PCB Gerber manufacturing files to a directory. Optionally include drill files, map files and choose lay Write export_gerber_single Plot the given layers to a SINGLE Gerber file via kicad-cli ( Write export_gerbers Plot Gerber files for a PCB via kicad-cli, exposing the full Plot-dialog option set (X2, netlist attributes, D 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_pos Generate a component placement (position / pick-and-place) file via kicad-cli, exposing the full CLI option se Write export_position_file Export a component placement/position file (pick-and-place) for PCB assembly in CSV or ASCII format. Write export_sch_dxf Export a schematic to DXF via kicad-cli ( Write export_sch_hpgl Export a schematic to HPGL via kicad-cli ( Write export_sch_pdf Export a schematic to PDF via kicad-cli ( Write export_sch_ps Export a schematic to PostScript via kicad-cli ( Write export_schematic_pdf Export a KiCAD schematic to PDF Write export_symbol Extract a single symbol from a .kicad_sym library into a standalone .kicad_sym file. 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 hierarchical_place Cluster a board Write import_3d_model Copy a 3D model file (.step/.stp/.wrl/.x3d/.iges) into the project Write import_eagle_project Import an Eagle project (.brd + .sch) and convert it to a KiCad project. Write import_pcb Import a vendor PCB file (PADS, Altium, Eagle, CADSTAR, Fabmaster, P-CAD, SolidWorks PCB, Write import_ses Import a Specctra SES (session) file into the current PCB. Use after running Freerouting externally. Write import_symbol Copy a symbol from one .kicad_sym library into another, with optional rename and overwrite. Write lint_schematic_cosmetic Netlist-safe cosmetic cleanup of a .kicad_sch, applied as raw-text edits that never 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_footprint_text Move or update a footprint Reference/Value/user text field without moving the footprint. Write move_schematic_component Move a placed symbol to a new position in the schematic. By default (preserveWires=true) wire endpoints touchi Write move_schematic_net_label Move a net label (local, global, or hierarchical) to a new position in the schematic. Use currentPosition to d 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 reload_board Reload the current or specified .kicad_pcb from disk, discarding stale in-memory board state. Write rename_symbol Rename a symbol in a .kicad_sym library, including its sub-symbol shards (name_0_1, ...) and Write repair_flat_symbols Repair Write replace_board_outline Replace the current Edge.Cuts board outline with a rectangle, rounded rectangle, circle or polygon. Write replace_component Replace an existing PCB component with a different component type, optionally changing footprint and value. Write replace_instance_lib_ids Replace lib_id references in schematic symbol instances per an explicit old-to-new mapping — the mechanical la 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_arc_trace Route a copper arc trace defined by start/mid/end points. Uses true PCB arc primitives when available. 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, and Write route_trace Route a trace between two points or pads Write save_as Save the current PCB board to a new .kicad_pcb path. Write save_board Save the current PCB board. Refuses to overwrite external disk edits unless force=true. 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_origin Set the auxiliary (drill/place) origin and/or grid origin of a .kicad_pcb. 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_footprint_type Set the placement type (through_hole / smd / unspecified) and optional exclusion flags on a placed PCB footpri Write set_layer_constraints Set per-layer design rule constraints (minimum track width, clearance and via dimensions). Write set_library_table_uri Repoint an existing library-table entry at a different file, keeping its nickname, type Write set_schematic_component_property Add or update a single custom property on a placed schematic symbol. This is a focused convenience wrapper ar Write set_schematic_property_position Move a component Write set_sheet_property Add or update a custom property on a hierarchical sheet Write set_symbol_pin_type Set the electrical type (and optionally the graphic style) of pins in a .kicad_sym Write snap_to_grid Snap schematic element coordinates to the nearest grid point. Write snapshot_project Save a named checkpoint snapshot of the current project state (renders board to PDF and records step label). C Write suggest_placement Propose an optimized PCB footprint placement that shortens net length, orients parts toward their partners, an Write suggest_schematic_declutter Re-orient overlapping net/global labels so their text lands in free space and becomes readable. Each label Write sync_schematic_to_board Import the schematic netlist into the PCB board — equivalent to pressing F8 in KiCAD (Tools → Update PCB from Write update_graphic Update common properties of a PCB graphic/drawing item by UUID. Write update_symbol_from_library Refresh embedded lib_symbols cache entries from a KiCad symbol library (equivalent to KiCad
READ 92 tools
Read batch_list_symbol_pins Return pin names, numbers, types, and symbol-local coordinates for multiple symbols in a single call. Use inst Read check_clearance Check the actual clearance between two PCB items (track, via, pad, zone or component) and report whether it me Read check_courtyard_overlaps Detect courtyard overlaps between footprints and (optionally) flag courtyards that extend past the board outli Read check_freerouting Check if Java and Freerouting JAR are available on the system. Run this before autoroute to verify prerequisit Read check_kicad_ui Check if KiCAD UI is currently running Read check_placement_clearance Classify placement conflicts as body overlap, courtyard overlap, keepout violation, silk/text overlap or pad c Read download_registry_part Download a registry part Read estimate_airwire_lengths Alias for get_ratsnest: estimate airwire segments and lengths by net. Read export_bom Export a Bill of Materials (BOM) from the PCB in CSV, XML, HTML or JSON format. Read export_ipc2581 Export the PCB in IPC-2581 format via kicad-cli. Single-file MES/CAD interchange carrying placement, nets and Read export_ipcd356 Generate an IPC-D-356 bare-board electrical-test netlist via kicad-cli. Consumed by flying-probe and bed-of-na Read export_odb Export the PCB in ODB++ format via kicad-cli. Single job archive (copper, drill, placement, components, nets, Read export_pcb_dxf Plot the PCB layout to DXF via kicad-cli, exposing the full layer-plot option set (layer + common-layer lists, Read export_pcb_pdf Plot the PCB layout to PDF via kicad-cli, exposing the full layer-plot option set (layer + common-layer lists, Read export_pcb_svg Plot the PCB layout to SVG via kicad-cli, exposing the full layer-plot option set (layer + common-layer lists, Read export_sch_bom Generate a Bill of Materials from a schematic via kicad-cli ( Read export_sch_python_bom Export the legacy Python-BOM intermediate XML from a schematic via kicad-cli ( Read export_sch_svg Export a schematic to SVG via kicad-cli ( 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 find_component Search for a PCB component by reference designator or value and return its position and properties. Read find_duplicate_symbols Group symbols in a .kicad_sym that are the same part stored twice under different 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 the Read find_wires_crossing_symbols Find all wires that cross over component symbol bodies. Wires passing over symbols are unacceptable in schemat Read generate_netlist Return a structured JSON netlist from the schematic — component list (reference, value, footprint) and net lis 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_board_origin Read back the auxiliary (drill/place) origin and grid origin of a .kicad_pcb in mm. Read get_category_tools Return all tools available in a specific category. Use list_tool_categories first to find valid category names Read get_component_geometry Return separated footprint geometry bboxes: body, pads, courtyard, keepout, fab, silk and text. 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. N 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 wha 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. When JLCPCB Open Platform credentials a 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_net_pads Return every PCB pad attached to a net name or net code. 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 sta Read get_pads Return pads for one PCB component, selected refs, or all components, including XY, layer, size and net. Read get_project_info Get information about the current project Read get_ratsnest Estimate ratsnest/airwire segments and lengths from current pad positions grouped by net. Read get_registry_part Get full details for one registry part by id: description, downloadable files (footprint/symbol/3D), datasheet 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_lab Read get_schematic_view Return a rasterized image of the schematic (PNG by default, or SVG). Uses kicad-cli to export SVG, then conver Read get_schematic_view_region Export a cropped region of the schematic as an image (PNG or SVG). Specify bounding box coordinates in schemat Read get_sheet_properties List hierarchical sheets in a schematic with their name, file, uuid, position, and full property map (built-in Read get_symbol_info Get detailed information about a specific symbol (global or project-scope when projectPath is supplied or a pr Read get_wire_connections Returns the net name and all wires and component pins connected at a given point. Read is_dirty Return whether the MCP knows the loaded board has unsaved memory changes or external disk changes. Read lint_offgrid Report every off-grid connection-relevant coordinate in a schematic — wire/bus 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_graphics List PCB graphic/drawing items such as gr_line, gr_arc, gr_rect, gr_text and dimensions. 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 or a Read list_library_table Read a sym-lib-table or fp-lib-table: nickname, type, URI and description of every Read list_schematic_components List all components in a schematic with their references, values, positions, and pins. Essential for inspectin 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 this 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 which t Read load_schematic Load an existing KiCAD schematic Read open_board Open a specific .kicad_pcb board file and refresh the MCP in-memory board state. Read open_project Open an existing KiCAD project 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. Returns z 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 first w Read search_parts_registry Search an open, gate-verified parts registry for existing KiCAD parts BEFORE generating a custom footprint/sym Read search_symbols Search for symbols in local KiCAD symbol libraries. Searches by: symbol name, LCSC ID, description, manufactu Read search_tools Search all available KiCAD tools by keyword. Returns matching tool names and their categories. Read suggest_jlcpcb_alternatives Suggest alternative JLCPCB parts for a given component. Finds similar parts that may be cheaper, have more st Read validate_schematic Check that a .kicad_sch file is structurally sound, reporting the line and column of Read validate_symbol_library Check that a .kicad_sym file is structurally sound and will load, reporting the line

Related servers

Other MCP servers with similar tools — same risk classification, starter policies for each.

Questions about KiCAD-MCP-Server

Can an AI agent delete data through the KiCAD-MCP-Server MCP server? +

Yes. The KiCAD-MCP-Server server exposes 12 destructive tools including clear_board_outline, delete_component, delete_graphic. These permanently remove resources with no undo. PolicyLayer blocks destructive tools by default so they never reach the upstream server.

How do I prevent bulk modifications through KiCAD-MCP-Server? +

The KiCAD-MCP-Server server has 120 write tools including add_board_outline, add_board_text, add_component_3d_model. Set a rate limit in your policy -- for example, 10 calls per hour prevents an agent from making more than 10 modifications per hour. PolicyLayer enforces this at the gateway, before calls reach KiCAD-MCP-Server.

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

231 tools across 4 categories: Destructive, Execute, Read, Write. 92 are read-only. 139 can modify, create, or delete data.

How do I enforce a policy on KiCAD-MCP-Server? +

Register the KiCAD-MCP-Server MCP server in PolicyLayer, apply the suggested rules above (adjust the limits to your use case), and point your AI client at the PolicyLayer proxy URL instead of the server directly. Your agents keep the same tools; PolicyLayer evaluates every call against policy before it executes. Nothing to install, live in minutes.

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

Deterministic rules across all 231 KiCAD-MCP-Server tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.

Instant setup, no code required.

231 KiCAD-MCP-Server tools catalogued and risk-classified — across an index of 46,500+ MCP servers.

// WHERE THIS COMES FROM

These policies come from KiCAD-MCP-Server's registry record.

The record behind this page: verified identity, auth posture, risk grade, every tool classified, recommended policy — re-checked continuously.

Teams ship this data inside their own products. See what a licence covers →

// GET IN TOUCH

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

Message sent.

We'll get back to you soon.