Provides modernization analysis to identify opportunities to replace Axios with native fetch API in simple use cases, potentially reducing bundle size by ~15KB.
Recommends date-fns as a modern alternative to Moment.js during code modernization analysis, helping reduce bundle size by ~65KB.
Analyzes jQuery usage in projects and provides migration recommendations to native DOM APIs, with potential bundle size reduction of ~85KB and side-by-side code examples.
Detects Lodash functions that can be replaced with native JavaScript methods, offering modernization suggestions with ~50KB bundle size reduction potential.
Enables real-time search and retrieval of MDN Web Docs documentation, including API syntax, browser compatibility, deprecation status, and experimental features across multiple languages (en-US, zh-TW, zh-CN).
Suggests the Temporal API as a modern replacement for date parsing and manipulation operations currently using legacy Date methods or Moment.js.
開發決策顧問 MCP Server
智慧開發決策顧問工具,提供程式碼現代化分析、瀏覽器相容性檢查、MDN 文件查詢、Baseline 狀態查詢等功能。透過 MCP (Model Context Protocol) 與 AI 工具深度整合。
✨ 新功能:整合 Baseline 狀態查詢 - 基於 web.dev/baseline 判斷 Web API 是否可在所有核心瀏覽器中安全使用。
✨ 功能特色
🔄 程式碼現代化分析器
掃描 JavaScript/TypeScript 專案,找出可被原生 API 替代的函式庫
檢測過時的程式碼模式(var、callback、IIFE、傳統 for 迴圈)
提供重構建議和預估效能提升
生成對比程式碼範例
支援 ES Module 和 CommonJS
🔍 MDN 文件即時查詢
搜尋 MDN Web Docs 取得最新 API 資訊
顯示 API 棄用狀態和實驗性標記
取得語法說明和瀏覽器相容性
支援多語言(en-US, zh-TW, zh-CN)
🌐 Can I Use 瀏覽器相容性檢查
即時查詢 Web API 的瀏覽器支援狀態
顯示各瀏覽器的支援版本
提供 Polyfill 建議和 CDN 連結
支援自訂目標瀏覽器版本
📊 Baseline 狀態查詢(新增)
整合 web.dev/baseline 資料
查詢 Web API 的 Baseline 狀態(Limited/Newly/Widely available)
判斷功能是否可在所有核心瀏覽器中安全使用
提供基於 Baseline 的使用建議
自動整合到相容性檢查和 API 推薦功能中
📚 豐富的規則資料庫
18 個函式庫規則:jQuery、Moment.js、Lodash、Axios、Bluebird 等
16 個 API 規則:XMLHttpRequest、eval、document.write、var 等
可透過設定檔自訂規則
🚀 安裝
從 npm 安裝
從原始碼安裝
🔧 GitHub Actions 整合
快速開始
在您的專案中創建 .github/workflows/dev-advisor.yml:
規則式分析(預設)
AI 分析模式(推薦)
使用 AI 分析 PR 變更的程式碼,提供更智慧的現代化建議:
輸入參數
參數 | 說明 | 預設值 | 必填 |
| 專案目錄路徑 |
| ❌ |
| 包含的檔案模式(JSON 陣列) |
| ❌ |
| 排除的檔案模式(JSON 陣列) |
| ❌ |
| browserslist 配置字串 |
| ❌ |
| 啟用現代化分析 |
| ❌ |
| 啟用相容性分析 |
| ❌ |
| 啟用瀏覽器支援檢查 |
| ❌ |
| GitHub Token |
| ❌ |
| 是否在 PR 中留言 |
| ❌ |
| 啟用 AI 分析模式 |
| ❌ |
| AI 提供者:
、
、
|
| ❌ |
| AI 模型名稱(留空使用預設) |
| ❌ |
| AI API 金鑰(建議使用 Secrets) | - | AI 模式必填 |
進階使用
🤖 AI 分析模式
使用 AI 分析 PR 變更的程式碼,提供更智慧的現代化建議:
支援的 AI 提供者:
提供者 | 預設模型 | API Key 設定 |
|
|
|
|
|
|
|
|
|
注意:AI 分析模式會直接分析 PR 的 diff 內容,而非整個專案。建議將 API Key 存放在 GitHub Secrets 中。
輸出
Action 會產生以下輸出:
modernization-report: 現代化分析報告(Markdown)compatibility-report: 相容性分析報告(Markdown)summary: 分析摘要(JSON)
完整範例
查看 examples/pr-check.yml 取得完整範例。
⚙️ MCP 配置
方式一:使用 npm 全局安裝(推薦)
首先全局安裝:
然後在 Claude Desktop 或 Cursor IDE 中配置:
Claude Desktop 配置 (~/.claude/config.json):
Cursor IDE 配置:
方式二:使用 npx(無需全局安裝)
Claude Desktop 配置 (~/.claude/config.json):
Cursor IDE 配置:
注意:現在已經修復了 npx 的路徑問題,應該可以正常使用了。如果仍有問題,建議使用方式一(全局安裝)。
方式三:使用本地安裝路徑
如果從原始碼安裝或使用本地路徑:
🛠️ 可用工具 (Tools)
1. analyze_modernization
分析專案程式碼的現代化機會。
參數:
參數 | 類型 | 必填 | 說明 |
| string | ✅ | 專案目錄路徑 |
| string[] | ❌ | 掃描檔案模式,預設
|
| string[] | ❌ | 排除檔案模式,預設
|
| string | ❌ | 報告格式:
、
、
、
|
使用範例:
輸出內容:
執行摘要(檔案數、建議數、效能提升預估)
API 類別分析:自動從 Can I Use 資料庫取得所有類別,分析專案中使用的現代 API 所屬類別
風險評估(破壞性變更、預估工時)
函式庫替換建議(jQuery → 原生 DOM API)
API 現代化建議(XMLHttpRequest → fetch)
語法現代化建議(var → let/const)
模式現代化建議(callback → Promise/async-await)
分析流程:
🔍 自動從 Can I Use 資料庫取得所有可用的 API 類別
📋 分析專案中建議使用的現代 API
🎯 為每個現代 API 找出對應的類別
📊 統計並顯示專案使用的 API 類別分布
✅ 生成完整的現代化分析報告
2. search_mdn
搜尋 MDN Web Docs 文件,取得最新的 API 資訊。
參數:
參數 | 類型 | 必填 | 說明 |
| string | ✅ | 搜尋關鍵字,如
、
|
| number | ❌ | 返回結果數量,預設
|
| string | ❌ | 語言:
、
、
,預設
|
使用範例:
輸出內容:
搜尋結果列表
API 詳細說明和語法
棄用/實驗性狀態標記
瀏覽器相容性資訊
MDN 文件連結
3. check_compatibility
檢查 Web API 的瀏覽器相容性,整合 Can I Use 支援資料和 Baseline 狀態。
參數:
參數 | 類型 | 必填 | 說明 |
| string | ✅ | Web API 功能名稱,如
、
、
|
| object | ❌ | 目標瀏覽器版本,預設
|
使用範例:
輸出內容:
功能概覽和全球支援率
目標瀏覽器相容性報告
各瀏覽器支援版本詳情
Baseline 狀態(Limited/Newly/Widely available)
Polyfill 建議和 CDN 連結
Can I Use 和 MDN 連結
Baseline 狀態說明:
Limited availability ⚠️:尚未在所有核心瀏覽器中支援,建議謹慎使用
Newly available ✅:所有核心瀏覽器都支援,可安全使用
Widely available 🟢:已廣泛支援至少 30 個月,非常穩定可靠
4. recommend_api_combination
根據自然語言描述的需求,推薦最佳的 Web API 技術組合。
參數:
參數 | 類型 | 必填 | 說明 |
| string | ✅ | 功能需求描述,如
|
| string[] | ❌ | 目標瀏覽器,如
,預設現代瀏覽器 |
| string | ❌ | 效能需求:
、
、
,預設
|
使用範例:
輸出內容:
推薦 API 列表(按類別分組)
每個 API 的說明和程式碼範例
Baseline 狀態(Limited/Newly/Widely available)
瀏覽器相容性報告
可取代的第三方函式庫
Polyfill 建議
實作建議(可直接使用 / 需要 Polyfill / 需要替代方案)
類別分析資訊:顯示從 Can I Use 資料庫匹配的相關類別
推薦流程:
🔍 自動從 Can I Use 資料庫取得所有可用的 API 類別
🎯 根據需求描述匹配相關的類別
📋 從匹配類別中找出相關的 API
🔗 結合預定義知識庫的推薦結果
✅ 查詢瀏覽器相容性並生成最終推薦
支援的 API 類別(預定義知識庫 + Can I Use 動態類別):
HTTP 請求:Fetch API、AbortController
DOM 操作:querySelector、classList、MutationObserver
觀察者:IntersectionObserver、ResizeObserver
儲存:localStorage、sessionStorage、IndexedDB
媒體:getUserMedia、MediaRecorder、Web Audio API
圖形:Canvas API、WebGL
非同步:Promise、async/await、Web Workers
通訊:WebSocket、Server-Sent Events、BroadcastChannel
動畫:requestAnimationFrame、Web Animations API
其他:Clipboard API、Geolocation、Notification API
注意: recommend_api_combination 工具現在會自動使用 list_api_categories 取得完整的類別列表,然後根據需求匹配相關類別,提供更準確和完整的推薦結果。您也可以單獨使用 list_api_categories 工具查看所有可用的 API 類別。
5. list_api_categories
列出所有可用的 Web API 類別,從 Can I Use 資料庫中取得完整的類別列表。
參數: 無參數
使用範例:
輸出內容:
所有可用的 Web API 類別列表
每個類別的功能數量
類別說明
使用建議
說明:
此工具從 Can I Use 資料庫動態提取所有類別,提供比 recommend_api_combination 更完整的類別資訊。這些類別反映了 Can I Use 資料庫中的實際分類,可用於了解 Web API 的完整生態系統。
6. analyze_compatibility
分析專案中使用的 API 與目標瀏覽器的相容性,自動偵測 browserslist 配置。
參數:
參數 | 類型 | 必填 | 說明 |
| string | ✅ | 專案目錄路徑 |
| string | ❌ | browserslist 查詢字串,如
,預設讀取專案配置 |
| string | ❌ | 報告格式:
、
、
,預設
|
使用範例:
輸出內容:
執行摘要(API 數量、相容性百分比)
目標瀏覽器列表(從 browserslist 自動偵測)
相容性問題(按嚴重程度分類)
🔴 嚴重:多數瀏覽器不支援
🟠 高風險:部分瀏覽器不支援
🟡 中風險:需要 polyfill
🟢 低風險:少量瀏覽器需要 polyfill
Polyfill 建議(CDN 連結、npm 套件)
統一 Polyfill 方案(polyfill.io 整合)
支援的 Browserslist 配置:
自動讀取
package.json的browserslist欄位自動讀取
.browserslistrc檔案或直接傳入查詢字串,如
"> 1%, last 2 versions, not dead"
📦 可用資源 (Resources)
MCP Resources 讓 AI 可以直接讀取規則資料:
URI | 說明 |
| 所有函式庫現代化規則 |
| 所有 API 現代化規則 |
| 完整規則資料庫 |
| 規則統計資訊 |
💡 可用提示模板 (Prompts)
預定義的分析提示模板:
名稱 | 說明 | 參數 |
| 分析專案的程式碼現代化機會 |
(必填)、
(選填:bundle-size/performance/security/all) |
| 取得特定函式庫的遷移指南 |
(必填:如 jquery, moment, lodash) |
| 取得程式碼模式的現代化建議 |
(必填:如 callback, var, for-loop, iife) |
| 取得低風險、高效益的快速改善建議 |
(必填) |
| 分析 Git PR 的程式碼變更,整合規則式分析和 AI 分析 |
(必填)、
(選填)、
(選填:JSON 陣列) |
analyze-pr 模板詳細說明
這個模板整合了規則式分析和 AI 分析,專門用於分析 Git PR 的程式碼變更。
功能特色:
✅ 只分析 PR 變更的檔案:不會掃描整個專案,專注於 PR 中的變更
✅ 整合規則式分析:使用
analyze_modernization工具進行規則式檢查✅ 整合完整 Web API 列表:使用
list_api_categories取得所有可用的 Web API✅ AI 評估:結合 PR diff 內容進行智慧評估
✅ 綜合報告:提供包含現代化建議、API 優化、相容性檢查的完整報告
參數說明:
projectPath(必填):專案目錄路徑prDiff(選填):PR 的 diff 內容。如果提供,AI 會直接分析 diff 內容changedFiles(選填):PR 變更的檔案列表,JSON 陣列格式,例如:["src/file1.js", "src/file2.ts"]。如果提供,analyze_modernization工具只會分析這些檔案
使用範例:
或者提供具體參數:
分析流程:
取得完整的 Web API 類別列表(
list_api_categories)對 PR 變更的檔案進行規則式分析(
analyze_modernization)結合 PR diff 內容進行 AI 評估
提供整合的分析報告,包含現代化建議、API 優化建議、相容性檢查等
📋 支援的現代化規則
函式庫替換 (18 個規則)
函式庫 | 現代替代方案 | Bundle 減少 |
jQuery | 原生 DOM API | ~85KB |
Moment.js | Date-fns / Dayjs / Temporal | ~65KB |
Lodash | 原生 JavaScript 方法 | ~50KB |
Axios | 原生 fetch (簡單場景) | ~15KB |
Bluebird | 原生 Promise | ~45KB |
Async.js | async/await | ~20KB |
uuid | crypto.randomUUID() | ~8KB |
node-fetch | 原生 fetch (Node.js 18+) | ~15KB |
querystring | URLSearchParams | ~5KB |
object-assign | Object.assign / 展開運算子 | ~2KB |
array-flatten | Array.prototype.flat() | ~2KB |
is-number | typeof + Number.isFinite() | ~1KB |
is-array | Array.isArray() | ~1KB |
left-pad | String.prototype.padStart() | ~1KB |
API 現代化 (16 個規則)
舊 API | 現代替代方案 | 類型 |
XMLHttpRequest | fetch API | 網路請求 |
document.write | DOM API | DOM 操作 |
eval | Function / JSON.parse | 安全性 |
with | 解構賦值 | 語法 |
var | let / const | 變數宣告 |
arguments | Rest parameters | 函式參數 |
innerHTML | textContent / DOM API | 安全性 |
attachEvent | addEventListener | 事件處理 |
substr | substring / slice | 字串處理 |
for 迴圈 | map / filter / forEach | 迭代 |
for...in (陣列) | for...of / 陣列方法 | 迭代 |
new Array() | 陣列字面量 [] | 建構 |
new Object() | 物件字面量 {} | 建構 |
Date 字串解析 | 明確日期格式 / Temporal | 日期處理 |
🔧 設定檔
在專案根目錄建立 .devadvisorrc.json:
🧪 開發
📁 專案結構
🎯 使用情境
情境 1:分析舊專案的現代化機會
情境 2:查詢某個 API 是否安全使用
情境 3:檢查新 API 的瀏覽器支援
情境 4:遷移特定函式庫
情境 5:分析專案相容性
情境 6:尋找適合的 Web API
📊 輸出範例
Markdown 報告範例
🔮 未來規劃
智慧 API 組合查詢引擎✅ 已完成 (recommend_api_combination)基於 browserslist 的深度相容性分析✅ 已完成 (analyze_compatibility)GitHub Actions 整合✅ 已完成CLI 獨立工具
Web 視覺化介面
自動重構程式碼轉換
VS Code / Cursor 擴充套件
更多 API 規則覆蓋
自訂規則設定介面
📄 License
MIT
🤝 貢獻
歡迎提交 Issue 和 Pull Request!
開發決策顧問 - 讓程式碼現代化變得更智慧、更安全! 🚀