How tejasvaradaraj/kicad_mcp_server works
KiCad MCP exposes tools to an LLM for inspecting and lightly editing the PCB currently open in KiCad, then exporting manufacturing and documentation files. The main workflow is client → MCP tool registration/dispatch → KiCad connection → board or project operation; exports snapshot the open board and invoke kicad-cli. Separate capabilities cover connection/document discovery, board data and edits, geometry/common helpers, and project metadata. An optional HTTP path adds Google authorization and a Cloudflare tunnel. Unshown tool internals are represented only where README capabilities support them.
Main entry points: server.py Tool Registry · connection.py IPC Connection · board.py Board Inspection & Edits · http_server.py HTTP MCP Server
Components 19
MCP Interface
- stdio Entry
server.py - Tool Registry
kicad_mcp/server.py
KiCad Integration
- Connection & Documents
kicad_mcp/tools/kicad_core.py - IPC Connection
kicad_mcp/connection.py - Document Helpers
kicad_mcp/helpers/documents.py
Board Tools
- Board Inspection & Edits
kicad_mcp/tools/board.py - Board Types
kicad_mcp/tools/board_types.py - Geometry Tools
kicad_mcp/tools/geometry_utils.py - Units & Layers
kicad_mcp/tools/common_types.py - Layer Helpers
kicad_mcp/helpers/layers.py - Export Helper
kicad_mcp/helpers/cli.py
Project Tools
- Project Metadata
kicad_mcp/tools/project.py
Remote Access
- HTTP MCP Server
remote/http_server.py - Google OAuth Provider
remote/google_oauth.py
Other components
- LLM Client
- KiCad GUI
- kicad-cli
- Google Login
- Cloudflare Tunnel
Connections 26
- LLM Client → stdio Entry: starts locally
- stdio Entry → Tool Registry: runs
- LLM Client → HTTP MCP Server: calls remotely
- HTTP MCP Server → Tool Registry: creates
- Tool Registry → Connection & Documents: registers tools
- Tool Registry → Board Inspection & Edits: registers tools
- Tool Registry → Board Types: registers tools
- Tool Registry → Geometry Tools: registers tools
- Tool Registry → Units & Layers: registers tools
- Tool Registry → Project Metadata: registers tools
- Connection & Documents → IPC Connection: gets client
- Connection & Documents → Document Helpers: formats documents
- Board Inspection & Edits → IPC Connection: gets board
- Board Inspection & Edits → Layer Helpers: uses layer IDs
- Board Types → IPC Connection: uses KiCad
- Geometry Tools → IPC Connection: uses KiCad
- Units & Layers → IPC Connection: uses KiCad
- Project Metadata → IPC Connection: gets project
- Project Metadata → Document Helpers: uses document types
- IPC Connection → KiCad GUI: connects via IPC
- Board Inspection & Edits → Export Helper: requests exports
- Export Helper → IPC Connection: reads board snapshot
- Export Helper → kicad-cli: runs exports
- HTTP MCP Server → Google OAuth Provider: handles callback
- Google OAuth Provider → Google Login: exchanges login
- HTTP MCP Server → Cloudflare Tunnel: starts tunnel