MCP Hub
Back to servers

@mukiwu/dev-advisor-mcp

Requires Setup

A comprehensive development decision advisor that analyzes code modernization opportunities, web browser compatibility, and recommends native Web API alternatives to replace legacy libraries.

Stars
5
Tools
6
Updated
Dec 12, 2025
Validated
Jan 9, 2026

Quick Install

npx -y @mukiwu/dev-advisor-mcp

開發決策顧問 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 安裝

npm install -g @muki/dev-advisor-mcp

從原始碼安裝

git clone https://github.com/mukiwu/dev-advisor-mcp.git
cd dev-advisor-mcp
npm install
npm run build

🔧 GitHub Actions 整合

快速開始

在您的專案中創建 .github/workflows/dev-advisor.yml

規則式分析(預設)

name: Dev Advisor Check

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  analyze:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    
    steps:
      - uses: actions/checkout@v4
      
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      
      - uses: mukiwu/dev-advisor-mcp@v1
        with:
          project-path: '.'
          enable-modernization: true
          enable-compatibility: true
          comment-on-pr: true

AI 分析模式(推薦)

使用 AI 分析 PR 變更的程式碼,提供更智慧的現代化建議:

name: Dev Advisor AI Check

on:
  pull_request:
    types: [opened, synchronize, reopened]

jobs:
  analyze:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    
    steps:
      - uses: actions/checkout@v4
      
      - uses: mukiwu/dev-advisor-mcp@v1
        with:
          ai-enabled: true
          ai-provider: 'openai'  # 或 anthropic、gemini
          ai-api-key: ${{ secrets.OPENAI_API_KEY }}
          comment-on-pr: true

輸入參數

參數說明預設值必填
project-path專案目錄路徑.
include-patterns包含的檔案模式(JSON 陣列)["**/*.js", "**/*.ts", "**/*.jsx", "**/*.tsx"]
exclude-patterns排除的檔案模式(JSON 陣列)["node_modules/**", "dist/**", "build/**"]
browserslist-configbrowserslist 配置字串""
enable-modernization啟用現代化分析true
enable-compatibility啟用相容性分析true
enable-browser-check啟用瀏覽器支援檢查true
github-tokenGitHub Token${{ github.token }}
comment-on-pr是否在 PR 中留言true
ai-enabled啟用 AI 分析模式false
ai-providerAI 提供者:openaianthropicgeminiopenai
ai-modelAI 模型名稱(留空使用預設)""
ai-api-keyAI API 金鑰(建議使用 Secrets)-AI 模式必填

進階使用

- uses: mukiwu/dev-advisor-mcp@v1
  with:
    project-path: './src'
    include-patterns: '["src/**/*.js", "src/**/*.ts"]'
    exclude-patterns: '["**/*.test.ts", "**/*.spec.ts"]'
    browserslist-config: 'last 2 versions, > 1%, not dead'
    enable-modernization: true
    enable-compatibility: true
    enable-browser-check: false
    comment-on-pr: true

🤖 AI 分析模式

使用 AI 分析 PR 變更的程式碼,提供更智慧的現代化建議:

- uses: mukiwu/dev-advisor-mcp@v1
  with:
    ai-enabled: true
    ai-provider: 'openai'  # 或 anthropic、gemini
    ai-model: 'gpt-4o'     # 可選,留空使用預設模型
    ai-api-key: ${{ secrets.OPENAI_API_KEY }}
    comment-on-pr: true

支援的 AI 提供者:

提供者預設模型API Key 設定
openaigpt-4oOPENAI_API_KEY
anthropicclaude-sonnet-4-20250514ANTHROPIC_API_KEY
geminigemini-2.0-flashGOOGLE_API_KEY

注意:AI 分析模式會直接分析 PR 的 diff 內容,而非整個專案。建議將 API Key 存放在 GitHub Secrets 中。

輸出

Action 會產生以下輸出:

  • modernization-report: 現代化分析報告(Markdown)
  • compatibility-report: 相容性分析報告(Markdown)
  • summary: 分析摘要(JSON)

完整範例

查看 examples/pr-check.yml 取得完整範例。

⚙️ MCP 配置

方式一:使用 npm 全局安裝(推薦)

首先全局安裝:

npm install -g @mukiwu/dev-advisor-mcp

然後在 Claude Desktop 或 Cursor IDE 中配置:

Claude Desktop 配置 (~/.claude/config.json):

{
  "mcpServers": {
    "dev-advisor": {
      "command": "dev-advisor"
    }
  }
}

Cursor IDE 配置

{
  "mcpServers": {
    "dev-advisor": {
      "command": "dev-advisor"
    }
  }
}

方式二:使用 npx(無需全局安裝)

Claude Desktop 配置 (~/.claude/config.json):

{
  "mcpServers": {
    "dev-advisor": {
      "command": "npx",
      "args": ["-y", "@mukiwu/dev-advisor-mcp"]
    }
  }
}

Cursor IDE 配置

{
  "mcpServers": {
    "dev-advisor": {
      "command": "npx",
      "args": ["-y", "@mukiwu/dev-advisor-mcp"]
    }
  }
}

注意:現在已經修復了 npx 的路徑問題,應該可以正常使用了。如果仍有問題,建議使用方式一(全局安裝)。

方式三:使用本地安裝路徑

如果從原始碼安裝或使用本地路徑:

{
  "mcpServers": {
    "dev-advisor": {
      "command": "node",
      "args": ["/path/to/dev-advisor-mcp/dist/src/server.js"]
    }
  }
}

🛠️ 可用工具 (Tools)

1. analyze_modernization

分析專案程式碼的現代化機會。

參數:

參數類型必填說明
projectPathstring專案目錄路徑
includePatternsstring[]掃描檔案模式,預設 ["**/*.js", "**/*.ts", "**/*.jsx", "**/*.tsx"]
excludePatternsstring[]排除檔案模式,預設 ["node_modules/**", "dist/**"]
reportFormatstring報告格式:markdownjsonhtmltext

使用範例:

分析 ./src 目錄的程式碼,找出可以用原生 Web API 替代的函式庫

輸出內容:

  • 執行摘要(檔案數、建議數、效能提升預估)
  • API 類別分析:自動從 Can I Use 資料庫取得所有類別,分析專案中使用的現代 API 所屬類別
  • 風險評估(破壞性變更、預估工時)
  • 函式庫替換建議(jQuery → 原生 DOM API)
  • API 現代化建議(XMLHttpRequest → fetch)
  • 語法現代化建議(var → let/const)
  • 模式現代化建議(callback → Promise/async-await)

分析流程:

  1. 🔍 自動從 Can I Use 資料庫取得所有可用的 API 類別
  2. 📋 分析專案中建議使用的現代 API
  3. 🎯 為每個現代 API 找出對應的類別
  4. 📊 統計並顯示專案使用的 API 類別分布
  5. ✅ 生成完整的現代化分析報告

2. search_mdn

搜尋 MDN Web Docs 文件,取得最新的 API 資訊。

參數:

參數類型必填說明
querystring搜尋關鍵字,如 "fetch""Array.prototype.includes"
limitnumber返回結果數量,預設 5
localestring語言:en-USzh-TWzh-CN,預設 en-US

使用範例:

查詢 Promise.allSettled 的 MDN 文件
幫我找 IntersectionObserver 的用法

輸出內容:

  • 搜尋結果列表
  • API 詳細說明和語法
  • 棄用/實驗性狀態標記
  • 瀏覽器相容性資訊
  • MDN 文件連結

3. check_compatibility

檢查 Web API 的瀏覽器相容性,整合 Can I Use 支援資料和 Baseline 狀態。

參數:

參數類型必填說明
featurestringWeb API 功能名稱,如 "fetch""css-grid""IntersectionObserver"
targetBrowsersobject目標瀏覽器版本,預設 { chrome: "90", firefox: "88", safari: "14", edge: "90" }

使用範例:

檢查 CSS Grid 的瀏覽器相容性
fetch API 是否可安全使用?
IntersectionObserver 是否已達到 Baseline?

輸出內容:

  • 功能概覽和全球支援率
  • 目標瀏覽器相容性報告
  • 各瀏覽器支援版本詳情
  • 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 技術組合。

參數:

參數類型必填說明
requirementstring功能需求描述,如 "背景擷取影片畫面並分析"
targetBrowsersstring[]目標瀏覽器,如 ["chrome>=90", "firefox>=88"],預設現代瀏覽器
performanceRequirementsstring效能需求:lowmediumhigh,預設 medium

使用範例:

我想實作懶加載圖片功能,推薦用什麼 API?
幫我找適合做即時通訊的 Web API

輸出內容:

  • 推薦 API 列表(按類別分組)
  • 每個 API 的說明和程式碼範例
  • Baseline 狀態(Limited/Newly/Widely available)
  • 瀏覽器相容性報告
  • 可取代的第三方函式庫
  • Polyfill 建議
  • 實作建議(可直接使用 / 需要 Polyfill / 需要替代方案)
  • 類別分析資訊:顯示從 Can I Use 資料庫匹配的相關類別

推薦流程:

  1. 🔍 自動從 Can I Use 資料庫取得所有可用的 API 類別
  2. 🎯 根據需求描述匹配相關的類別
  3. 📋 從匹配類別中找出相關的 API
  4. 🔗 結合預定義知識庫的推薦結果
  5. ✅ 查詢瀏覽器相容性並生成最終推薦

支援的 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 類別
取得完整的 API 類別清單

輸出內容:

  • 所有可用的 Web API 類別列表
  • 每個類別的功能數量
  • 類別說明
  • 使用建議

說明: 此工具從 Can I Use 資料庫動態提取所有類別,提供比 recommend_api_combination 更完整的類別資訊。這些類別反映了 Can I Use 資料庫中的實際分類,可用於了解 Web API 的完整生態系統。


6. analyze_compatibility

分析專案中使用的 API 與目標瀏覽器的相容性,自動偵測 browserslist 配置。

參數:

參數類型必填說明
projectPathstring專案目錄路徑
browserslistConfigstringbrowserslist 查詢字串,如 "last 2 versions",預設讀取專案配置
reportFormatstring報告格式:markdownjsonhtml,預設 markdown

使用範例:

分析這個專案的瀏覽器相容性風險
檢查專案是否支援 IE11
幫我找出需要 polyfill 的 API

輸出內容:

  • 執行摘要(API 數量、相容性百分比)
  • 目標瀏覽器列表(從 browserslist 自動偵測)
  • 相容性問題(按嚴重程度分類)
    • 🔴 嚴重:多數瀏覽器不支援
    • 🟠 高風險:部分瀏覽器不支援
    • 🟡 中風險:需要 polyfill
    • 🟢 低風險:少量瀏覽器需要 polyfill
  • Polyfill 建議(CDN 連結、npm 套件)
  • 統一 Polyfill 方案(polyfill.io 整合)

支援的 Browserslist 配置:

  • 自動讀取 package.jsonbrowserslist 欄位
  • 自動讀取 .browserslistrc 檔案
  • 或直接傳入查詢字串,如 "> 1%, last 2 versions, not dead"

📦 可用資源 (Resources)

MCP Resources 讓 AI 可以直接讀取規則資料:

URI說明
devadvisor://rules/libraries所有函式庫現代化規則
devadvisor://rules/apis所有 API 現代化規則
devadvisor://rules/all完整規則資料庫
devadvisor://stats規則統計資訊

💡 可用提示模板 (Prompts)

預定義的分析提示模板:

名稱說明參數
analyze-project分析專案的程式碼現代化機會projectPath(必填)、focus(選填:bundle-size/performance/security/all)
migrate-library取得特定函式庫的遷移指南library(必填:如 jquery, moment, lodash)
modernize-pattern取得程式碼模式的現代化建議pattern(必填:如 callback, var, for-loop, iife)
quick-wins取得低風險、高效益的快速改善建議projectPath(必填)
analyze-pr分析 Git PR 的程式碼變更,整合規則式分析和 AI 分析projectPath(必填)、prDiff(選填)、changedFiles(選填: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 工具只會分析這些檔案

使用範例:

請使用 analyze-pr 提示模板分析我的 PR

或者提供具體參數:

請使用 analyze-pr 提示模板,projectPath 設為 ".",changedFiles 設為 ["src/components/Button.tsx", "src/utils/helpers.ts"]

分析流程:

  1. 取得完整的 Web API 類別列表(list_api_categories
  2. 對 PR 變更的檔案進行規則式分析(analyze_modernization
  3. 結合 PR diff 內容進行 AI 評估
  4. 提供整合的分析報告,包含現代化建議、API 優化建議、相容性檢查等

📋 支援的現代化規則

函式庫替換 (18 個規則)

函式庫現代替代方案Bundle 減少
jQuery原生 DOM API~85KB
Moment.jsDate-fns / Dayjs / Temporal~65KB
Lodash原生 JavaScript 方法~50KB
Axios原生 fetch (簡單場景)~15KB
Bluebird原生 Promise~45KB
Async.jsasync/await~20KB
uuidcrypto.randomUUID()~8KB
node-fetch原生 fetch (Node.js 18+)~15KB
querystringURLSearchParams~5KB
object-assignObject.assign / 展開運算子~2KB
array-flattenArray.prototype.flat()~2KB
is-numbertypeof + Number.isFinite()~1KB
is-arrayArray.isArray()~1KB
left-padString.prototype.padStart()~1KB

API 現代化 (16 個規則)

舊 API現代替代方案類型
XMLHttpRequestfetch API網路請求
document.writeDOM APIDOM 操作
evalFunction / JSON.parse安全性
with解構賦值語法
varlet / const變數宣告
argumentsRest parameters函式參數
innerHTMLtextContent / DOM API安全性
attachEventaddEventListener事件處理
substrsubstring / slice字串處理
for 迴圈map / filter / forEach迭代
for...in (陣列)for...of / 陣列方法迭代
new Array()陣列字面量 []建構
new Object()物件字面量 {}建構
Date 字串解析明確日期格式 / Temporal日期處理

🔧 設定檔

在專案根目錄建立 .devadvisorrc.json

{
  "extends": "recommended",
  "include": ["src/**/*.{js,ts,jsx,tsx}"],
  "exclude": ["node_modules/**", "dist/**", "**/*.test.ts"],
  "rules": {
    "builtin": {
      "jquery": { "enabled": true, "severity": "high" },
      "var": { "enabled": true, "severity": "low" }
    },
    "customLibraries": {
      "my-old-lib": {
        "name": "my-old-lib",
        "modernAlternative": "my-new-lib",
        "reason": "內部函式庫升級"
      }
    }
  },
  "report": {
    "format": "markdown",
    "maxSuggestionsPerFile": 10
  },
  "performance": {
    "useCache": true,
    "parallel": true
  }
}

🧪 開發

# 安裝依賴
npm install

# 開發模式
npm run dev

# 建置
npm run build

# 執行測試
npm test

# 測試分析功能
node test-analysis.js

📁 專案結構

dev-advisor-mcp/
├── src/
│   ├── server.ts              # MCP Server 主程式
│   ├── analyzers/
│   │   ├── modernization.ts   # 程式碼現代化分析器
│   │   └── compatibility.ts   # API 相容性分析器
│   ├── parsers/
│   │   └── index.ts           # AST 解析器 (ES Module + CommonJS)
│   ├── services/
│   │   ├── mdn-service.ts     # MDN API 服務
│   │   └── caniuse-service.ts # Can I Use API 服務
│   ├── data/
│   │   ├── modernization-rules.ts   # 現代化規則資料庫
│   │   └── api-recommendations.ts   # API 推薦知識庫
│   ├── config/
│   │   └── index.ts           # 設定檔載入
│   ├── utils/
│   │   ├── report-formatter.ts # 報告格式化器
│   │   ├── cache.ts           # 快取機制
│   │   └── ast-utils.ts       # AST 工具函式
│   └── __tests__/             # 單元測試
├── test-code/                 # 測試用程式碼
├── cli/                       # CLI 工具 (規劃中)
└── web/                       # Web 介面 (規劃中)

🎯 使用情境

情境 1:分析舊專案的現代化機會

請分析 ./legacy-project 專案,找出可以用現代 Web API 替代的函式庫,
幫我減少 bundle 大小

情境 2:查詢某個 API 是否安全使用

document.write 還能用嗎?有什麼替代方案?

情境 3:檢查新 API 的瀏覽器支援

我想用 IntersectionObserver,但需要支援 Safari 13,可以嗎?
需要 polyfill 嗎?

情境 4:遷移特定函式庫

我想把專案中的 Moment.js 換掉,有什麼建議?

情境 5:分析專案相容性

幫我分析這個專案的瀏覽器相容性,我們需要支援 Chrome 80+、Firefox 78+、Safari 13+

情境 6:尋找適合的 Web API

我需要實作:使用者在背景時仍能接收通知,有什麼原生 API 可以用?

📊 輸出範例

Markdown 報告範例

# 程式碼現代化分析報告

## 📊 執行摘要
- **掃描檔案數量**: 42 個檔案
- **發現建議數量**: 15 項
- **潛在效能提升**: 25%
- **檔案大小減少**: 150KB

## ⚠️ 風險評估
- **整體風險等級**: 🟡 MEDIUM
- **預估工時**: 16 小時

## 🚀 主要現代化建議

### 📚 函式庫替換
#### 升級 moment 到 Date-fns/Dayjs
Moment.js 體積過大且不支援 tree-shaking...

🔮 未來規劃

  • 智慧 API 組合查詢引擎 ✅ 已完成 (recommend_api_combination)
  • 基於 browserslist 的深度相容性分析 ✅ 已完成 (analyze_compatibility)
  • GitHub Actions 整合 ✅ 已完成
  • CLI 獨立工具
  • Web 視覺化介面
  • 自動重構程式碼轉換
  • VS Code / Cursor 擴充套件
  • 更多 API 規則覆蓋
  • 自訂規則設定介面

📄 License

MIT

🤝 貢獻

歡迎提交 Issue 和 Pull Request!


開發決策顧問 - 讓程式碼現代化變得更智慧、更安全! 🚀

Reviews

No reviews yet

Sign in to write a review