KiCad MCP サーバー
このガイドは、KiCad用のモデルコンテキストプロトコル(MCP)サーバーの設定方法を説明します。このガイドの例ではClaude Desktopをよく使用しますが、サーバーはMCP準拠のクライアントであればどれでも使用できます。Claude Desktop、カスタムMCPクライアント、あるいはモデルコンテキストプロトコルを実装した他のアプリケーションでも使用できます。
目次
Related MCP server: EDA Tools MCP Server
前提条件
macOS、Windows、またはLinux
Python 3.10以上
KiCad 9.0以上
Claude Desktop(または他のMCPクライアント)
インストール手順
1. Python環境をセットアップする
まず、依存関係をインストールして環境を設定しましょう。
# 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.txt2. 環境を設定する
サーバーが KiCad プロジェクトを検索する場所をカスタマイズするには、 .envファイルを作成します。
# Copy the example environment file
cp .env.example .env
# Edit the .env file
vim .env.envファイルに、カスタム プロジェクト ディレクトリを追加します。
# Add paths to your KiCad projects (comma-separated)
KICAD_SEARCH_PATHS=~/pcb,~/Electronics,~/Projects/KiCad3. サーバーを実行する
環境が設定されたら、サーバーを実行できます。
python main.py4. MCPクライアントを構成する
次に、Claude Desktop が MCP サーバーを使用するように設定しましょう。
Claude Desktop 構成ファイルを作成または編集します。
# 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.jsonKiCad MCP サーバーを構成に追加します。
{
"mcpServers": {
"kicad": {
"command": "/ABSOLUTE/PATH/TO/YOUR/PROJECT/kicad-mcp/venv/bin/python",
"args": [
"/ABSOLUTE/PATH/TO/YOUR/PROJECT/kicad-mcp/main.py"
]
}
}
}/ABSOLUTE/PATH/TO/YOUR/PROJECT/kicad-mcpプロジェクト ディレクトリへの実際のパスに置き換えます。
5. MCPクライアントを再起動します
新しい構成をロードするには、MCP クライアントを閉じて再度開きます。
MCPコンポーネントの理解
モデル コンテキスト プロトコル (MCP) は、機能を提供するための 3 つの主な方法を定義します。
リソース vs ツール vs プロンプト
リソースは、LLM が参照できる読み取り専用のデータ ソースです。
REST APIのGETエンドポイントに似ている
大きな計算を実行せずにデータを提供する
LLMが情報を読み取る必要があるときに使用される
通常、クライアントアプリケーションによってプログラム的にアクセスされます
例:
kicad://projectsすべての KiCad プロジェクトのリストを返します
ツールはアクションや計算を実行する機能です。
REST APIのPOST/PUTエンドポイントに似ています
副作用が発生する可能性がある(アプリケーションの起動やファイルの生成など)
LLMが世界でアクションを実行する必要があるときに使用されます
通常、LLM によって直接呼び出されます (ユーザーの承認が必要)
例:
open_project()特定のプロジェクトで KiCad を起動します
プロンプトは、一般的なやり取りのための再利用可能なテンプレートです。
事前に定義された会話のきっかけや指示
ユーザーがよくある質問やタスクを明確に表現できるように支援する
ユーザーの選択によって呼び出される(通常はメニューから)
例:
debug_pcb_issuesプロンプトは、ユーザーが PCB の問題をトラブルシューティングするのに役立ちます。
リソース、ツール、プロンプトの詳細については、 MCP ドキュメントをお読みください。
特集のハイライト
KiCad MCP サーバーはいくつかの重要な機能を提供しており、それぞれに詳細なドキュメントが付属しています。
プロジェクト管理: KiCad プロジェクトの一覧表示、調査、および開く
例: 「最近の KiCad プロジェクトをすべて表示」 → 変更日順にすべてのプロジェクトを一覧表示します
PCB設計分析:PCB設計と回路図に関する洞察を得る
例: 「温度センサーボードの部品密度を分析する」→部品間隔の分析を提供します
ネットリスト抽出: 回路図からコンポーネントの接続を抽出して分析します
例: 「ArduinoシールドのMCUに接続されているコンポーネントは何ですか?」→マイクロコントローラへのすべての接続を表示します
BOM管理:部品表の分析とエクスポート
例: 「スマートウォッチプロジェクトの部品表を生成する」 → 詳細な部品表を作成します
設計ルールチェック: KiCad CLI を使用して DRC チェックを実行し、時間の経過に伴う進捗状況を追跡します。
例: 「電源ボードでDRCを実行し、先週と比較する」→違反の修正の進捗状況を表示します
PCB の視覚化: PCB レイアウトの視覚的な表現を生成します
例: 「オーディオアンプのPCBのサムネイルを表示」→ボードのビジュアルレンダリングを表示します
回路パターン認識: 回路図内の一般的な回路パターンを自動的に識別します
例: 「IoTデバイスではどのような電源トポロジを使用していますか?」→降圧、昇圧、またはリニアレギュレータを識別します
各機能の詳細な例と詳細については、ドキュメント内の専用ガイドをご覧ください。LLMにアクセスできるツールについて問い合わせることもできます。
自然言語インタラクション
私たちのドキュメントでは次のような例がよく示されています:
Show me the DRC report for /Users/username/Documents/KiCad/my_project/my_project.kicad_proファイルのフルパスを入力する必要はありません。LLM はより自然な言語リクエストを理解できます。
たとえば、上記の正式なコマンドの代わりに、次のように単純に尋ねることができます。
Can you check if there are any design rule violations in my Arduino shield project?または:
I'm working on the temperature sensor circuit. Can you identify what patterns it uses?LLMはあなたの意図を理解し、KiCad MCPサーバーに関連情報を要求します。どのプロジェクトを参照しているのか明確にする必要がある場合は、その旨を尋ねます。
ドキュメント
各機能の詳細なドキュメントは、 docs/ディレクトリにあります。
構成
KiCad MCP サーバーは、環境変数または.envファイルを使用して構成できます。
主要な設定オプション
環境変数 | 説明 | 例 |
| KiCad プロジェクトを検索するディレクトリのコンマ区切りリスト |
|
| デフォルトのKiCadユーザーディレクトリを上書きする |
|
| デフォルトの KiCad アプリケーション パスを上書きする |
|
詳細については、構成ガイドを参照してください。
開発ガイド
プロジェクト構造
KiCad MCP サーバーはモジュール構造で構成されています。
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新機能の追加
KiCad MCP サーバーに新しい機能を追加するには、次の手順に従います。
機能のカテゴリ(リソース、ツール、プロンプト)を特定します
適切なモジュールに実装を追加する
対応するレジスタ関数に機能を登録します
開発ツールで変更をテストする
詳細については開発ガイドを参照してください。
トラブルシューティング
問題が発生した場合:
MCP クライアントにサーバーが表示されない:
クライアントの設定ファイルにエラーがないか確認してください
プロジェクトとPythonインタープリターへのパスが正しいことを確認してください
Pythonが
mcpパッケージにアクセスできることを確認するKiCadのインストールが検出されているかどうかを確認する
サーバー エラー:
開発モードでサーバーを実行しているときにターミナル出力を確認する
Claude のログは次の場所で確認してください:
~/Library/Logs/Claude/mcp-server-kicad.log(サーバー固有のログ)~/Library/Logs/Claude/mcp.log(一般的な MCP ログ)
作業ディレクトリの問題:
クライアント設定で起動されたサーバーの作業ディレクトリが未定義である可能性があります
設定ファイルと.envファイルでは常に絶対パスを使用してください
コマンドライン経由でサーバーをテストする場合、作業ディレクトリはコマンドを実行する場所になります。
詳細については、トラブルシューティング ガイドを参照してください。
それでもトラブルシューティングできない場合は、Github で問題を開いてください。
貢献
KiCad MCP サーバーに貢献したいですか? このプロジェクトの改善にご協力いただける方法は次のとおりです:
リポジトリをフォークする
機能ブランチを作成する
変更を追加する
プルリクエストを送信する
貢献できる主な分野:
回路パターン認識システムにさらに多くのコンポーネントパターンのサポートを追加
ドキュメントと例の改善
新しい機能の追加や既存の機能の強化
バグの修正とエラー処理の改善
詳細な貢献ガイドラインについては、 CONTRIBUTING.md を参照してください。
将来の開発アイデア
貢献に興味がありますか?今後の開発のためのアイデアをいくつかご紹介します。
3Dモデルの視覚化- PCBの3Dモデルを視覚化するツールを実装する
PCBレビューツール- 設計レビュー用の注釈機能を作成する
製造ファイルの生成- ガーバーファイルやその他の製造出力の生成のサポートを追加します。
コンポーネント検索- KiCadライブラリ全体のコンポーネントの検索機能を実装します
BOM の強化- コンポーネントの調達と価格設定のためのサプライヤー統合の追加
インタラクティブなデザインチェック- 設計品質をチェックするためのインタラクティブなツールを開発する
Web UI - 設定と監視のためのシンプルなWebインターフェースを作成する
回路解析- 自動回路解析機能を追加
テストカバレッジ- コードベース全体のテストカバレッジを向上させる
回路パターン認識- より多くのコンポーネントタイプと回路トポロジーでパターンデータベースを拡張します
ライセンス
このプロジェクトは MIT ライセンスに基づくオープンソースです。