kicad-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KICAD_MCP_PORT | No | HTTP port for the MCP server, 8765 by default; 0 selects an available port. | 8765 |
| KICAD_MCP_TOKEN | No | Optional fixed HTTP token to keep the client configuration unchanged. | |
| KICAD_API_SOCKET | No | Path to the KiCad IPC socket to target another KiCad instance. | |
| KICAD_MCP_READ_ONLY | No | Enable read-only mode. Set to 1 to enable. | |
| KICAD_MCP_STATE_DIR | No | Override the session directory. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| kicad_statusA | Check the connection to KiCad and report the editor version. |
| get_board_infoA | Read the active PCB's name, layers and item counts. |
| list_footprintsA | List components, references, values and placement in mm; optionally filter by reference. |
| list_netsA | List the electrical nets of the active PCB. |
| list_tracksA | Read PCB tracks, widths, positions, copper layers and nets. |
| get_selectionA | Read the items currently selected in the PCB editor. |
| get_bomA | Read the PCB bill of materials with quantities and custom fields; omit DNP/excluded parts by default. |
| export_bomB | Return a spreadsheet-safe CSV BOM as text, without writing a file; delimiter may be comma, semicolon or tab. |
| update_bom_fieldsA | Update custom BOM fields, value or assembly flags on exact PCB references in one undo step; do not save or change the schematic. |
| move_footprintA | Move one unlocked component to absolute mm coordinates, with optional rotation; do not save. |
| add_trackA | Add one straight copper track, optionally assigned to an existing net; no autorouting or DRC. |
| add_textA | Add PCB text at absolute mm coordinates on the specified layer; do not save. |
| save_boardA | Explicitly save the active PCB, including unsaved changes made in the editor, to its current file. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool has a distinct purpose: listing nets vs. tracks vs. footprints, reading vs. writing board info, and save/status are clearly separated. No overlapping or ambiguous tool boundaries.
Most tools follow a clear verb_noun pattern (list_*, get_*, update_*, add_*, save_*, export_*), with a few exceptions like 'kicad_status' and 'get_board_info' breaking the strict verb-first pattern. Overall naming is predictable and readable.
13 tools is a reasonable, focused set for a KiCad PCB MCP server. Each tool covers a necessary operation without redundancy, and the count is within the ideal 3-15 range.
The set covers core PCB inspection, modification, and board management operations. Minor gaps exist such as no explicit tool for deleting objects or modifying tracks/footprints, but the surface is largely complete for typical read/modify workflows.