Skip to main content
Glama
daedalus
by daedalus

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