Skip to main content
Glama
lmaag182

KiCad MCP Server (IPC API)

by lmaag182

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
KICAD_API_TOKENNoAuth token from KiCad when launched as plugin
KICAD_API_SOCKETNoPath to KiCad IPC socket (auto-detected if unset)
KICAD_IPC_TIMEOUT_MSNoRequest timeout in ms (default: 5000)

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
ping_kicadA

Check connectivity to the running KiCad IPC server.

get_kicad_statusA

Get KiCad connection status and version information.

list_open_documentsA

List documents currently open in KiCad.

get_kicad_versionA

Get KiCad and API version details.

run_kicad_actionC

Run a KiCad editor action by name (unstable API).

get_board_infoA

Get summary information about the open PCB.

get_board_sizeA

Get bounding box size of the board outline in mm.

get_board_as_stringA

Get the board file contents as a KiCad S-expression string.

get_selection_as_stringA

Get current selection as KiCad S-expression string.

list_componentsC

List all footprint instances on the board.

get_componentA

Get a component by reference designator.

list_tracksA

List all tracks and arc tracks.

list_viasC

List all vias.

list_padsA

List all pads on the board.

list_netsA

List all nets, optionally filtered by net class.

list_zonesA

List all copper and rule zones.

list_groupsB

List all item groups on the board.

list_dimensionsB

List all dimension objects.

list_board_textA

List all board text and text boxes.

list_board_shapesB

List graphic shapes (segments, arcs, rects, etc.).

list_barcodesB

List barcode objects on the board.

get_items_by_idB

Retrieve board items by their KiCad UUID.

get_items_by_netC

Retrieve items belonging to a net.

get_connected_itemsB

Get all copper-connected items from a starting item.

get_stackupA

Get the board layer stackup.

get_title_blockA

Get board title block fields.

save_boardA

Save the current board, optionally to a new path.

revert_boardA

Revert board to last saved state.

place_componentC

Place a footprint on the board.

move_componentC

Move a component to a new position.

rotate_componentC

Rotate a component by a relative angle.

delete_componentB

Delete a component by reference.

route_traceC

Add a copper trace between two points.

add_viaC

Add a through-hole via.

add_copper_pourC

Add a copper pour zone from polygon points.

refill_zonesC

Refill all copper zones.

add_board_textC

Add silkscreen or copper text.

add_board_outlineC

Add board outline segments on Edge.Cuts.

add_mounting_holeC

Add circular mounting hole on Edge.Cuts.

set_board_sizeC

Create rectangular board outline.

delete_items_by_idC

Delete board items by UUID.

set_title_blockC

Update board title block fields.

get_layer_listA

List all enabled board layers.

get_visible_layersA

List layers visible in the editor.

get_active_layerA

Get the active drawing layer.

set_active_layerC

Set the active drawing layer.

set_visible_layersC

Set which layers are visible in the editor.

get_copper_layer_countA

Get number of copper layers.

set_enabled_layersB

Set copper layer count and enabled non-copper layers (destructive).

get_layer_nameB

Get display name for a layer.

get_selectionA

Get currently selected board items.

add_to_selectionC

Add items to selection by UUID.

remove_from_selectionB

Remove items from selection.

clear_selectionA

Clear the editor selection.

get_item_bounding_boxC

Get bounding box for a board item.

hit_testC

Test if a point hits a board item.

get_board_originB

Get grid or drill origin.

set_board_originC

Set grid or drill origin.

get_editor_appearanceB

Get PCB editor appearance settings.

get_net_classesA

Get project net classes.

get_text_variablesB

Get project text variables.

set_text_variablesC

Set project text variables.

expand_text_variablesB

Expand ${VAR} placeholders in text strings.

export_gerbersC

Export Gerber manufacturing files.

export_drillC

Export Excellon drill files.

export_pdfC

Export board as PDF.

export_svgC

Export board as SVG.

export_dxfC

Export board as DXF.

export_3dC

Export 3D model (STEP, GLB, STL, etc.).

export_positionC

Export pick-and-place position files.

export_ipc2581C

Export IPC-2581 package.

export_odbC

Export ODB++ package.

export_statsC

Export board statistics report.

list_tool_categoriesB

Browse all KiCad IPC tool categories and their tools.

search_toolsB

Search KiCad IPC tools by name, description, or category.

get_tool_schemaB

Get the parameter schema for a KiCad IPC tool.

execute_kicad_toolC

Execute any KiCad IPC tool by name with a JSON arguments object.

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/lmaag182/kicad_mcp_server_ipc'

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