Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
connect_kicadA

Connect to a running KiCad instance via the IPC API.

This must be called before any other operations. Ensure KiCad is running with the API server enabled in Preferences > Plugins.

check_connectionA

Check if currently connected to KiCad.

Returns connection status, KiCad version, and whether versions match.

Returns: Dictionary with connection status and version info.

Example: >>> check_connection() {"connected": True, "version": "9.0.1", "version_match": True}

get_board_infoB

Get board metadata (title, date, company, revision, comments).

Returns: Dictionary with board metadata fields.

Example: >>> get_board_info() {"title": "My PCB", "date": "2025-01-01", "company": "", "revision": "1.0"}

get_layersA

List all PCB layers with their properties.

Returns: List of layer objects with id, name, type, visible, enabled.

Example: >>> get_layers() [{"id": 0, "name": "Copper", "type": "signal", "visible": True, "enabled": True}]

get_board_design_settingsA

Get board design rules and constraints.

Returns: Dictionary with design settings (track widths, clearances, via specs).

Example: >>> get_board_design_settings() {"track_width": 0.2, "via_diameter": 0.6, "via_drill": 0.3}

list_footprintsA

List all footprints on the board.

Returns: List of footprint objects with reference, value, footprint type, position.

Example: >>> list_footprints() [{"reference": "U1", "value": "ATmega328P", "footprint": "Package:DIP-8", ...}]

get_footprintA

Get detailed properties of a specific footprint by reference designator.

search_footprintsB

Search footprints by reference designator, value, or footprint name.

list_netsA

List all nets on the board.

Returns: List of net objects with name, code, and netclass.

Example: >>> list_nets() [{"name": "GND", "code": 0, "netclass": "Default"}, {"name": "VCC", ...}]

get_netA

Get detailed information about a specific net by name.

list_netclassesA

List all netclasses on the board.

Returns: List of netclass objects with name and properties.

Example: >>> list_netclasses() [{"name": "Default", "clearance": 0.2, "track_width": 0.25, ...}]

list_zonesA

List all zones (copper areas) on the board.

Returns: List of zone objects with name, net, layer, fill mode, priority.

Example: >>> list_zones() [{"name": "GND", "net": "GND", "layer": "Copper", "priority": 0}]

list_tracksA

List all tracks on the board.

Returns: List of track objects with start/end positions, layer, net, width.

Example: >>> list_tracks() [{"start": {"x": 0, "y": 0}, "end": {"x": 100, "y": 0}, "net": "VCC", ...}]

list_viasA

List all vias on the board.

Returns: List of via objects with position, diameter, drill, net, layers.

Example: >>> list_vias() [{"position": {"x": 100, "y": 50}, "diameter": 0.6, "drill": 0.3, "net": "GND"}]

list_padsA

List all pads across all footprints.

Returns: List of pad objects with footprint reference, number, net, position, size.

Example: >>> list_pads() [{"footprint": "U1", "number": "1", "net": "VCC", "position": {"x": 0, "y": 0}, ...}]

list_textsA

List all text elements on the board.

Returns: List of text objects with content, type, layer, position, size.

Example: >>> list_texts() [{"text": "PCB Title", "type": "PCB_TEXT", "layer": "Silkscreen", ...}]

get_text_extentsA

Calculate the bounding box of a text string.

get_versionA

Get KiCad version and API version information.

Returns: Dictionary with version strings and version match status.

Example: >>> get_version() {"version": "9.0.1", "api_version": "9.0", "version_match": True}

get_projectA

Get current project information.

Returns: Dictionary with project name and path.

Example: >>> get_project() {"name": "my_design", "path": "/path/to/my_design.pro"}

create_netC

Create a new net on the board.

create_trackC

Create a track segment on the board.

create_viaC

Create a via on the board.

create_textC

Create a text element on the board.

create_circleC

Create a circle on the board.

create_rectangleC

Create a rectangle on the board.

create_arcC

Create an arc on the board.

create_lineC

Create a line segment on the board.

move_itemC

Move an item to a new position.

rotate_itemC

Rotate an item.

delete_itemC

Delete an item from the board.

create_zoneC

Create a copper zone on the board.

save_boardC

Save the board to a file.

move_footprintC

Move a footprint to a new position by reference.

rotate_footprintC

Rotate a footprint by reference.

create_footprintD

Place a footprint on the board.

add_to_selectionC

Add an item to the selection.

clear_selectionA

Clear the current selection.

get_selectionA

Get the current selection.

set_active_layerC

Set the active layer.

refill_zonesB

Refill all zones on the board.

get_item_by_idC

Get item details by ID.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
board_resourceGet current board state as a resource.
layers_resourceGet board layers as a resource.
nets_resourceGet board nets as a resource.

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/daedalus/mcp-kicad'

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