Skip to main content
Glama
brovk2008
by brovk2008

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KICAD_API_SOCKETNoPath to the KiCad IPC API socket. On Windows defaults to ipc://%TEMP%\kicad\api.sockipc:///tmp/kicad/api.sock

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
kicad_pingA

Check connection to KiCad and return version info.

kicad_check_versionA

Check if the connected KiCad version matches the kipy library version.

get_board_infoA

Get high-level information about the currently open board.

get_title_blockB

Get the board title block info.

set_title_blockA

Update title block information for the board.

All parameters are optional. Values not specified will remain unchanged.

get_stackupA

Get stackup layers, thickness, material, and electrical properties.

get_design_rulesA

Get raw design rules (KiCad 11+).

get_custom_design_rulesA

Get custom design rules text and any parsing errors (KiCad 11+).

set_custom_design_rulesC

Set custom design rules text (KiCad 11+).

get_enabled_layersB

Get list of currently enabled board layers.

get_visible_layersB

Get list of visible board layers.

set_visible_layersC

Set the list of visible board layers.

get_active_layerA

Get current active board layer name.

set_active_layerC

Set the active board layer.

get_board_originC

Get board origin coordinates (grid or drill).

set_board_originC

Set board origin coordinates (grid or drill).

get_board_as_stringA

Retrieve the entire board (.kicad_pcb) content as text.

save_boardC

Save the board changes to file.

save_board_asC

Save the board as a new file.

revert_boardA

Revert board to the last saved state on disk.

begin_commitA

Begin an edit transaction for batching multiple operations into a single Undo step.

push_commitC

Push/apply the active transaction and close the commit.

drop_commitB

Drop/cancel the active transaction and discard changes.

list_footprintsA

List footprints on the board, optionally filtered by reference designator substring.

get_footprintB

Retrieve detailed information about a specific footprint by its reference designator.

get_footprint_bounding_boxC

Get the bounding box of a footprint (in millimeters).

move_footprintB

Move a footprint to absolute coordinates (in millimeters).

rotate_footprintC

Rotate a footprint to a specific absolute angle (in degrees).

move_and_rotate_footprintC

Move and rotate a footprint in one operation.

flip_footprintB

Flip a footprint to the opposite side of the board (F.Cu <=> B.Cu).

lock_footprintC

Lock or unlock a footprint to prevent accidental movement.

set_footprint_dnpC

Set the Do Not Populate (DNP) flag on a footprint.

set_footprint_bom_excludedC

Set whether a footprint is excluded from the Bill of Materials (BOM).

set_footprint_fieldB

Update or add a field on a footprint (e.g. Reference, Value, custom fields).

remove_footprintC

Remove a footprint from the board.

list_padsC

List all pads of a footprint.

get_padB

Get detailed information for a single pad of a footprint.

get_connected_itemsC

Retrieve items connected to a specific pad.

interactive_move_footprintA

Initiates an interactive move in the GUI. Returns immediately but blocks further API calls until complete.

list_tracksC

List tracks on the board, optionally filtered by net name and/or layer name.

get_trackC

Get details of a specific track by its ID.

add_trackC

Add a straight track segment to the board.

add_arc_trackC

Add an arc track segment to the board.

update_track_widthC

Update the width of a track segment.

update_track_netC

Update the net assigned to a track.

move_trackB

Move a track by a relative delta (in millimeters).

lock_trackC

Lock or unlock a track segment.

remove_trackB

Remove a track segment from the board.

remove_tracks_in_rectA

Remove all tracks within a bounding box, optionally filtered by layer name.

get_tracks_by_netC

List tracks belonging to a specific net.

get_tracks_by_netclassA

List tracks belonging to all nets in a net class.

list_viasA

List vias on the board, optionally filtered by net name.

get_viaC

Get details of a specific via by its ID.

add_viaC

Add a via to the board.

update_via_sizeB

Update the diameter and/or drill size of a via.

update_via_netC

Update the net assigned to a via.

lock_viaC

Lock or unlock a via.

remove_viaC

Remove a via from the board.

list_zonesA

List zones on the board, optionally filtered by net and/or layer.

get_zoneC

Get details of a specific zone by its ID.

add_rect_copper_zoneC

Add a rectangular copper pour zone to the board.

add_polygon_copper_zoneC

Add a polygonal copper pour zone to the board.

points_mm should be a list of dicts like [{"x_mm": 0, "y_mm": 0}, ...]

add_rect_rule_areaB

Add a keep-out / rule area zone (non-copper) to the board.

update_zone_netB

Change the net assigned to a copper zone.

update_zone_priorityC

Change the priority level of a zone.

update_zone_clearanceC

Update the clearance setting of a copper zone.

move_zoneB

Shift a zone by a relative delta (in millimeters).

lock_zoneC

Lock or unlock a zone.

remove_zoneC

Remove a zone from the board.

refill_zonesC

Trigger refilling of all zones on the board.

list_netsB

List nets on the board, optionally filtered by netclass name.

get_net_itemsC

Retrieve all board items associated with a specific net.

get_items_by_netclassC

Retrieve all board items associated with nets in a specific netclass.

get_netclass_for_netC

Retrieve netclass settings for a given net.

import_netlistC

Import a netlist file into the board. (Requires newer KiCad/kipy API).

list_textA

List free text and text box items on the board, optionally filtered by layer name.

get_text_itemA

Get details of a specific text or text box item by its ID.

add_textC

Add a free text object to the board.

add_text_boxC

Add a text box to the board.

update_text_valueC

Update the text value of a text or text box item.

update_text_positionB

Update the position of a text item (top-left for text boxes).

update_text_layerB

Update the layer of a text or text box item.

update_text_attributesB

Update text formatting attributes.

lock_textC

Lock or unlock a text or text box item.

remove_textC

Remove a text or text box item from the board.

expand_text_variablesB

Expand text variables in the given string based on board/project settings.

list_shapesA

List graphic shapes on the board, optionally filtered by layer name.

get_shapeB

Get details of a specific graphic shape by its ID.

add_segmentC

Add a straight graphic segment (line) to the board.

add_rectangleC

Add a graphic rectangle to the board.

add_circleB

Add a graphic circle to the board.

add_arcC

Add a graphic arc to the board.

add_polygonC

Add a graphic polygon to the board.

points_mm should be a list like [{"x_mm": 0, "y_mm": 0}, ...]

move_shapeC

Move a shape by a relative offset (in millimeters).

rotate_shapeB

Rotate a shape by an angle around a center point (in degrees).

update_shape_layerC

Change the layer of a shape.

update_shape_widthC

Update the stroke line width of a shape.

lock_shapeC

Lock or unlock a shape.

remove_shapeB

Remove a shape from the board.

list_dimensionsA

List dimension annotations on the board, optionally filtered by layer name.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/brovk2008/Kicad-MCP-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server