KiCad MCP Server

Integrations

  • Integrates with .env files for configuration, allowing users to customize KiCad project search paths and other server settings through environment variables.

  • Provides tools for KiCad PCB design projects including listing projects, viewing project details, running Design Rule Checks (DRC), generating PCB thumbnails, and launching KiCad applications with specific projects.

KiCad MCP Server

Diese Anleitung hilft Ihnen bei der Einrichtung eines Model Context Protocol (MCP)-Servers für KiCad. Die Beispiele in dieser Anleitung beziehen sich zwar oft auf Claude Desktop, der Server ist jedoch mit jedem MCP-kompatiblen Client kompatibel. Sie können ihn mit Claude Desktop, Ihren eigenen MCP-Clients oder jeder anderen Anwendung verwenden, die das Model Context Protocol implementiert.

Inhaltsverzeichnis

Voraussetzungen

  • macOS, Windows oder Linux
  • Python 3.10 oder höher
  • KiCad 9.0 oder höher
  • Claude Desktop (oder ein anderer MCP-Client)

Installationsschritte

1. Richten Sie Ihre Python-Umgebung ein

Lassen Sie uns zunächst Abhängigkeiten installieren und unsere Umgebung einrichten:

# Clone the repository git clone https://github.com/lamaalrajih/kicad-mcp.git . # Create a virtual environment and activate it python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Install the MCP SDK and other dependencies pip install -r requirements.txt

2. Konfigurieren Sie Ihre Umgebung

Erstellen Sie eine .env Datei, um anzupassen, wo der Server nach Ihren KiCad-Projekten sucht:

# Copy the example environment file cp .env.example .env # Edit the .env file vim .env

Fügen Sie in der .env Datei Ihre benutzerdefinierten Projektverzeichnisse hinzu:

# Add paths to your KiCad projects (comma-separated) KICAD_SEARCH_PATHS=~/pcb,~/Electronics,~/Projects/KiCad

3. Führen Sie den Server aus

Sobald die Umgebung eingerichtet ist, können Sie den Server ausführen:

python main.py

4. Konfigurieren Sie einen MCP-Client

Konfigurieren wir nun Claude Desktop für die Verwendung unseres MCP-Servers:

  1. Erstellen oder bearbeiten Sie die Claude Desktop-Konfigurationsdatei:
# Create the directory if it doesn't exist mkdir -p ~/Library/Application\ Support/Claude # Edit the configuration file vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. Fügen Sie den KiCad MCP-Server zur Konfiguration hinzu:
{ "mcpServers": { "kicad": { "command": "/ABSOLUTE/PATH/TO/YOUR/PROJECT/kicad-mcp/venv/bin/python", "args": [ "/ABSOLUTE/PATH/TO/YOUR/PROJECT/kicad-mcp/main.py" ] } } }

Ersetzen Sie /ABSOLUTE/PATH/TO/YOUR/PROJECT/kicad-mcp durch den tatsächlichen Pfad zu Ihrem Projektverzeichnis.

5. Starten Sie Ihren MCP-Client neu

Schließen Sie Ihren MCP-Client und öffnen Sie ihn erneut, um die neue Konfiguration zu laden.

MCP-Komponenten verstehen

Das Model Context Protocol (MCP) definiert drei primäre Möglichkeiten zur Bereitstellung von Funktionen:

Ressourcen vs. Tools vs. Eingabeaufforderungen

Ressourcen sind schreibgeschützte Datenquellen, auf die LLMs verweisen können:

  • Ähnlich wie GET-Endpunkte in REST-APIs
  • Bereitstellung von Daten ohne Durchführung umfangreicher Berechnungen
  • Wird verwendet, wenn der LLM Informationen lesen muss
  • Der Zugriff erfolgt normalerweise programmgesteuert durch die Clientanwendung.
  • Beispiel: kicad://projects gibt eine Liste aller KiCad-Projekte zurück

Tools sind Funktionen, die Aktionen oder Berechnungen durchführen:

  • Ähnlich wie POST/PUT-Endpunkte in REST-APIs
  • Kann Nebenwirkungen haben (wie das Öffnen von Anwendungen oder das Generieren von Dateien)
  • Wird verwendet, wenn das LLM Aktionen in der Welt ausführen muss
  • Wird normalerweise direkt vom LLM aufgerufen (mit Benutzergenehmigung)
  • Beispiel: open_project() startet KiCad mit einem bestimmten Projekt

Eingabeaufforderungen sind wiederverwendbare Vorlagen für häufige Interaktionen:

  • Vordefinierte Gesprächseinstiege oder Anweisungen
  • Helfen Sie Benutzern, häufig gestellte Fragen oder Aufgaben zu formulieren
  • Wird durch Benutzerauswahl aufgerufen (normalerweise über ein Menü)
  • Beispiel: Die Eingabeaufforderung debug_pcb_issues hilft Benutzern bei der Behebung von PCB-Problemen

Weitere Informationen zu Ressourcen, Tools und Eingabeaufforderungen finden Sie in den MCP-Dokumenten .

Funktionshighlights

Der KiCad MCP Server bietet mehrere wichtige Funktionen, jeweils mit ausführlicher Dokumentation:

  • Projektmanagement : KiCad-Projekte auflisten, prüfen und öffnen
    • Beispiel: "Zeige mir alle meine letzten KiCad-Projekte" → Listet alle Projekte sortiert nach Änderungsdatum auf
  • PCB-Designanalyse : Erhalten Sie Einblicke in Ihre PCB-Designs und Schaltpläne
    • Beispiel: „Analysieren Sie die Komponentendichte meiner Temperatursensorplatine“ → Bietet eine Analyse des Komponentenabstands
  • Netzlistenextraktion : Extrahieren und analysieren Sie Komponentenverbindungen aus Schaltplänen
    • Beispiel: „Welche Komponenten sind mit der MCU in meinem Arduino-Shield verbunden?“ → Zeigt alle Verbindungen zum Mikrocontroller
  • Stücklistenverwaltung : Analysieren und exportieren Sie Stücklisten
    • Beispiel: „Erstelle eine Stückliste für mein Smartwatch-Projekt“ → Erstellt eine detaillierte Stückliste
    • Design Rule Checking : Führen Sie DRC-Prüfungen mit der KiCad CLI durch und verfolgen Sie Ihren Fortschritt im Laufe der Zeit
    • Beispiel: „DRC auf meiner Stromversorgungsplatine ausführen und mit letzter Woche vergleichen“ → Zeigt den Fortschritt bei der Behebung von Verstößen
  • PCB-Visualisierung : Erstellen Sie visuelle Darstellungen Ihrer PCB-Layouts
    • Beispiel: „Zeigen Sie mir eine Miniaturansicht meiner Audioverstärker-Platine“ → Zeigt eine visuelle Darstellung der Platine an
  • Schaltkreismustererkennung : Identifizieren Sie automatisch gängige Schaltkreismuster in Ihren Schaltplänen
    • Beispiel: „Welche Stromversorgungstopologien verwende ich in meinem IoT-Gerät?“ → Identifiziert Buck-, Boost- oder Linearregler

Weitere Beispiele und Details zu den einzelnen Funktionen finden Sie in den entsprechenden Anleitungen in der Dokumentation. Sie können den LLM auch fragen, auf welche Tools er Zugriff hat!

Natürliche Sprachinteraktion

In unserer Dokumentation finden sich häufig Beispiele wie:

Show me the DRC report for /Users/username/Documents/KiCad/my_project/my_project.kicad_pro

Sie müssen nicht den vollständigen Pfad zu Ihren Dateien eingeben! Der LLM kann natürlichere Sprachanfragen verstehen.

Anstelle des obigen formellen Befehls können Sie beispielsweise einfach fragen:

Can you check if there are any design rule violations in my Arduino shield project?

Oder:

I'm working on the temperature sensor circuit. Can you identify what patterns it uses?

Der LLM erkennt Ihre Absicht und fordert die entsprechenden Informationen vom KiCad MCP-Server an. Bei Bedarf wird nachgefragt, auf welches Projekt Sie sich beziehen.

Dokumentation

Eine ausführliche Dokumentation zu jeder Funktion ist im Verzeichnis docs/ verfügbar:

Konfiguration

Der KiCad MCP-Server kann mithilfe von Umgebungsvariablen oder einer .env Datei konfiguriert werden:

Wichtige Konfigurationsoptionen

UmgebungsvariableBeschreibungBeispiel
KICAD_SEARCH_PATHSKomma-getrennte Liste von Verzeichnissen zur Suche nach KiCad-Projekten~/pcb,~/Electronics,~/Projects
KICAD_USER_DIRÜberschreiben Sie das Standard-KiCad-Benutzerverzeichnis~/Documents/KiCadProjects
KICAD_APP_PATHÜberschreiben Sie den Standard-Anwendungspfad von KiCad/Applications/KiCad7/KiCad.app

Weitere Einzelheiten finden Sie im Konfigurationshandbuch .

Entwicklungshandbuch

Projektstruktur

Der KiCad MCP Server ist modular aufgebaut:

kicad-mcp/ ├── README.md # Project documentation ├── main.py # Entry point that runs the server ├── requirements.txt # Python dependencies ├── .env.example # Example environment configuration ├── kicad_mcp/ # Main package directory │ ├── __init__.py │ ├── server.py # MCP server setup │ ├── config.py # Configuration constants and settings │ ├── context.py # Lifespan management and shared context │ ├── resources/ # Resource handlers │ ├── tools/ # Tool handlers │ ├── prompts/ # Prompt templates │ └── utils/ # Utility functions ├── docs/ # Documentation └── tests/ # Unit tests

Neue Funktionen hinzufügen

Um dem KiCad MCP-Server neue Funktionen hinzuzufügen, folgen Sie diesen Schritten:

  1. Identifizieren Sie die Kategorie für Ihre Funktion (Ressource, Tool oder Eingabeaufforderung).
  2. Fügen Sie Ihre Implementierung zum entsprechenden Modul hinzu
  3. Registrieren Sie Ihr Feature in der entsprechenden Registrierungsfunktion
  4. Testen Sie Ihre Änderungen mit den Entwicklungstools

Weitere Einzelheiten finden Sie im Entwicklungshandbuch .

Fehlerbehebung

Wenn Probleme auftreten:

  1. Server wird nicht im MCP-Client angezeigt:
    • Überprüfen Sie die Konfigurationsdatei Ihres Clients auf Fehler
    • Stellen Sie sicher, dass der Pfad zu Ihrem Projekt und Python-Interpreter korrekt ist
    • Stellen Sie sicher, dass Python auf das mcp -Paket zugreifen kann
    • Überprüfen Sie, ob Ihre KiCad-Installation erkannt wird
  2. Serverfehler:
    • Überprüfen Sie die Terminalausgabe, wenn Sie den Server im Entwicklungsmodus ausführen
    • Überprüfen Sie Claudes Protokolle unter:
      • ~/Library/Logs/Claude/mcp-server-kicad.log (serverspezifische Protokolle)
      • ~/Library/Logs/Claude/mcp.log (allgemeine MCP-Protokolle)
  3. Probleme mit dem Arbeitsverzeichnis:
    • Das Arbeitsverzeichnis für Server, die über Clientkonfigurationen gestartet werden, ist möglicherweise nicht definiert
    • Verwenden Sie in Ihren Konfigurations- und .env-Dateien immer absolute Pfade
    • Beim Testen von Servern über die Befehlszeile ist das Arbeitsverzeichnis der Ort, an dem Sie den Befehl ausführen

Weitere Einzelheiten finden Sie im Handbuch zur Fehlerbehebung .

Wenn Sie das Problem immer noch nicht beheben können, öffnen Sie bitte ein Github-Problem.

Beitragen

Möchten Sie zum KiCad MCP-Server beitragen? So können Sie dieses Projekt verbessern:

  1. Forken Sie das Repository
  2. Erstellen eines Feature-Zweigs
  3. Fügen Sie Ihre Änderungen hinzu
  4. Senden einer Pull-Anfrage

Wichtige Bereiche für Beiträge:

  • Hinzufügen von Unterstützung für weitere Komponentenmuster im Circuit Pattern Recognition-System
  • Verbesserung der Dokumentation und Beispiele
  • Hinzufügen neuer Funktionen oder Verbessern vorhandener Funktionen
  • Beheben von Fehlern und Verbessern der Fehlerbehandlung

Ausführliche Richtlinien für Beiträge finden Sie unter CONTRIBUTING.md .

Ideen für die zukünftige Entwicklung

Möchten Sie mitwirken? Hier sind einige Ideen für die zukünftige Entwicklung:

  1. 3D-Modellvisualisierung – Implementieren Sie Tools zur Visualisierung von 3D-Modellen von Leiterplatten
  2. PCB-Review-Tools – Erstellen Sie Anmerkungsfunktionen für Design-Reviews
  3. Generierung von Fertigungsdateien – Unterstützung für die Generierung von Gerber-Dateien und anderen Fertigungsausgaben hinzufügen
  4. Komponentensuche – Implementieren Sie eine Suchfunktion für Komponenten in allen KiCad-Bibliotheken
  5. Stücklistenerweiterung – Lieferantenintegration für die Beschaffung und Preisgestaltung von Komponenten hinzufügen
  6. Interaktive Designprüfungen – Entwickeln Sie interaktive Tools zur Überprüfung der Designqualität
  7. Web-UI – Erstellen Sie eine einfache Weboberfläche für Konfiguration und Überwachung
  8. Schaltungsanalyse – Fügen Sie Funktionen zur automatisierten Schaltungsanalyse hinzu
  9. Testabdeckung – Verbessern Sie die Testabdeckung über die gesamte Codebasis
  10. Schaltungsmustererkennung – Erweitern Sie die Musterdatenbank um weitere Komponententypen und Schaltungstopologien

Lizenz

Dieses Projekt ist Open Source unter der MIT-Lizenz.

-
security - not tested
F
license - not found
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Ein Model Context Protocol-Server, der die Interaktion mit elektronischen Designprojekten von KiCad ermöglicht und es Benutzern erlaubt, Projekte aufzulisten, PCB-Designs zu analysieren, Designregelprüfungen auszuführen und PCB-Layouts in natürlicher Sprache zu visualisieren.

  1. Inhaltsverzeichnis
    1. Voraussetzungen
      1. Installationsschritte
        1. 1. Richten Sie Ihre Python-Umgebung ein
        2. 2. Konfigurieren Sie Ihre Umgebung
        3. 3. Führen Sie den Server aus
        4. 4. Konfigurieren Sie einen MCP-Client
        5. 5. Starten Sie Ihren MCP-Client neu
      2. MCP-Komponenten verstehen
        1. Ressourcen vs. Tools vs. Eingabeaufforderungen
      3. Funktionshighlights
        1. Natürliche Sprachinteraktion
          1. Dokumentation
            1. Konfiguration
              1. Wichtige Konfigurationsoptionen
            2. Entwicklungshandbuch
              1. Projektstruktur
              2. Neue Funktionen hinzufügen
            3. Fehlerbehebung
              1. Beitragen
                1. Ideen für die zukünftige Entwicklung
                  1. Lizenz

                    Related MCP Servers

                    • -
                      security
                      F
                      license
                      -
                      quality
                      A Model Context Protocol server that enables interaction with Shortcut (formerly Clubhouse) project management tool, allowing users to view and search projects, stories, epics, and objectives, as well as create new items through natural language.
                      Last updated -
                      3
                      Python
                      • Apple
                    • -
                      security
                      -
                      license
                      -
                      quality
                      A specialized server that helps users create new Model Context Protocol (MCP) servers by providing tools and templates for scaffolding projects with various capabilities.
                      Last updated -
                      1
                      TypeScript
                    • -
                      security
                      A
                      license
                      -
                      quality
                      A Model Context Protocol server that enables users to create, check status, and get details of projects on Loveable.dev, a platform for quickly creating applications.
                      Last updated -
                      JavaScript
                      ISC License
                      • Apple
                    • -
                      security
                      A
                      license
                      -
                      quality
                      A Model Context Protocol server that integrates Claude with Blender, enabling users to analyze and interact with IFC (Industry Foundation Classes) building models through natural language commands.
                      Last updated -
                      5
                      Python
                      MIT License
                      • Apple

                    View all related MCP servers

                    ID: dzekh108nf