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 文件查詢等功能。透過 MCP (Model Context Protocol) 與 AI 工具深度整合。
✨ 功能特色
🔄 程式碼現代化分析器
掃描 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 連結
支援自訂目標瀏覽器版本
📚 豐富的規則資料庫
18 個函式庫規則:jQuery、Moment.js、Lodash、Axios、Bluebird 等
16 個 API 規則:XMLHttpRequest、eval、document.write、var 等
可透過設定檔自訂規則
🚀 安裝
從 npm 安裝
從原始碼安裝
⚙️ MCP 配置
Claude Desktop 配置
編輯 ~/.claude/config.json:
Cursor IDE 配置
在 Cursor 設定中加入 MCP Server:
🛠️ 可用工具 (Tools)
1. analyze_modernization
分析專案程式碼的現代化機會。
參數:
參數 | 類型 | 必填 | 說明 |
| string | ✅ | 專案目錄路徑 |
| string[] | ❌ | 掃描檔案模式,預設
|
| string[] | ❌ | 排除檔案模式,預設
|
| string | ❌ | 報告格式:
、
、
、
|
使用範例:
輸出內容:
執行摘要(檔案數、建議數、效能提升預估)
風險評估(破壞性變更、預估工時)
函式庫替換建議(jQuery → 原生 DOM API)
API 現代化建議(XMLHttpRequest → fetch)
語法現代化建議(var → let/const)
模式現代化建議(callback → Promise/async-await)
2. search_mdn
搜尋 MDN Web Docs 文件,取得最新的 API 資訊。
參數:
參數 | 類型 | 必填 | 說明 |
| string | ✅ | 搜尋關鍵字,如
、
|
| number | ❌ | 返回結果數量,預設
|
| string | ❌ | 語言:
、
、
,預設
|
使用範例:
輸出內容:
搜尋結果列表
API 詳細說明和語法
棄用/實驗性狀態標記
瀏覽器相容性資訊
MDN 文件連結
3. check_browser_support
使用 Can I Use 資料庫檢查 Web API 的瀏覽器相容性。
參數:
參數 | 類型 | 必填 | 說明 |
| string | ✅ | Web API 功能名稱,如
、
、
|
| object | ❌ | 目標瀏覽器版本,預設
|
使用範例:
輸出內容:
功能概覽和全球支援率
目標瀏覽器相容性報告
各瀏覽器支援版本詳情
Polyfill 建議和 CDN 連結
Can I Use 和 MDN 連結
4. recommend_api_combination
根據自然語言描述的需求,推薦最佳的 Web API 技術組合。
參數:
參數 | 類型 | 必填 | 說明 |
| string | ✅ | 功能需求描述,如
|
| string[] | ❌ | 目標瀏覽器,如
,預設現代瀏覽器 |
| string | ❌ | 效能需求:
、
、
,預設
|
使用範例:
輸出內容:
推薦 API 列表(按類別分組)
每個 API 的說明和程式碼範例
瀏覽器相容性報告
可取代的第三方函式庫
Polyfill 建議
實作建議(可直接使用 / 需要 Polyfill / 需要替代方案)
支援的 API 類別:
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
5. 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)
預定義的分析提示模板:
名稱 | 說明 |
| 分析專案的程式碼現代化機會 |
| 取得特定函式庫的遷移指南 |
| 取得程式碼模式的現代化建議 |
| 取得低風險、高效益的快速改善建議 |
📋 支援的現代化規則
函式庫替換 (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)CLI 獨立工具
Web 視覺化介面
自動重構程式碼轉換
VS Code / Cursor 擴充套件
更多 API 規則覆蓋
自訂規則設定介面
📄 License
MIT
🤝 貢獻
歡迎提交 Issue 和 Pull Request!
開發決策顧問 - 讓程式碼現代化變得更智慧、更安全! 🚀