使用 Claude Code 與 Altium MCP:從環境設定到 PCB 設計
7 分鐘
- 前言
- 什麼是 Altium MCP 伺服器?
- 如何設定 Altium MCP 伺服器並連接 Claude Code
- Altium MCP 測試專案:CH32V005 元件測試器
- 步驟 1:為 Altium MCP 專案選擇元件
- 步驟 2:透過 MCP 繪製 Altium 原理圖
- 步驟 3:透過 Altium MCP 擺放元件
- 步驟 4:透過 Altium MCP 自動佈線
- 步驟 5:Altium MCP 輸出檔案與設計文件
- Altium MCP 的準確度:哪些環節仍需要人工審查
- Altium MCP Token 使用量:各工作階段的模型與工具呼叫統計
- 結論
- Altium MCP 常見問題

前言
Claude Code 能否直接在 Altium Designer 中協助設計 PCB?透過 Altium MCP 伺服器,它可以存取正在開啟的專案、建立及修改設計元素,並透過工具呼叫執行任務。但它實際上能處理 PCB 設計流程中的多少工作?
為了找出答案,我使用了eda-agent,一個由第三方開發的開源 MCP 伺服器,將我的 CH32V005 元件測試器重新製作成雙層 PCB。專案涵蓋元件選型、原理圖繪製、封裝擺放、佈線及設計檢查等完整流程。本文將實際示範整個工作流程,包括 Claude Code 能夠自動化處理的工作,以及仍須由我掌控的工程決策。
本指南將介紹:
- Altium MCP 伺服器的用途,以及 eda-agent 的運作方式
- 如何將 eda-agent 連接至 Claude Code,並確認設定是否正確
- 如何從元件選型開始,完成一塊已佈線的雙層 PCB
- Claude Code 在哪些環節需要修正及人工介入
- 整個工作流程消耗多少 Token,以及實際應用上的限制

圖:透過 Altium MCP 伺服器在 Altium Designer 中完成佈線的 CH32V005 元件測試器,採用 60 x 45 mm 雙層板。
注意事項
eda-agent 是第三方開源專案,JLCPCB 與 Altium 均未參與其開發,也未對其提供認可或支援;本文僅供教育及學習用途。
安裝任何程式碼儲存庫之前,請先檢查其程式碼、資料分享方式,以及它可能修改的內容。作者、JLCPCB 與 Altium 均不對設計、檔案或電腦因此受到的任何損害,或透過伺服器分享的資訊承擔責任。
什麼是 Altium MCP 伺服器?
Altium MCP 伺服器是一個橋接工具,可將 Altium Designer 的腳本功能轉換為 AI 用戶端能夠呼叫的工具。Claude Code 發出操作請求後,伺服器便會在目前開啟的設計中執行該操作,再由 Altium 將結果以資料形式回傳。
MCP(Model Context Protocol,模型上下文協定)是 Claude Code 用來與這些伺服器通訊的開放標準。Altium Designer 本身不會執行 AI 模型;負責決定呼叫哪些工具的是 Claude Code 背後的模型。

圖:Altium MCP 的資料路徑:從 Claude Code 經過 eda-agent 伺服器及其工作區檔案,再傳送至 Altium Designer 內部的 DelphiScript 迴圈。
在本次大部分建置過程中,我使用 Claude Opus 5.5。eda-agent 會將 Claude Code 的每次工具呼叫寫入請求檔案,再由 Altium 內部的 DelphiScript 迴圈執行並寫入回覆。
本次建置使用的 Altium MCP 伺服器
我使用了eda-agent 0.8.1 版,由 George Saliba(salitronic)開發,採用 Apache-2.0 授權。它會直接修改正在執行的 Altium 工作階段,而不是處理匯出的檔案,並透過同一個伺服器支援元件庫、原理圖及 PCB。作者將其標示為實驗性工具,並提醒部分工具可能導致 Altium 的 DelphiScript 引擎當機,因此應在已備份的專案中使用。KiCad 也能採用類似方式,詳情可參閱這篇KiCad MCP 指南。
Altium MCP 功能:工具群組與安全開關
eda-agent 註冊了數百個工具,並依照其操作的文件類型分組。在最精簡的工具組合中,Claude Code 會看到兩個中介工具:用於搜尋的 tool_catalog,以及用於執行的 tool_invoke;其他工具則透過這兩個中介工具呼叫。
| 工具前綴 | 操作對象 | 本次建置用途 |
|---|---|---|
| lib_ | .SchLib 與 .PcbLib 元件庫 | 符號、封裝及封裝連結 |
| sch_ | 目前開啟的 .SchDoc | 根據範本繪製原理圖頁面 |
| pcb_ | 目前開啟的 .PcbDoc | 元件擺放及佈線 |
| obj_ | 原理圖或 PCB 物件 | 導通孔蓋油、修改及刪除 |
| proj_ | 專案 | 編譯、網路及 ERC 檢查 |
| app_ | Altium 軟體本身 | 儲存及切換文件 |
伺服器透過以下四項安全措施限制可執行的操作:
- EDA_AGENT_READONLY=1:拒絕所有非讀取操作。我一開始便使用此模式。
- EDA_AGENT_UI_AUTOMATION=0:拒絕模擬鍵盤及滑鼠輸入,因此伺服器無法代替使用者點擊 Altium 對話方塊。
- 腳本封鎖:即使處於寫入模式,伺服器仍會拒絕執行 Altium 的腳本程序。
- EDA_AGENT_UPDATE_CHECK=0:停止每日更新檢查連線至網路。
如何設定 Altium MCP 伺服器並連接 Claude Code
設定流程分為四個部分:在 Python 環境中安裝 eda-agent、於 Altium 載入專案腳本、啟動輪詢迴圈,並在 Claude Code 中註冊伺服器。建議先使用唯讀模式,真正需要修改時才開啟寫入權限。
簡單的做法:將程式碼儲存庫連結或以下指令的截圖提供給 Claude,並要求它為你的使用者帳戶安裝程式及設定環境。
1. 安裝 eda-agent在 Python 3.11 或更新版本的虛擬環境中安裝,然後複製其 Altium 腳本:
|
|---|
2. 在 Altium 中註冊腳本專案(只需設定一次):依序開啟 Preferences > Scripting System > Global Projects > Install from file,然後選取 Altium_API.PrjScr。

圖:Altium Preferences 中的 Global Projects 區域,顯示已加入的 eda-agent Altium_API.PrjScr 腳本專案。
3. 啟動輪詢迴圈:選擇 File > Run Script,展開 Altium_API 及 Dispatcher.pas,選取 StartMCPServer,然後按一下 OK。

圖:Altium Designer 的 Run Script 對話方塊中已選取 StartMCPServer,以啟動 Altium MCP 輪詢迴圈。
4. 以唯讀模式在 Claude Code 中註冊伺服器。請自行執行以下指令,因為在我的設定中,Claude Code 不允許自行修改 MCP 設定:
|
|---|
5. 重新啟動 Claude Code。Altium 工具只會在新的工作階段中載入。
6. 準備好後啟用寫入權限:執行 claude mcp remove altium --scope user,然後重新執行新增伺服器的指令,並將 EDA_AGENT_READONLY 設為 0,最後再次重新啟動 Claude Code。
--headless 參數會略過 eda-agent 網頁儀表板,但 Altium 中的狀態視窗仍會正常運作。
Altium MCP 測試專案:CH32V005 元件測試器
這塊測試板是一台元件測試器,可辨識及量測常見電子元件。只要將元件連接至三個測試探針,韌體便會進行識別及量測,支援的元件包括電晶體、MOSFET、二極體、閘流體、電阻、電容及電感。
目前已有許多電晶體測試器設計,其中不少以同一個開源 AVR 專案為基礎。我已經為 WCH CH32V 晶片編寫了自己的 RISC-V 韌體,因此接下來的工作就是設計 PCB。我的版本將原本的 AVR 設計延伸至 CH32V MCU。
本專案參考了以下資源:
- AVR Transistortester:由 Markus Frejek 設計、後續由 Karl-Heinz Kübbeler 延續開發,詳見 mikrocontroller.net 的 AVR Transistortester 頁面。
- 原始碼與使用手冊:詳見 transistortester 程式碼儲存庫,其中包含韌體、硬體檔案及相關文件。
- ArduTester V1.13:plouc68000 移植至 Arduino Uno 的版本,刊載於 Arduino Project Hub。
我的韌體是為 RISC-V 重新實作這些量測方法,而不是直接翻譯 AVR 程式碼。編譯後使用 19,448 bytes Flash 及 732 bytes RAM,目前尚未進行實驗台實測。
步驟 1:為 Altium MCP 專案選擇元件
我先要求 Claude Code 從 MCU 開始選擇元件。它根據 JLCPCB 即時庫存檢查了六款候選晶片,最後推薦 CH32V005F6P6,因為該晶片有現貨,而且引腳配置與原本的晶片相同。
Claude Code 為何選擇 CH32V005F6P6 MCU
| MCU | JLCPCB 於 2026-11-03 的庫存 | 所需的電路板修改 |
|---|---|---|
| CH32V006F8P6(原始選型) | 0 | 無,但當時無法購買 |
| CH32V005F6P6(C54824605) | 195 | 無,TSSOP-20 封裝的引腳配置完全相同 |
| CH32V007 | 0 | 需要更換封裝 |
| CH32V003F4P6 | 25,148 | 無,但 16 KB Flash 無法容納 19,448 bytes 的韌體 |
| PY32F030F18P6 | 379 | 需要重新配置引腳並移植韌體 |
| ATmega328P-AU | 35,775 | 需要全面重新設計 |
CH32V005F6P6 為測試器帶來的功能:
- 核心與記憶體:採用最高 48 MHz 的 32 位元 QingKe RISC-V2C 核心,配備 32 KB Flash 及 6 KB SRAM。
- 5 V 工作電壓:額定工作電壓為 2.0 至 5.5 V;啟用 ADC 時為 2.4 至 5.5 V,因此能像原本的 AVR 設計一樣以 5 V 運作。
- ADC:具備 12 位元解析度,在 4.5 至 5.5 V 供電時,取樣速度可超過 1 Msps。
- 比較器計時:PD4 上的運算放大器輸出同時也是 TIM2_CH1 擷取輸入,因此可以沿用 AVR 測試器的比較器計時方法。
Claude 根據庫存資料及 WCH 資料表提出更換建議,並由我確認採用。
測試器 BOM 中的其他元件
電路板的其他部分則沿用已驗證的測試器元件數值,並由 Claude 逐一核對 JLCPCB 庫存。
| 位號 | 製造商料號 | JLCPCB 料號 | 用途 |
|---|---|---|---|
| U2 | MCP1702-5002E/MB, SOT-89 | C18299 | 將 9 V 降至 5 V 的 LDO,典型靜態電流為 2 µA |
| D4 | SS14 肖特基二極體,SMA 封裝 | C2480 | 電池反接保護 |
| J4 | SHOU HAN 6-pin USB-C 連接器 | C456012 | 僅供電的 USB 輸入 |
| F1 | SMD0603P025TF | C20786 | USB 端使用的 250 mA PTC 保險絲 |
| R1 至 R6 | 680 Ω 與 470 kΩ、1% 精度、0603 封裝 | C23228, C23178 | 探針電阻 |
| C3, C6 | 10 µF 25 V, 0603 | C96446 | 大容量電容 |
| SW1, SW2 | HRO K2-1102DP-C4SW-04 | C110153 | 6 x 6 mm 直插式輕觸開關 |
Claude 也根據製造商圖面檢查了 USB-C 封裝,發現舊封裝的焊盤較長,且向後偏移了 0.25 mm。每個可採購元件都有 JLCPCB 料號及製造商料號(MPN),可在 JLCPCB 元件庫。
步驟 2:透過 MCP 繪製 Altium 原理圖
Claude Code 透過 MCP 繪製了 16 個元件符號及原理圖頁面,接著將 Altium 編譯後的網表,與已驗證 EasyEDA 設計中的引腳對網路規格進行比較。第一次檢查便成功匹配全部 33 個網路及 134 個引腳,ERC 錯誤數為 0。
- 先建立規格:將已驗證的引腳對網路清單加入 build_spec.json,作為每次網表檢查的依據。
- 符號與頁面:每次工具呼叫只建立一個符號;sch_draw_template 則根據範本繪製各個頁面,如果第一條連線可能造成兩個網路短路,便會在繪製前停止。
- 封裝:根據 KiCad 10 尺寸建立包含 14 個封裝的元件庫,其中包括自訂 USB-C、探針焊盤、測試焊盤及開關封裝。
原理圖第 1 頁:MCU 前端與探針網路
第 1 頁包含 MCU、探針網路及比較器閾值電路,測試器的所有量測都由此開始。

圖:Altium MCP 原理圖第 1 頁:CH32V005F6P6、680 Ω 與 470 kΩ 探針電阻、VTH 分壓器,以及 J3 和 J7 探針連接器。
| MCU 引腳 | 網路 | 功能 |
|---|---|---|
| PA2, PD3, PD2 | TP1, TP2, TP3 | 探針 ADC 輸入;TP1 與 TP2 亦連接至比較器 |
| PD0, PC7, PC5 | RL1 to RL3 | 透過 680 Ω 電阻驅動探針 |
| PC0, PC6, PC3 | RH1 to RH3 | 透過 470 kΩ 電阻驅動探針 |
| PA1 | VTH | 比較器閾值輸入 |
| PD4 | CMP_OUT | 比較器輸出至 TIM2 擷取輸入 |
| PC4 | BTN_VBAT | 電源電壓偵測及 TEST 按鈕 |
| PC1, PC2 | SDA, SCL | OLED I2C 匯流排 |
| PD5, PD6 | DBG_TX, DBG_RX | UART 除錯介面 |
| PD1, PD7 | SWIO, NRST | 程式燒錄及重設 |
- VTH 分壓器:R7(18 kΩ)與 R8(5.1 kΩ)將閾值設定為 0.2208 × VDD,在 5 V 供電時約為 1.10 V。這重現了 AVR 測試器的 1.1 V 對 5 V 比例,因此原有查找表仍然適用。
- 探針連接器:J3 為 3-pin 排針,J7 則由三個裸露 SMD 焊盤組成,兩者採並聯連接,分別供有引腳及表面黏著元件使用。
- 周邊元件:C2 與 C3 用於 VDD 去耦,SW2 用於重設 MCU(C5 不裝件,DNP),TP4 至 TP6 則分別引出 CMP_OUT、VDD 及 GND。
原理圖第 2 頁:電源、USB-C 與介面
第 2 頁包含兩組電源輸入、電源及偵測選擇器,以及各介面排針。

圖:Altium MCP 原理圖第 2 頁:USB-C 輸入、透過 MCP1702 LDO 的 9 V 電池供電路徑、PWR SEL 與 SENSE SEL 跳線,以及各介面排針。
- USB-C 輸入:R13 與 R14(5.1 kΩ)將 CC1 及 CC2 下拉至接地,讓電路板識別為受電端(Power Sink);F1 則提供 USB_5V。
- 9 V 電池供電路徑:J5 連接至 JP4(BAT EN)、D4 及 MCP1702 LDO,產生 BAT_5V。D4 可防止電池反接;移除 JP4 即可完全斷開電池。
- 電源選擇:JP2 的 1–2 腳位可將 VDD 連接至 USB_5V,2–3 腳位則連接至 BAT_5V;不接跳線代表關閉電源。
- 電壓偵測選擇:JP3 將 USB_5V 或 VBAT_PROT 接至電壓偵測分壓器,設定必須與 JP2 一致,但電路板沒有任何機制強制確保兩者相符。
- 電壓偵測與按鈕:R11(18 kΩ)與 R12(10 kΩ)將偵測電壓按 10/28 比例分壓,因此 9 V 電壓在 BTN_VBAT 端約為 3.2 V。SW1 也會將同一節點拉低,因此同一個 ADC 引腳可讀取電源電壓及 TEST 按鈕狀態。
- 介面排針:J1 是 WCH-LinkE 排針,JP1 預設保持開路,避免 WCH-LinkE 直接為 VDD 供電。J6 用於 UART,J2 則連接 OLED 的 I2C 匯流排。
設計審查期間的原理圖修改
| 修訂版本 | 修改內容 | 元件數、網路數 |
|---|---|---|
| C2 | 將滑動開關改為兩個獨立的 1x3 跳線(JP2、JP3),避免跳線帽放錯位置時將 9 V 接至 5 V 電源軌 | 48, 33 |
| C4 | 新增 JP4 電池跳線 | 52, 34 |
| C5 | 移除 I2C 電平轉換器(Q1、Q2、R16、R17) | 48, 32 |
| C6 | 由於 OLED 模組本身已有上拉電阻,因此移除 R9 及 R10;並將三張原理圖頁面合併為兩張 | 46, 32 |
| C8 | OLED 改用 5 V 供電(移除 U3、C8、C9),移除 BAV199 鉗位二極體 D1 至 D3,並將開關改為直插式 | 40, 31 |
步驟 3:透過 Altium MCP 擺放元件
Claude Code 首先透過 MCP 完成初步元件擺放。雖然沒有元件重疊,但飛線(Ratsnest)交錯遍佈整塊電路板,因此我最後改為手動擺放所有元件。
Claude Code 的初始擺放
pcb_place_components 在 75 x 55 mm 的電路板上擺放了 46 個元件,每個元件都帶有原理圖 UniqueId 及焊盤網路,因此 Altium 判定電路板與原理圖同步,沒有彈出 ECO 對話方塊。Claude 建議將板子縮小至 60 x 45 mm。我確認後,再透過 pcb_import_placement 移動元件。

圖:手動調整前,Claude Code 透過 Altium MCP 完成的元件擺放結果。
手動擺放與絲印整理
我將 USB-C 連接器放在板子上邊緣、探針連接器放在下邊緣、OLED 排針放在上方,並將電源跳線安排在電池輸入旁。Claude 在修改前先從電路板讀取我設定的位置,因此沒有覆蓋我的佈局。
- 底層元件:J1、J6 及 JP1 移至底層,之後改用僅適用於底層的 SMD 排針封裝。由於 obj_modify 無法變更封裝,Claude 便逐一刪除元件,再以相同位置、旋轉角度及 UniqueId 重新放置。
- 對齊:將相同類型的元件對齊,例如讓 R3 至 R6 保持等距,並使 J7 與 J3 排成一直線。
- 絲印標籤:新增 28 個網路及功能標籤,例如探針編號、OLED 引腳及跳線位置。

圖:在 60 x 45 mm Altium MCP 電路板上手動擺放測試器元件。
步驟 4:透過 Altium MCP 自動佈線
eda-agent 的 pcb_autoroute 工具會依照電路板設計規則執行伺服器內建的佈線器,而非 Altium 的 Situs 自動佈線器。使用 Altium 預設規則時,佈線完成率為 97.6%;將規則調整至 JLCPCB 雙層板製程能力範圍內後,完成率提升至 100%。
Altium 預設規則與符合 JLCPCB 製程能力的規則比較
| 規則 | Altium 預設值 | 本次使用值 | JLCPCB 雙層板最低要求 |
|---|---|---|---|
| 間距 | 10 mil | 0.20 mm | 0.10 mm |
| 導通孔直徑及孔徑 | 50 and 28 mil | 24 and 12 mil (0.61 and 0.30 mm) | 0.25 and 0.15 mm |
| 防焊橋寬度 | 10 mil | 4 mil (0.10 mm) | 0.10 mm 防焊橋,綠色防焊,1 oz 銅厚 |
| 走線寬度 | 10 mil | 10 mil | 0.10 mm |
所有調整後的數值均符合 JLCPCB 最低製程要求,而間距及導通孔尺寸亦保留了一定餘量。更一般的PCB 佈線規則則涵蓋了本電路板以外的走線寬度及間距設計。
| 結果 | 第 1 次:預設規則 | 第 2 次:調整後規則 |
|---|---|---|
| 完成率 | 97.6% | 100% |
| 未佈線網路 | 2(RL2、RL3) | 0 |
| 10 mil 走線數量 | 269 | 270 |
| 導通孔數量及焊盤內導通孔 | 37 個,其中 7 個位於焊盤內 | 48 個,沒有位於焊盤內的導通孔 |
| 間距違規標記 | 18 項,全部位於 U1 焊盤之間 | 0 |
| 防焊橋違規標記 | 31 | 14 |
| 是否套用至電路板 | 否 | 是 |
第 1 次佈線在 MCU 區域失敗:RL2 與 RL3 無法連接至 U1,而全部 18 項間距違規均發生在 U1 本身的焊盤之間。U1 的引腳間距為 0.65 mm,焊盤間距只有 9.84 mil,低於 10 mil 的預設間距要求。第 2 次結果已套用至電路板,共有 270 條走線及 48 個導通孔,且尚未進行覆銅。
佈線後的 Altium DRC 檢查結果
Altium 設計規則檢查未發現任何銅箔違規
| DRC 規則 | 違規數量 |
|---|---|
| 間距、短路、未佈線網路、走線寬度、孔徑 | 0 |
| 最小防焊橋寬度,4 mil | 0 |
| 絲印至防焊層間距,10 mil | 0 |
| 絲印至絲印間距,10 mil | 0 |

圖:Altium MCP 自動佈線測試器的 Altium DRC 摘要
步驟 5:Altium MCP 輸出檔案與設計文件
這次 MCP 建置產生了 Altium 專案、元件庫、驗證規格及審查報告。目前尚未產生 Gerber、鑽孔、BOM 及 Pick-and-Place 檔案,也尚未下單製作電路板。
| 檔案 | 內容 |
|---|---|
| .PrjPcb 專案及兩張 SchDoc 原理圖頁面 | Altium 專案及原理圖 |
| .PcbDoc | 已完成佈線的 60 x 45 mm 電路板 |
| .SchLib 與 .PcbLib | 16 個符號;14 個封裝,另有 2 個底層 SMD 排針封裝 |
| build_spec.json | 用於網表比對的引腳對網路規格 |
| DRC 報告及自動佈線工作結果 | 設計規則檢查及兩次佈線結果 |
| 原理圖 PDF | 兩張原理圖頁面的列印檔 |
向 JLCPCB 下單前仍需完成的輸出項目
- 待處理項目:1.0 mm 絲印文字、TP4 至 TP6 的處理決策、接地覆銅、電源網路走線寬度、導通孔蓋油與防焊橋,以及三個元件位號的旋轉方向。
- Gerber 與鑽孔檔案:請參考以下指南匯出:如何在 Altium Designer 中產生 Gerber 檔案。
- BOM 與 Pick-and-Place:利用元件上已標示的 JLCPCB 料號匯出這兩份檔案,以便進行PCB 組裝。
- DFM 製造性檢查:將 Gerber 檔案上傳至JLCDFM,並在平台上檢查防焊橋寬度。

圖:Altium Designer 中 CH32V005 測試器的 Output Job 設定,準備產生向 JLCPCB 下單所需的 Gerber、鑽孔、BOM 及 Pick-and-Place 檔案。
Altium MCP 的準確度:哪些環節仍需要人工審查
Altium MCP 的輸出速度很快,但不代表能自行驗證結果。大部分錯誤都是在編譯、ERC 檢查或重新讀取電路板時才被發現,而工程決策仍然需要由人員作出。
本次建置遇到的 Altium MCP 錯誤與工具限制
| 問題 | 修正方式 |
|---|---|
| 批次建立符號時,所有引腳都被放到最後一個符號上 | 每次呼叫只建立一個符號,並檢查引腳數量 |
| Claude 修改頁面產生腳本時,將兩個網路標籤註解掉 | 透過編譯及 ERC 檢查發現,之後已還原標籤 |
| 重新繪製原理圖頁面時,重新產生了四個 UniqueId | 使用新的 ID 重新放置四個電路板元件 |
| 刪除並重新放置元件後,U1 的位置偏移最多達 0.5 mm | 已移回原位;現在每次修改後都會重新讀取位置確認 |
| PCB 查詢讀取了另一塊已開啟的電路板 | 現在每次查詢前都會先將目標電路板設為作用中文件 |
| obj_modify 無法變更封裝或文字旋轉角度 | 已重新放置元件;另有三個旋轉角度仍需手動修正 |
| 佈線工作完成後,pcb_autoroute 呼叫仍持續卡住約 30 分鐘 | 透過工作狀態資訊取回執行結果 |
由工程師作出的設計決策
- 確認採用 CH32V005F6P6,並核准 60 x 45 mm 電路板尺寸
- 以兩個獨立跳線取代滑動開關
- 移除電平轉換器及探針鉗位電路,並改用 5 V 為 OLED 供電
- 手動擺放所有元件、將 J1、J6 及 JP1 移至底層,並逐一確認刪除操作
AI 在 Altium MCP 建置流程中如何節省原型製作時間
AI 能比手動繪製更快產生重複性設計檔案,從而縮短原型製作時間。
- 元件庫與原理圖頁面:最初建立 16 個符號及三張原理圖頁面約花費 17 分鐘,建立包含 14 個封裝的元件庫則約花費 9 分鐘。
- 元件搜尋:Claude 將六款 MCU 與 JLCPCB 即時庫存進行比較,找出一款引腳配置完全相同的替代品。一般網頁搜尋無法在單一步驟中完成這種結合庫存核對的比較。
- 重複檢查:每次修改後都會執行 ERC、網表比對及 DRC 摘要檢查。
不過,在本次建置中,PCB 設計的每個階段仍然需要人工參與。
Altium MCP Token 使用量:各工作階段的模型與工具呼叫統計
整個建置流程分成兩個 Claude Code 工作階段,總共處理約 1.86 億個 Token。由於每次回覆都會重新讀取整段對話,因此約 98% 為快取讀取。第二個工作階段透過 /model 切換模型。
| 項目 | 工作階段 1 | 工作階段 2 | 總計 |
|---|---|---|---|
| 工作內容 | 從原理圖繪製至手動擺放 | 封裝、佈線及 DRC | 完整建置 |
| 模型 | Claude Opus 5.5 | Claude Opus 5.5(49 則回覆)、Claude Sonnet 5.5(45 則回覆) | 混合使用 |
| 助理回覆數 | 365 | 96 | 461 |
| 工具呼叫總數 | 536 | 109 | 645 |
| Altium MCP 工具呼叫數 | 340 | 84 | 424 |
| 輸出 Token | 345,679 | 39,036 | 384,715 |
| 未快取輸入 Token | 800 | 202 | 1,002 |
| 寫入快取的輸入 Token | 2,386,008 | 664,051 | 3,050,059 |
| 從快取讀取的輸入 Token | 165,279,616 | 17,456,267 | 182,735,883 |
| 處理 Token 總數 | 168,012,103 | 18,159,556 | 186,171,659 |
- Token 數量增加的原因:大量直接嵌入對話的工具結果,例如元件擺放資料、網表及包含 207 個項目的 DRC 清單,以及批次建立符號出錯後重新繪製的內容。
- 如何降低用量:將大型結果儲存至檔案,再使用腳本整理摘要;本次 DRC 報告便採用了這種方式。

圖:Altium Designer 中的 EDA Agent 狀態視窗,記錄了 Altium MCP 的請求情況:運作 2 小時 10 分鐘內共收到 440 次請求,並逐一記錄每次請求所需時間。
結論
Altium MCP 伺服器能讓 Claude Code 成為 Altium Designer 中高效率的 CAD 操作助手,但它並不是能獨立完成所有工作的 PCB 設計工程師。可以使用 Claude Code 搜尋並核對元件庫存,透過伺服器建立符號及封裝、輸入原理圖和執行佈線;至於電路決策、元件擺放及最終審查,仍應由工程師負責。
透過這種分工,CH32V005 測試器在兩個工作階段內,便從元件選型進展至完成雙層板佈線。安裝任何第三方 MCP 伺服器前,都應先仔細檢查。
Altium MCP 常見問題
Altium MCP 伺服器可以獨立完成 PCB 設計嗎?
不可以。在本次建置中,Claude Code 負責繪製原理圖、擺放元件及佈線,但電路設計決策、最終元件位置,以及每項刪除操作的核准,仍由工程師負責。
Altium MCP 伺服器會將我的設計資料傳送給 AI 嗎?
會。伺服器讀取的任何資料,例如元件數值、網路名稱及參數,都會進入 Claude Code 對話,並由 AI 服務供應商處理。在開啟機密設計之前,請先確認相關資料處理方式。
Altium MCP 伺服器使用 Altium 自家的自動佈線器嗎?
不會。eda-agent 的 pcb_autoroute 會依照電路板設計規則執行伺服器內建的佈線器,只有在套用工作結果後,才會將走線及導通孔寫入電路板。
這個 MCP 伺服器支援哪個版本的 Altium Designer?
根據 eda-agent README,建議使用 Altium Designer 20 或更新版本,以及 Python 3.11 或更新版本。本次建置使用 Altium Designer 26.11.1.5 及 eda-agent 0.8.1。
透過 Altium MCP 設計的電路板可以直接送廠製造嗎?
不可以。這塊電路板在下單前仍需產生 Gerber、鑽孔、BOM 及 Pick-and-Place 檔案,將絲印文字調整至 1.0 mm,並透過 DFM 檢查確認防焊橋寬度。
持續學習
使用 GPT-6 與 Codex 進行 AI PCB 設計【逐步指南】
Altium MCP 透過模型上下文協定(Model Context Protocol,MCP)伺服器,將 Altium Designer 連接至 AI 助理,讓 AI 直接呼叫 Altium 本身的腳本功能,而不必透過截圖辨識後再點擊操作。我們使用 GPT-6 in Codex 與開源 eda-agent 伺服器,實際設計一塊 230 VAC、10 A 的 BL0942 電能計量板,從資料表一路完成至通過 DRC 檢查的製造檔案。 AI 負責選擇元件、繪製原理圖,以及擺放、佈線和檢查電路板;電路設計決策、元件擺放參考及各項修正,仍由工程師掌控。 本指南將介紹: Altium MCP 與 eda-agent 伺服器的運作方式 如何將 Codex 中的 GPT-6 連接至 Altium,並確認連線 AI 如何選擇元件、繪製原理圖,以及擺放和佈線電路板 AI 匯出了哪些檔案,以及哪些部分仍需要工程師修正 注意事項 這些伺服器均為獨立的第三方開源專案。JLCPCB 與 Altium 並未開發、擁有、審查、認可或支援這些工具,也不對設計、檔案、電腦或共享資訊的遺失或損壞承擔責任。本文僅供教育用途。 安裝前......
使用 Claude Code 與 Altium MCP:從環境設定到 PCB 設計
前言 Claude Code 能否直接在 Altium Designer 中協助設計 PCB?透過 Altium MCP 伺服器,它可以存取正在開啟的專案、建立及修改設計元素,並透過工具呼叫執行任務。但它實際上能處理 PCB 設計流程中的多少工作? 為了找出答案,我使用了eda-agent,一個由第三方開發的開源 MCP 伺服器,將我的 CH32V005 元件測試器重新製作成雙層 PCB。專案涵蓋元件選型、原理圖繪製、封裝擺放、佈線及設計檢查等完整流程。本文將實際示範整個工作流程,包括 Claude Code 能夠自動化處理的工作,以及仍須由我掌控的工程決策。 本指南將介紹: Altium MCP 伺服器的用途,以及 eda-agent 的運作方式 如何將 eda-agent 連接至 Claude Code,並確認設定是否正確 如何從元件選型開始,完成一塊已佈線的雙層 PCB Claude Code 在哪些環節需要修正及人工介入 整個工作流程消耗多少 Token,以及實際應用上的限制 圖:透過 Altium MCP 伺服器在 Altium Designer 中完成佈線的 CH32V005 元件測試......
GPT-6 Astra 在 KiCad 中的 PCB 設計:從簡述到已驗證原生專案
重點摘要 OpenAI 發布的內容:發佈頁面展示 GPT-6 Astra 在 KiCad 中進行 PCB 佈局的 15 秒濃縮片段。 模型完成的工作:它將四行設計簡述轉化為 44 × 34 mm 的雙層 PCB,涵蓋電路、封裝、元件放置、佈線,以及原生雙頁原理圖。 工作重點:元件放置及佈線只是其中一部分。兩個互相連結的原理圖頁面、專案本地元件庫,以及 45 個元件與其封裝之間以 UUID 建立的連結,對保持專案一致性至關重要。 實用發現:KiCad 回報 46 項原理圖一致性問題。這些問題透過修正元件欄位及未連接標記解決,而不是加入規則排除。 零違規的含意:KiCad 10.0.4 在已啟用的規則下回報 0 項 ERC 及 0 項 DRC 違規。另有五個 DRC 類別及四個 ERC 類別被忽略。 GPT-6 Astra 生成的 PCB 初看可能很簡單,但要建立整潔的原生 KiCad 專案,遠不只是產生一塊完成佈線的電路板。原理圖、元件庫、封裝及元件連結都必須保持一致。 在本專案中,GPT-6 Astra 在 KiCad 中建立並檢查 TPA3116D2 立體聲放大器,重點是保持原生專案一致,而不是......
GPT-6 Astra 在 EasyEDA Pro 中設計 PCB:成功之處、失敗環節與經驗總結
重點摘要 測試內容:讓 GPT-6 Astra 存取本機安裝的原生 EasyEDA Pro 3.2.149,並根據四行書面需求,設計一個 TPA3116D2 立體聲擴大機。 產出成果:完成一片 44 × 34 mm、包含 40 個表面黏著元件(SMD)的雙層 PCB,以及內嵌元件庫、可編輯的原生 EasyEDA Pro 專案。 出現問題的環節:第一次完整匯入後,專案正常開啟,外觀看起來也合理,但初次原生驗證仍回報了涉及 120 個 PCB 焊墊的 50 項關聯不符。 修正方式:為每個匯入的封裝指定唯一名稱與識別碼後,全部 50 項訊息均已清除。問題源於 EasyEDA Pro 在匯入時,將元件庫名稱相同、但原本應保持獨立的封裝,視為同一個封裝。 尚未證實的事項:電路板僅通過軟體檢查,尚未製造、組裝或量測,因此不能據此對輸出功率、熱性能或電磁相容性(EMC)提出結論。 多數關於 GPT-6 Astra PCB 設計能力的討論,都集中在一項使用 KiCad 的示範。相同工作流程能否在另一款電子設計自動化(EDA)工具中重現,此前尚未有公開示範。 本次測試於 2026 年 9 月 10~11 日進行,使......
AI PCB 設計:透過 EasyEDA Pro 將提示詞轉化為 PCB
重點摘要 AI PCB 設計:透過 AI 代理,在實際的電子設計自動化(EDA)編輯器中,自動完成原理圖建立、元件選型、佈局與驗證,而不只是生成圖片。 工作流程:透過 EasyEDA API 閘道器、開源 API 技能套件與本機橋接伺服器,將 EasyEDA Pro 連接至 AI 程式開發代理,例如 Claude Code 或 Codex。 設定與本機運作:設定約需十分鐘,並完全採用本機優先架構:設計資料、API 呼叫與中間產生的程式碼,都不會離開您的電腦。 製造銜接:由於代理放置的是真實元件庫中的元件,匯出的物料清單(BOM)能對應至 JLCPCB 可採購並組裝的實際料號。 硬體設計一直存在一個與物理原理無關的瓶頸:花費大量時間拖曳符號、重新命名網路,以及微調走線位置。如果這些重複性的操作能交由 AI 代理處理,情況會如何?這個代理不只是畫出一張電路圖片,而是操作實際的 EDA 編輯器,放置真實的符號、導線與封裝,讓您可以將設計直接送交製造。 AI PCB 設計是在 EDA 環境中,透過 AI 代理自動處理部分原理圖建立、元件選型、PCB 佈局與設計驗證工作。這套工作流程已不再停留於構想。透過 ......
PCB 製造用 ODB 檔案實務指南
重點摘要 整合式資料:ODB++ 將製造圖形、網表、疊構與鑽孔跨層範圍整合在同一個資料包中。 減少錯誤:內嵌網表讓 CAM 軟體能在生產之前找出資料錯誤。 匯出前檢查:排除所有設計規則檢查問題、確保電路板外形封閉,並使用檢視器確認鑽孔跨層範圍。 建議做法:使用 Gerber 取得快速報價,同時備妥 ODB++ 資料,以便回覆工程詢問。 一個 Gerber 圖層可能只會表示:「在這裡畫一個 0.5 mm(20 mil)的圓。」ODB++ 則能將相同的圖形描述為 VCC 網路上的焊墊,並指出它連接至一個從第 1 層延伸至第 4 層的金屬化孔。換句話說,製造商收到的是電路板的完整描述,而不只是一組圖稿。 圖 1:CAM 工程師檢查匯入的 ODB++ 製造資料 這一點十分重要,因為製造商每次需要從不同檔案中重新推斷資料關係,都會增加一次出錯的機會。若資料中包含原始設計物件及其關係,可製造性設計(DFM)工具就能根據電路板本身的網表、疊構、鑽孔定義與元件資料進行檢查。本指南將說明 ODB++ 檔案包含哪些內容、資料夾結構如何組織,以及它與現代 Gerber 和 IPC-2581 的差異。同時也會介紹匯出前值......