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.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Dev Advisor MCP Servercheck if fetch API is widely supported in modern browsers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
開發決策顧問 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)
預定義的分析提示模板:
名稱 | 說明 | 參數 |
| 分析專案的程式碼現代化機會 |
|
| 取得特定函式庫的遷移指南 |
|
| 取得程式碼模式的現代化建議 |
|
| 取得低風險、高效益的快速改善建議 |
|
| 分析 Git PR 的程式碼變更,整合規則式分析和 AI 分析 |
|
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!
開發決策顧問 - 讓程式碼現代化變得更智慧、更安全! 🚀