eda-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| 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.get_session_stateA | Return current session state: open project, available capabilities. Use this to orient yourself before calling other tools. |
| kicad.create_projectA | Create a new KiCad project with .kicad_pro, .kicad_sch, and .kicad_pcb files. Example: create_project(name='my_board', directory='/path/to/dir') |
| kicad.open_projectA | Open an existing KiCad project. Sets session context for all subsequent tools. Example: open_project(path='/path/to/project.kicad_pro') |
| kicad.list_projectsB | List KiCad projects (.kicad_pro files) in a directory. Example: list_projects(directory='/home/user/projects') |
| kicad.save_projectA | [Requires open project] Save all open project files (schematic + PCB). |
| kicad.helpA | Get detailed documentation for a tool or topic. Use when unsure about parameters or workflow. Example: help(topic='workflow') |
| kicad.add_componentA | Add a symbol to the schematic. Use search_symbols first to find the symbol ID. Example: add_component(symbol='Device:R', ref='R1', value='10k', x=100, y=50) |
| kicad.add_power_symbolA | Add a power symbol (VCC, GND, +3V3, etc). Creates global net connection. Example: add_power_symbol(name='+3V3', x=100, y=30) |
| kicad.set_valueB | Set the value property of a component. Example: set_value(ref='R1', value='4.7k') |
| kicad.set_referenceC | Set the reference designator of a component. |
| kicad.set_component_fieldA | Set a custom field on a component (MPN, supplier, tolerance, voltage rating). |
| kicad.delete_componentC | Delete a component from the schematic by reference. |
| kicad.move_componentC | Move a component to a new position. |
| kicad.add_wireB | Add a wire between two points. Coordinates must be exact. Example: add_wire(x1=100, y1=50, x2=150, y2=50) |
| kicad.add_net_labelB | Add a net label at a position. Primary wiring mechanism for named nets. Example: add_net_label(name='SDA', x=120, y=50) |
| kicad.add_global_labelB | Add a global label (connects across hierarchical sheets). |
| kicad.add_no_connectB | Mark an unused pin with a no-connect flag. Required to pass ERC. |
| kicad.annotate_schematicB | Auto-assign reference designators to all unannotated components. |
| kicad.list_componentsA | List all components in the schematic with references, values, and positions. |
| kicad.create_board_outlineA | [Requires open project] Draw the PCB board outline. Every PCB must have this. Example: create_board_outline(width=50, height=30) |
| kicad.set_design_rulesB | [Requires open project] Set global design rules: min trace width, clearance, drill size. |
| kicad.create_net_classA | [Requires open project] Create a net class with specific trace width and clearance. Example: create_net_class(name='Power', trace_width=0.5, clearance=0.3) |
| kicad.route_traceA | [Requires open project] Route a trace between two points. Straight segments only. Example: route_trace(x1=100, y1=100, x2=110, y2=100, width=0.25, layer='F.Cu') |
| kicad.place_viaA | [Requires open project] Place a via at a position. Example: place_via(x=105, y=100, drill=0.3, diameter=0.6) |
| kicad.fill_zonesA | [Requires open project] Fill all zones. Must be done before DRC or Gerber export. |
| kicad.add_textA | [Requires open project] Add text to PCB silkscreen or other layer. Example: add_text(text='REV A', x=110, y=105, layer='F.SilkS') |
| kicad.add_lineB | [Requires open project] Add a line or shape to a PCB layer. |
| kicad.design_summaryA | [Requires open project] Board summary: dimensions, component count, net count, via count, min trace/space. Use before export as a sanity check. |
| kicad.list_footprintsA | [Requires open project] List all footprints on the PCB with positions and layers. |
| kicad.export_netlistA | [Requires open project] Export a netlist from the schematic. Use before syncing PCB with schematic. |
| kicad.run_ercA | [Requires open project] Run Electrical Rules Check on the schematic. Finds unconnected pins, missing power, etc. |
| kicad.run_drcA | [Requires open project] Run Design Rules Check on the PCB. Must pass before exporting Gerbers. |
| kicad.export_gerbersA | [Requires open project] Export Gerber manufacturing files. Blocked if DRC has unresolved errors — run kicad.run_drc first. |
| kicad.export_bomB | [Requires open project] Export Bill of Materials from the schematic. |
| kicad.export_pdfA | [Requires open project] Export schematic or PCB to PDF. Example: export_pdf(output_path='/tmp/sch.pdf', target='schematic') |
| kicad.export_svgB | [Requires open project] Export schematic or PCB to SVG. Example: export_svg(output_path='/tmp/sch.svg', target='schematic') |
| kicad.search_symbolsC | Search for symbols (components) in KiCad libraries. Example: search_symbols(query='STM32', limit=10) |
| kicad.search_footprintsC | Search for footprints in KiCad libraries. Example: search_footprints(query='QFP-48', limit=10) |
| kicad.get_symbol_infoB | Get detailed info for a specific symbol: pins, properties, datasheet. Example: get_symbol_info(library='Device', symbol='R') |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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/SaeronLab/eda-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server