Angular CLI 包含一個 Model Context Protocol(MCP)server,讓 AI 助理(例如 Cursor、Antigravity、JetBrains AI 等)能直接與 Angular CLI 互動。它提供程式碼生成、工作區分析,以及執行建置與測試的工具。
與 Angular AI Agent Skills 的整合
如果你的主機環境支援自訂 Agent Skills(例如 Antigravity),你可以把 Angular CLI MCP server 與官方的 Angular AI Skills 結合使用。技能為代理提供深度的指令層級指引與程式碼標準,MCP server 則提供執行這些指引的動作工具(例如編譯、執行測試與分析工作區),兩者結合即成為完整且強大的開發代理。
開始使用
若要使用 MCP server,你需要設定你的主機環境(IDE 或 CLI)來執行 npx @angular/cli mcp。
可用工具(預設)
啟用 MCP server 後,AI 代理可以使用下列工具:
| 名稱 | 說明 |
|---|---|
ai_tutor |
啟動互動式、由 AI 驅動的 Angular 教學導師。 |
devserver_start |
以非同步方式啟動開發伺服器(ng serve)。立即回傳。 |
devserver_stop |
停止開發伺服器。 |
devserver_wait_for_build |
回傳執行中的開發伺服器最近一次建置的記錄。 |
get_best_practices |
擷取 Angular 最佳實踐指南(對獨立元件、型別化表單等至關重要)。 |
list_projects |
透過讀取 angular.json,列出工作區中的所有應用程式與程式庫。 |
onpush_zoneless_migration |
分析程式碼並提供遷移至 OnPush 變更偵測的計畫(無區域化的前置條件)。 |
run_target |
執行已設定的目標(例如 build、test、lint、e2e、deploy)。 |
search_documentation |
搜尋 https://angular.dev 上的官方文件。 |
常見工作流程
這些工作流程示範 AI 助理如何協調不同的 MCP 工具,自動完成複雜的開發者情境。
1. 效能調校:無區域化與 OnPush 遷移
AI 代理最佳化變更偵測效能,並把元件遷移至可無區域化的狀態。
- 探索工作區:AI 代理呼叫
list_projects,找出工作區中的元件、專案與樣式/測試設定。 - 原理圖現代化(前置條件):AI 代理使用標準的
ng generate指令,執行任何前置所需的訊號遷移(例如 Signal Inputs、Signal Queries)。 - 規劃遷移:AI 代理以目錄或元件檔案的絕對路徑呼叫
onpush_zoneless_migration。 - 套用變更:AI 代理自動把工具回傳的單一可執行變更套用到程式碼庫。
- 驗證變更:AI 代理以目標參數
"test"呼叫run_target,執行單元測試。 - 重複:AI 代理再次呼叫
onpush_zoneless_migration取得下一步驟,重複進行,直到工具指出遷移完成為止。
2. 功能開發與 TDD 迴圈
AI 代理在開發新功能時,自動完成研究、實作與驗證。
- API 與語法研究:AI 代理使用
search_documentation查詢 Angular API 或語法規則(例如@defer區塊選項)。 - 載入程式碼標準:AI 代理以工作區路徑呼叫
get_best_practices,載入與 Angular 版本對齊的程式碼規則。 - 啟動本機開發伺服器:AI 代理呼叫
devserver_start,啟動背景伺服器。 - 監看建置:AI 代理使用
devserver_wait_for_build監看建置記錄,確保它編輯程式碼時編譯成功。 - 撰寫並執行測試:AI 代理透過
list_projects辨識專案的測試框架(例如 Jasmine、Jest、Vitest),撰寫對應的測試檔案,並以"test"呼叫run_target執行測試。 - 停止開發伺服器:完成後,AI 代理呼叫
devserver_stop,停止作用中的開發伺服器。
3. 開發者上手與學習
AI 代理在互動式沙箱中引導開發者學習 Angular 概念。
- 探索專案:AI 代理呼叫
list_projects掃描工作區,辨識程式碼庫的結構。 - 啟動教學導師:AI 代理執行
ai_tutor,載入課程指令、人設與教學指引。 - 跟隨課程:AI 代理引導使用者完成課程,講解概念,並指示他們要建立或修改哪些元件。
- 實作與驗證:AI 代理協助實作沙箱程式碼,並以
"test"或"build"呼叫run_target驗證變更。
指令選項
你可以在設定的 args 陣列中,把引數傳給 MCP server:
--read-only:只註冊不會修改專案的工具。--local-only:只註冊不需要網際網路連線的工具。
唯讀模式的範例:
"args": ["-y", "@angular/cli", "mcp", "--read-only"]